当前位置: 首页 > 编程笔记 >

python snownlp情感分析简易demo(分享)

江渊
2023-03-14
本文向大家介绍python snownlp情感分析简易demo(分享),包括了python snownlp情感分析简易demo(分享)的使用技巧和注意事项,需要的朋友参考一下

SnowNLP是国人开发的python类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。注意本程序都是处理的unicode编码,所以使用时请自行decode成unicode。MIT许可下发行。

github 主页

我自己修改了上文链接中的python代码并加入些许注释,以方便你的理解:

from snownlp import SnowNLP
# SnowNLP库:
# words:分词
# tags:关键词
# sentiments:情感度
# pinyin:拼音
# keywords(limit):关键词
# summary:关键句子
# sentences:语序
# tf:tf值
# idf:idf值
s = SnowNLP(u'这个东西真心很赞')
# s.words     # [u'这个', u'东西', u'真心', u'很', u'赞']
print(s.words)
s.tags # [(u'这个', u'r'), (u'东西', u'n'), (u'真心', u'd')
# , (u'很', u'd'), (u'赞', u'Vg')]
print(s.sentiments)
# s.sentiments  # 0.9769663402895832 positive的概率
# s.pinyin    # [u'zhe', u'ge', u'dong', u'xi', # u'zhen', u'xin', u'hen',
# u'zan']4
s = SnowNLP(u'「繁體字」「繁體中文」的叫法在臺灣亦很常見。')
# s.han      # u'「繁体字」「繁体中文」的叫法在台湾亦很常见。'
print(s.han)
from snownlp import SnowNLP
text = u'''
自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。
它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
自然语言处理是一门融语言学、计算机科学、数学于一体的科学。
因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,
所以它与语言学的研究有着密切的联系,但又有重要的区别。
自然语言处理并不是一般地研究自然语言,
而在于研制能有效地实现自然语言通信的计算机系统,
特别是其中的软件系统。因而它是计算机科学的一部分。
'''
s = SnowNLP(text)
print(s.keywords(6)) # [u'语言', u'自然', u'计算机'] 不能用tags输出关键字.
s.summary(3) # [u'因而它是计算机科学的一部分', u'自然语言处理是一门融语言学、计算机科学、
# 数学于一体的科学', u'自然语言处理是计算机科学领域与人工智能领域中的一个重要方向']s.sentences
# print(s.sentences)
print(s.sentiments) # 1.0
s = SnowNLP([[u'这篇', u'文章'],
       [u'那篇', u'论文'],
       [u'这个']])
# print(s.tf)
# print(s.idf)
# print(s.sim([u'文章'])) # [0.3756070762985226, 0, 0]

在编译运行之前,先得安装snownlp包,后续还有pylab,pandas模块:
在VS Code终端(查看->集成终端)里面输入:
pip install snownlp

pip install pylab

pip install pandas

前提是你安装了pip,若是pip没有安装可以查看我之前的 文章

在VS Code中我们可以右键模块名查看定义,便能看到模块的实现了.不得不说VS Code很强大,希望微软能这么一直走下去,走向开源走向跨平台!!

然后我随便提取了《心灵捕手》豆瓣网评,放在了txt中:

其实大多数情况下,大陆的译名比港译要更有味道。

It is not ur fault!

我是在电视上偶尔才看到这个电影的,当时看的时候真的很感人。 为什么会有这么天才的人,却有着这样子曲折的人生。
是认为剧本很好却没有被完全拍出来:) 对演员的表演还是心存质疑一点点~ 呵呵

好评

前几日刚刚看过,一部触动心灵的电影,寻找真正的人生

这篇影评写的很棒,我的眼睛湿润了

很好的片子

最后就是处理的程序了:

from snownlp import SnowNLP
import pandas as pd
import pylab as pl
txt = open('F:/_analyse_Emotion.txt')
text = txt.readlines()
txt.close()
print('读入成功')
sentences = []
senti_score = []
for i in text:
  a1 = SnowNLP(i)
  a2 = a1.sentiments
  sentences.append(i) # 语序...
  senti_score.append(a2)
  print('doing')
table = pd.DataFrame(sentences, senti_score)
# table.to_excel('F:/_analyse_Emotion.xlsx', sheet_name='Sheet1')
# ts = pd.Series(sentences, senti_score)
# ts = ts.cumsum()
# print(table)
x = [1, 2, 3, 4, 5, 6, 7, 8]
pl.mpl.rcParams['font.sans-serif'] = ['SimHei']
pl.plot(x, senti_score)
pl.title(u'心 灵 捕 手 网 评')
pl.xlabel(u'评 论 用 户')
pl.ylabel(u'情 感 程 度')
pl.show()

最后的效果:

可能有些不准确,我也是随便提取的数据,不过snownlp还是号称情感分析准确很高的!

以上这篇python snownlp情感分析简易demo(分享)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 因此,我们已经使用Power Automation Power BI twitter开发API建立了twitter情绪分析。直到本月初,一切都很顺利。然而,由于无效的订阅密钥或错误的APIendpoint,我们突然开始出现以下错误:拒绝访问。请确保为活动订阅提供有效密钥,并为您的资源使用正确的区域API终结点”。进一步调查发现my Azure subcription已禁用。(免费帐户)。但是,免费

  • 问题内容: 我正在寻找 文本情感分析 (http://en.wikipedia.org/wiki/Sentiment_analysis)的开源实现,最好是python 。有谁熟悉我可以使用的开源实现? 我正在编写一个应用程序,该应用程序在Twitter上搜索某个搜索词,例如“ youtube”,并计算“快乐”推文与“悲伤”推文的数量。我正在使用Google的appengine,所以它在python

  • 但是,我还没能在Stanford CorenLP中找到任何文本分类的注释器。我有什么办法可以实现我的想法。更好的是,有没有更好的方法来实现我想要实现的目标。 提前谢了。

  • 我需要使用斯坦福NLP工具对关于特定主题的新闻文章进行情感分析。 这样的工具只允许基于句子的情感分析,而我想提取关于我的主题的整个文章的情感评价。 例如,如果我的主题是苹果,我想知道关于苹果的新闻文章的观点。 另一方面,将我的句子过滤到只包含Apple这个词的句子中,会遗漏类似“Apple的产品A很好。但是,它缺乏以下关键功能:...”的文章。在这种情况下,如果我只使用包含Apple这个词的句子,

  • 与 TF-IDF + LogReg 之类的简单且快得多的方法相比,LSTM 实际上由于数据集太小而无济于事。 注意 RNN 非常棘手。批次大小、损失和优化器的选择很重要,等等。某些配置无法收敛。 训练期间的 LSTM 损失减少模式可能与你在 CNN/MLP 等中看到的完全不同。 from __future__ import print_function from keras.preprocess

  • 一、交易分析 点击进入交易分析页:该页主要展示的是交易分析、下单数量、订单来源(包含所有订单)、订单类型(包含所有订单)。 1、交易分析:展示的是订单金额(所有的订单总金额)和毛利润(售出商品的纯利润金额),可根据时间查找具体的信息,将鼠标放在统计图的某个时间上就会显示出具体信息。 2、下单数量:展示的是下单数量(已经下单的总数)、支付数量(下单后的所有金额)、下单-支付妆化率。可根据搜索时间查看