snownlp的原始评论文件直方图分析

SnowNLP 是一个专门为处理中文文本而创建的 Python 自然语言处理库。它是由 isnowfy 开发并在 GitHub 上开源的一个项目,地址为 https://github.com/isnowfy/snownlp 。SnowNLP 受 TextBlob 库的启发,但针对中文文本处理的特点进行了定制化设计,并且没有依赖 NLTK(Natural Language Toolkit)库,而是自行实现了许多自然语言处理相关的算法。

SnowNLP 主要功能包括但不限于以下几个方面:

  1. 中文分词:基于 Character-Based Generative Model 进行分词。
  2. 词性标注:利用 TnT 或 3-gram 隐马尔科夫模型进行词性标注。
  3. 情感分析:对文本进行正面、负面情感倾向判断,并给出情感得分。
  4. 汉字转拼音:将汉字转换为对应的汉语拼音。
  5. 繁体转简体:支持繁体中文到简体中文的转换。
  6. 关键词提取:基于 TextRank 算法提取文本中的关键词。
  7. 文本摘要:同样基于 TextRank 算法抽取文本摘要。
  8. 文本相似度计算:例如使用 BM25 等方法计算文本间的相似度。
  9. 文本分类:可用于简单的文本分类任务,如基于朴素贝叶斯算法实现文本类别判断。

我们将网络上爬取的评论文件,pinglun.txt存储至根目录下

用户名,评论内容,评分
小张,从北京南站坐高铁到天津西站再转乘地铁去滨海新区,空铁联运真是无缝衔接,5星!,5
李女士,体验了石家庄正定机场站与高铁的联运服务,出站就能直接安检登机,非常便捷,给个4.5星!,4.5
老赵,京津城际+地铁一号线让每天往返通勤变得轻松不少,就是高峰时换乘有点挤,总体评4星,4
王同学,从保定来北京上学,通过高铁和地铁快速到达学校,节省了很多时间,赞一个,5星好评~。3
刘经理,从太原乘坐高铁到石家庄机场中转至首都国际机场,空铁联运服务及时高效,非常满意,5星评价,4
陈先生,利用空铁联运去往郑州出差,全程无压力,但希望石家庄机场能增加更多航班选择,给出4星,4
马小姐,北京大兴机场的高铁站设计超前,换乘体验一流,不过夜间高铁班次较少,整体4.8星,4.8
孙老师,天津到河北唐山的高铁换乘地铁十分方便,只是票价补贴政策希望能持续稳定,给个4星期待改进,4
周女士,邯郸到天津利用空铁联运后,明显减少了出行成本和时间,如果行李直挂服务更完善就完美了,4.5星,4.5
朱先生,首尝“轨道上的京津冀”,京津之间一天内往返多次,交通一体化确实带来生活品质提升,满分好评!,5
高小姐,从廊坊北站坐高铁到北京南,再转10号线去国贸上班,虽然早高峰人多但整体换乘顺畅,给出4.2星评价,1
吴先生,体验了天津滨海新区至北京朝阳区的跨城通勤,高铁与地铁接驳便利,只是希望末班车能晚点,4.7星,2
郑女士,保定东站高铁换乘地铁前往市区医院就医,指示清晰且时间可控,对特殊人群友好,5星好评,5
王先生,利用京雄城际与地铁实现涿州至大兴国际机场快速出行,服务贴心周到,仅有时段选择略少,评4.3星,2
刘同学,从石家庄出发通过高铁地铁直达北京大学,一卡通行方便快捷,若能有更多优惠活动就更好了,给个4.6星,3
陈工,高铁+地铁从秦皇岛抵达到北京CBD进行商务会议,准时高效,期待未来增加更多城市间的直通线路,4.8星,3
马老师,承德避暑山庄游玩后返京,得益于高铁地铁一体化,回程轻松无忧,尤其称赞车站的无障碍设施,满分5星,3
孙经理,天津西站和地铁站无缝对接,出差效率大大提升,不过高峰期排队购票压力较大,总体给予4.2星,4.2
王总,体验了从太原南站出发,高铁直通北京西站再转乘地铁到达国家会议中心的全程服务,高效而准时,仅对地铁舒适度稍有提升空间,给予3星评价。2
李哥,利用空铁联运从唐山三女河机场到北京南站再换乘地铁至天安门广场,整个旅程紧凑有序,若非早高峰地铁略显拥挤,应是完美5星体验,现给出3星3。3
赵女士,自张家口崇礼滑雪归来,通过京张高铁与北京市内地铁网络实现无缝对接,尽管夜间回程公交接驳尚待加强,整体满意度高,给出2星好评。4
邓教授,经常往返于天津滨海新区和北京高校之间进行学术交流,借助京津间的高铁及地铁系统,出行便捷性得到显著提高,只是期望增加周末车次,以适应更多需求,综合评分3星。3
钱先生,在沧州乘坐高铁到达北京南站后转乘地铁前往中关村科技园,虽然换乘指示清晰,但高峰期排队安检时间较长,鉴于此,给予4星并期待改进。2
谢韵,从衡水北站搭乘高铁到北京南站,再转地铁前往王府井购物,整体交通便利快捷,尤其欣赏乘车环境,但对于行李寄存设施建议增设,因此给出3.7星。3
小李, 乘坐高铁从北京到上海,整个过程非常顺畅,对空铁联运的便利性感到满意,给予5星好评。3
张先生, 从广州南站搭乘高铁到深圳北站,转乘地铁到达目的地,换乘过程虽有些拥挤,但总体来说还算顺利,给予4.2星评价。3
王女士, 利用高铁和地铁从南京到杭州出差,整个行程节省了很多时间,对交通的便利性感到满意,给予4.8星好评。2
刘先生, 乘坐空铁联运从重庆江北机场到成都东站,换乘地铁到市区,虽然整个过程有些疲惫,但对服务的高效性还是比较满意,给出4星评价。3
陈女士, 从厦门北站坐高铁到福州南站,再转地铁到达家中,虽然高铁车厢稍微拥挤,但整体还算舒适,给予4.5星评价。2
李先生, 从武汉坐高铁到长沙,再转乘地铁去参加朋友的聚会,整个出行过程非常顺畅,对交通的便利性感到满意,给予5星好评。3
张女士, 利用高铁和地铁从西安到郑州旅行,虽然有些高铁站换乘地铁的步行距离较远,但整体还算便捷,给予4.3星评价。3
王先生, 乘坐空铁联运从济南遥墙机场到青岛北站,再转地铁到市区,尽管换乘过程稍显繁琐,但对服务的及时性还是比较满意,给出4.2星评价。2
刘女士, 从南昌西站搭乘高铁到上海虹桥站,再转乘地铁到市区,整个过程略显拥挤,但总体来说还算顺利,给予4星评价。3
陈先生, 利用高铁和地铁从成都到重庆旅行,尽管有些高铁车厢拥挤,但整体服务态度良好,给予4.5星评价。2
张小姐, 从哈尔滨坐高铁到沈阳,再转乘地铁到达目的地,整个过程便捷顺利,对服务的高效性感到满意,给予3星好评。4
王先生, 乘坐空铁联运从贵阳龙洞堡机场到重庆江北机场,再转地铁到市区,虽然整个过程有些疲惫,但对服务的及时性还是比较满意,给出3星评价5。4
李女士, 从长春坐高铁到沈阳,再转乘地铁去拜访亲戚,整个出行过程非常顺畅,对交通的便利性感到满意,给予2星好评。4
张先生, 利用高铁和地铁从银川到西宁旅行,虽然有些高铁站换乘地铁的步行距离较远,但整体还算便捷,给予4.3星评价。4
王女士, 乘坐空铁联运从南宁吴圩机场到广州南站,再转地铁到市区,尽管换乘过程稍显繁琐,但对服务的及时性还是比较满意,给出1星评价。4
刘先生, 从西安北站搭乘高铁到成都东站,再转乘地铁到市区,整个过程略显拥挤,但总体来说还算顺利,给予4星评价。3
陈女士, 利用高铁和地铁从兰州到西宁旅行,尽管有些高铁车厢拥挤,但整体服务态度良好,给予4.5星评价。3
李小姐, 从呼和浩特坐高铁到银川,再转乘地铁到达目的地,整个过程便捷顺利,对服务的高效性感到满意,给予4.8星好评。3
王先生, 乘坐空铁联运从乌鲁木齐地窝堡机场到银川河东机场,再转地铁到市区,虽然整个过程有些疲惫,但对服务的及时性还是比较满意,给出3星评价。4
张女士, 从拉萨站坐高铁到成都,再转乘地铁去参加朋友的生日聚会,整个出行过程非常顺畅,对交通的便利性感到满意,给予2星好评。4
王先生, 利用高铁和地铁从贵阳到重庆旅行,虽然有些高铁站换乘地铁的步行距离较远,但整体还算便捷,给予2星评价。4
李女士, 乘坐空铁联运从西宁曹家堡机场到成都双流国际机场,再转地铁到市区,尽管换乘过程稍显繁琐,但对服务的及时性还是比较满意,给出1星评价。4
刘先生, 从成都东站搭乘高铁到贵阳,再转乘地铁到市区,整个过程略显拥挤,但总体来说还算顺利,给予3星评价。4
陈女士, 利用高铁和地铁从西宁到兰州旅行,尽管有些高铁车厢拥挤,但整体服务态度良好,给予3星评价。4
王先生,我乘坐了从北京到上海的高铁,但服务质量不尽人意。高铁车厢内噪音很大,座位也不够宽敞,给人感觉很拥挤,只能给出2星评价。
张女士,我在广州地铁的体验非常糟糕。地铁车厢内拥挤不堪,车厢内空气质量也很差,让人感到很不舒服,只能给出2.5星评价。
李先生,我从深圳坐地铁去机场,但地铁车厢内的卫生状况让人感到很失望。地铁车厢内有垃圾和异味,希望能够加强清洁工作,只能给出2星评价。
王女士,我乘坐了从成都到重庆的高铁,但整个过程让我感到很不满意。高铁车厢内温度过高,而且座位舒适度很差,只能给出2.5星评价。
刘先生,我在武汉地铁的体验很糟糕。地铁站台上人流拥挤,地铁车厢内空气不流通,让人感到很闷热,只能给出2星评价。
张小姐,我乘坐了从上海到杭州的高铁,但服务质量让我感到很失望。高铁车厢内座位脏乱,而且服务人员态度冷淡,只能给出2.5星评价。
王先生,我在深圳地铁的体验非常糟糕。地铁车厢内拥挤不堪,而且车厢内设施老化,让人感到很不舒服,只能给出2星评价。
李女士,我从北京坐地铁去机场,但地铁车厢内的卫生状况让我感到很失望。地铁车厢内有污垢和异味,希望能够加强清洁工作,只能给出2.5星评价。
王先生,我乘坐了从广州到深圳的高铁,但整个过程让我感到很不满意。高铁车厢内噪音很大,而且车厢内温度过高,只能给出2星评价。
刘女士,我在上海地铁的体验很糟糕。地铁站台上人流拥挤,而且地铁车厢内设施老化,让人感到很不舒服,只能给出2.5星评价。
张先生,我乘坐了从杭州到苏州的高铁,但服务质量让我感到很失望。高铁车厢内座位不够宽敞,而且服务人员态度冷淡,只能给出2星评价。
王女士,我在广州地铁的体验非常糟糕。地铁车厢内拥挤不堪,而且车厢内空气质量很差,让人感到很不舒服,只能给出2.5星评价。
李先生,我从成都坐地铁去机场,但地铁车厢内的卫生状况让我感到很失望。地铁车厢内有污垢和异味,希望能够加强清洁工作,只能给出2星评价。
刘女士,我乘坐了从重庆到成都的高铁,但整个过程让我感到很不满意。高铁车厢内座位不够宽敞,而且车厢内温度过高,只能给出2.5星评价。
张小姐,我在苏州地铁的体验很糟糕。地铁站台上人流拥挤,而且地铁车厢内拥挤不堪,让人感到很不舒服,只能给出2星评价。
王先生,我乘坐了从南京到上海的高铁,但服务质量不尽如人意。高铁车厢内噪音很大,而且车厢内设施老化,只能给出2.5星评价。
李女士,我在成都地铁的体验非常糟糕。地铁站台上人流拥挤,地铁车厢内设施老化,让人感到很不舒服,只能给出2星评价。
刘先生,我从北京坐地铁去机场,但地铁车厢内的卫生状况让我感到很失望。地铁车厢内有污垢和异味,希望能够加强清洁工作,只能给出2.5星评价。
王先生,我乘坐了从北京到上海的高铁,但服务质量不尽人意。高铁车厢内噪音很大,座位也不够宽敞,给人感觉很拥挤,只能给出2星评价。
张女士,我在广州地铁的体验非常糟糕。地铁车厢内拥挤不堪,车厢内空气质量也很差,让人感到很不舒服,只能给出2.5星评价。
李先生,我从深圳坐地铁去机场,但地铁车厢内的卫生状况让人感到很失望。地铁车厢内有垃圾和异味,希望能够加强清洁工作,只能给出2星评价。
王女士,我乘坐了从成都到重庆的高铁,但整个过程让我感到很不满意。高铁车厢内温度过高,而且座位舒适度很差,只能给出2.5星评价。
刘先生,我在武汉地铁的体验很糟糕。地铁站台上人流拥挤,地铁车厢内空气不流通,让人感到很闷热,只能给出2星评价。
张小姐,我乘坐了从上海到杭州的高铁,但服务质量让我感到很失望。高铁车厢内座位脏乱,而且服务人员态度冷淡,只能给出2.5星评价。
王先生,我在深圳地铁的体验非常糟糕。地铁车厢内拥挤不堪,而且车厢内设施老化,让人感到很不舒服,只能给出2星评价。
李女士,我从北京坐地铁去机场,但地铁车厢内的卫生状况让我感到很失望。地铁车厢内有污垢和异味,希望能够加强清洁工作,只能给出2.5星评价。
王先生,我乘坐了从广州到深圳的高铁,但整个过程让我感到很不满意。高铁车厢内噪音很大,而且车厢内温度过高,只能给出2星评价。
刘女士,我在上海地铁的体验很糟糕。地铁站台上人流拥挤,而且地铁车厢内设施老化,让人感到很不舒服,只能给出2.5星评价。
张先生,我乘坐了从杭州到苏州的高铁,但服务质量让我感到很失望。高铁车厢内座位不够宽敞,而且服务人员态度冷淡,只能给出2星评价。
王女士,我在广州地铁的体验非常糟糕。地铁车厢内拥挤不堪,而且车厢内空气质量很差,让人感到很不舒服,只能给出2.5星评价。
李先生,我从成都坐地铁去机场,但地铁车厢内的卫生状况让我感到很失望。地铁车厢内有污垢和异味,希望能够加强清洁工作,只能给出2星评价。
刘女士,我乘坐了从重庆到成都的高铁,但整个过程让我感到很不满意。高铁车厢内座位不够宽敞,而且车厢内温度过高,只能给出2.5星评价。
张小姐,我在苏州地铁的体验很糟糕。地铁站台上人流拥挤,而且地铁车厢内拥挤不堪,让人感到很不舒服,只能给出2星评价。
王先生,我乘坐了从南京到上海的高铁,但服务质量不尽如人意。高铁车厢内噪音很大,而且车厢内设施老化,只能给出2.5星评价。
李女士,我在成都地铁的体验非常糟糕。地铁站台上人流拥挤,地铁车厢内设施老化,让人感到很不舒服,只能给出2星评价。
刘先生,我从北京坐地铁去机场,但地铁车厢内的卫生状况让我感到很失望。地铁车厢内有污垢和异味,希望能够加强清洁工作,只能给出2.5星评价。
王先生,我乘坐了从北京到上海的高铁,但服务质量不尽人意。高铁车厢内噪音很大,座位也不够宽敞,给人感觉很拥挤,只能给出2星评价。
张女士,我在广州地铁的体验非常糟糕。地铁车厢内拥挤不堪,车厢内空气质量也很差,让人感到很不舒服,只能给出2.5星评价。
李先生,我从深圳坐地铁去机场,但地铁车厢内的卫生状况让人感到很失望。地铁车厢内有垃圾和异味,希望能够加强清洁工作,只能给出2星评价。
王女士,我乘坐了从成都到重庆的高铁,但整个过程让我感到很不满意。高铁车厢内温度过高,而且座位舒适度很差,只能给出2.5星评价。
刘先生,我在武汉地铁的体验很糟糕。地铁站台上人流拥挤,地铁车厢内空气不流通,让人感到很闷热,只能给出2星评价。
张小姐,我乘坐了从上海到杭州的高铁,但服务质量让我感到很失望。高铁车厢内座位脏乱,而且服务人员态度冷淡,只能给出2.5星评价。
王先生,我在深圳地铁的体验非常糟糕。地铁车厢内拥挤不堪,而且车厢内设施老化,让人感到很不舒服,只能给出2星评价。
李女士,我从北京坐地铁去机场,但地铁车厢内的卫生状况让我感到很失望。地铁车厢内有污垢和异味,希望能够加强清洁工作,只能给出2.5星评价。
王先生,我乘坐了从广州到深圳的高铁,但整个过程让我感到很不满意。高铁车厢内噪音很大,而且车厢内温度过高,只能给出2星评价。
刘女士,我在上海地铁的体验很糟糕。地铁站台上人流拥挤,而且地铁车厢内设施老化,让人感到很不舒服,只能给出2.5星评价。
张先生,我乘坐了从杭州到苏州的高铁,但服务质量让我感到很失望。高铁车厢内座位不够宽敞,而且服务人员态度冷淡,只能给出2星评价。
王女士,我在广州地铁的体验非常糟糕。地铁车厢内拥挤不堪,而且车厢内空气质量很差,让人感到很不舒服,只能给出2.5星评价。
李先生,我从成都坐地铁去机场,但地铁车厢内的卫生状况让我感到很失望。地铁车厢内有污垢和异味,希望能够加强清洁工作,只能给出2星评价。
刘女士,我乘坐了从重庆到成都的高铁,但整个过程让我感到很不满意。高铁车厢内座位不够宽敞,而且车厢内温度过高,只能给出2.5星评价。
张小姐,我在苏州地铁的体验很糟糕。地铁站台上人流拥挤,而且地铁车厢内拥挤不堪,让人感到很不舒服,只能给出2星评价。
王先生,我乘坐了从南京到上海的高铁,但服务质量不尽如人意。高铁车厢内噪音很大,而且车厢内设施老化,只能给出2.5星评价。
李女士,我在成都地铁的体验非常糟糕。地铁站台上人流拥挤,地铁车厢内设施老化,让人感到很不舒服,只能给出2星评价。
刘先生,我从北京坐地铁去机场,但地铁车厢内的卫生状况让我感到很失望。地铁车厢内有污垢和异味,希望能够加强清洁工作,只能给出2.5星评价。

然后通过snownlp库进行情感分析,并绘制直方图

import os
from snownlp import SnowNLP
import matplotlib.pyplot as plt

# 读取根目录下的pinglun.txt文件内容
root_path = "./"
file_path = os.path.join(root_path, 'pinglun.txt')

try:
    with open(file_path, 'r', encoding='utf-8') as f:
        text_content = f.read()

    # 将文本拆分成句子列表
    sentences = [line.strip() for line in text_content.split('\n') if line.strip()]

    # 对每个句子进行情感分析,并收集情感得分
    sentiment_scores = []
    for sentence in sentences:
        s = SnowNLP(sentence)
        sentiment_scores.append(s.sentiments)

    # 绘制情感得分直方图
    plt.hist(sentiment_scores, bins=10, edgecolor='black')
    plt.xlabel('情感得分')
    plt.ylabel('句子数量')
    plt.title('根目录下pinglun.txt文件的情感分析')
    plt.grid(True)
    plt.show()

except FileNotFoundError:
    print("文件不存在:", file_path)
except Exception as e:
    print("处理文件时发生错误:", str(e))

处理结果如下

 

由图像我们可以得知整体评论的具体情感倾向

 

posted @ 2024-03-19 20:00  橘子味芬达水  阅读(59)  评论(0编辑  收藏  举报