python---酒店评价数据
描述
根据附件文件对酒店评价数据进行分析,本题使用jieba库中的lcut函数对数据进行分词。
import jieba
test_str = '武汉理工大学是一所世人仰慕的大学' result = jieba.lcut(test_str) # 参数是字符串,结果是将字符串切分为词的列表 print(result) # ['武汉理工大学', '是', '一所', '世人', '仰慕', '的', '大学']
文件数据每行包括评论属性和评论内容两个数据,其中评论属性中’1‘代表好评,’0‘代表差评。
要求实现以下功能:
文件编码格式为GBK,读取函数示例如下:
with open('comment.csv', 'r', encoding='GBK') as f: ls=[i.strip().split(',',maxsplit=1) for i in f.readlines()[1:]]
输入n
-
如果n为’总评‘,分别输出该文件评论总数,好评条数,差评条数,输出格式参照示例一。
-
如果n为’平均‘,输出该文件中所有评论内容的平均长度(不需要排除字母,标点符号和数字),输出四舍五入后的整数,输出格式参照示例二。
-
如果n为’好评‘,对文件中所有好评进行词频分析,并输出词频出现最多的前15个词以及出现次数,输出格式参照示例三
-
如果n为’差评‘,对文件中所有差评进行词频分析,并输出词频出现最多的前15个词以及出现次数,输出格式参照示例四
注:3,4两项功能中统计的词语,要求长度不小于2,不是数字组成,并且不是排除词.
#排除词 ex=['不错','比较','可以','感觉','没有', '我们','就是','还是','非常','但是', '不过','有点','一个','一般','下次', '携程','不是','晚上','而且','他们', '什么','不好','时候','知道','这样', '这个','还有','总体','位置','客人', '因为','如果','这里','很多','选择', '居然','不能','实在','不会','这家', '结果','发现','竟然','已经','自己', '问题','不要','地方','只有','第二天', '酒店','房间','虽然']
- 如果n非以上输入,输出’无数据‘,格式参照示例五
输入输出示例
示例只是输出格式示例,其中数据均与题目无关!
示例 1
-
输入:
-
总评
-
输出:
-
总评论: 8888
-
好评: 6666
-
差评: 2222
示例 2
-
输入:
-
平均
-
输出:
-
86
示例 3
-
输入:
-
好评
-
输出:
-
好像: 1000
-
也许: 901
-
早餐: 817
-
偶尔: 749
-
环境: 694
-
设施: 669
-
无论: 596
-
价格: 495
-
干净: 428
-
程序: 419
-
服务员: 337
-
免费: 269
-
交通: 206
-
餐厅: 162
-
性价比: 154
示例 4
-
输入:差评
-
输出:
-
恶劣: 857
-
服务: 788
-
前台: 766
-
服务员: 681
-
早餐: 632
-
宾馆: 632
-
胡说: 502
-
价格: 432
-
退房: 344
-
老虎: 324
-
电话: 319
-
态度: 317
-
卫生间: 315
-
点评: 214
-
方便: 204
示例 5
-
输入:
-
1234
-
输出:
-
无数据
-
import jieba
-
-
-
def dosomething(start, end):
-
counts = {}
-
k = start
-
while k < end:
-
words = jieba.lcut(ls[k][1])
-
for word in words:
-
if len(word) < 2 or word in ex or word.isdigit():
-
continue
-
else:
-
counts[word] = counts.get(word, 0) 1
-
k = 1
-
items = list(counts.items())
-
items.sort(key=lambda x: x[1], reverse=True)
-
for m in range(15):
-
word, count = items[m]
-
print('{}: {}'.format(word, count))
-
-
-
with open('comment.csv', 'r', encoding='GBK') as f:
-
ls = [i.strip().split(',', maxsplit=1) for i in f.readlines()[1:]]
-
ex = ['不错', '比较', '可以', '感觉', '没有', '我们', '就是', '还是', '非常', '但是', '不过', '有点', '一个', '一般', '下次',
-
'携程', '不是', '晚上', '而且', '他们', '什么', '不好', '时候', '知道', '这样', '这个', '还有', '总体', '位置', '客人',
-
'因为', '如果', '这里', '很多', '选择', '居然', '不能', '实在', '不会',
-
'这家', '结果', '发现', '竟然', '已经', '自己', '问题', '不要', '地方', '只有', '第二天', '酒店', '房间', '虽然']
-
-
n = input()
-
good = 0
-
total = len(ls)
-
sums = 0
-
-
if n in ["好评", "差评", "总评", "平均"]:
-
for i in ls:
-
if i[0] == '1':
-
good = 1
-
if n == "总评":
-
print("总评论:", total)
-
print("好评:", good)
-
print("差评:", total - good)
-
elif n == "平均":
-
for i in ls:
-
sums = len(i[1])
-
print(sums // total)
-
elif n == "好评":
-
dosomething(0, good)
-
elif n == "差评":
-
dosomething(good, total)
-
else:
-
print("无数据")
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhibbeih
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22