酒店评价数据分析题目及3、4问答案

酒店评价数据分析

描述‪‬

根据附件文件对酒店评价数据进行分析,本题使用jieba库中的lcut函数对数据进行分词。‬(comment.csv)‬

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‬‮‬

  1. 如果n为’总评‘,分别输出该文件评论总数,好评条数,差评条数,输出格式参照示例一。
  2. 如果n为’平均‘,输出该文件中所有评论内容的平均长度(不需要排除字母,标点符号和数字),输出四舍五入后的整数,输出格式参照示例二。‬‮‬
  3. 如果n为’好评‘,对文件中所有好评进行词频分析,并输出词频出现最多的前15个词以及出现次数,输出格式参照示例三‬‮‬
  4. 如果n为’差评‘,对文件中所有差评进行词频分析,并输出词频出现最多的前15个词以及出现次数,输出格式参照示例四‬‮‬

注:3,4两项功能中统计的词语,要求长度不小于2,不是数字组成,并且不是排除词‬‮‬

#排除词 ex=['不错','比较','可以','感觉','没有', '我们','就是','还是','非常','但是', '不过','有点','一个','一般','下次', '携程','不是','晚上','而且','他们', '什么','不好','时候','知道','这样', '这个','还有','总体','位置','客人', '因为','如果','这里','很多','选择', '居然','不能','实在','不会','这家', '结果','发现','竟然','已经','自己', '问题','不要','地方','只有','第二天', '酒店','房间','虽然']‬‮‬

  1. 如果n非以上输入,输出’无数据‘,格式参照示例五

输入输出示例‬‮‬

示例只是输出格式示例,其中数据均与题目无关!

文件获取方式:

链接:https://pan.baidu.com/s/1cv60Ed9v35vpai1ZbbWOng?pwd=ic0z 
提取码:ic0z

import jieba

def readfile():
    with open('E:\Code FILE\PythonFILE\程序设计作业\comment.csv', 'r') as f:
        ls = [i.strip().split(',', maxsplit=1) for i in f.readlines()][1:]
        return ls

def pj(lsn,n):
    a=0
    if n=='好评':
        a=1
    ls_good=[]
    for x in ls:
        if x[0][0]==str(a):
            ls_good.append(x)
    # print(ls_good)
    dict={}
    for x in ls_good:
        ls_word=jieba.lcut(x[0])
        for key in ls_word:
            if key not in ex:
                dict[key] = dict.get(key, 0) + 1
        # print(dict)
    ls1 = sorted(dict.items(), key=lambda x: x[1] ,reverse=1)
    ls2=[]
    for x in ls1:
        if 2<=len(x[0])<=3:
            ls2.append(x)
    print('输出:')
    for x in ls2[:15]:
        print(x[0],x[1])



ex=['不错','比较','可以','感觉','没有', '我们','就是','还是','非常','但是', '不过','有点','一个','一般','下次', '携程','不是','晚上','而且','他们', '什么','不好','时候','知道','这样', '这个','还有','总体','位置','客人', '因为','如果','这里','很多','选择', '居然','不能','实在','不会','这家', '结果','发现','竟然','已经','自己', '问题','不要','地方','只有','第二天', '酒店','房间','虽然']
ls=readfile()
# print(ls)
n=input('输入:')
if n in['好评','差评']:
    pj(ls,n)

 

 

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值