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还是号称情感分析准确很高的!

时间: 2024-08-02 02:44:00

python snownlp情感分析简易demo的相关文章

snownlp情感分析源码解析

最近发现了snownlp这个库,这个类库是专门针对中文文本进行文本挖掘的. 主要功能: 中文分词(Character-Based Generative Model) 词性标注(TnT 3-gram 隐马) 情感分析(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决) 文本分类(Naive Bayes) 转换成拼音(Trie树实现的最大匹配) 繁体转简体(Trie树实现的最大匹配) 提取文本关键词(TextRank算法) 提取文本摘要(TextRank算法) tf,id

我用Python进行情感分析,让程序员和女神牵手成功

先用电影评论来做情感分析,主要包括下面几个主要内容(看到最后哦): 1.准备文本数据 2.基于文本文档来构建特征向量 3.训练机器学习模型来区分电影评论的正面评论和负面评论(对你的女神同样适用哦~~) 4.使用外存学习和在线学习算法来处理大数据 在本篇文章中,主要介绍对于电影评论数据的准备工作. 一.情感分析 情感分析也称观点挖掘(opinion mining),是机器学习中自然语言处理(NLP)领域一个非常流行的分支,它主要是分析文档的情感倾向. 二.下载数据 请自行准备一个电影信息(或者直接

Python分词、情感分析工具——SnowNLP

本文内容主要参考GitHub:https://github.com/isnowfy/snownlp what's the SnowNLP SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典.注意本程序都是处理的unicode编码,所以使用时请自行decod

Python爬虫和情感分析简介

摘要 这篇短文的目的是分享我这几天里从头开始学习Python爬虫技术的经验,并展示对爬取的文本进行情感分析(文本分类)的一些挖掘结果. 不同于其他专注爬虫技术的介绍,这里首先阐述爬取网络数据动机,接着以豆瓣影评为例介绍文本数据的爬取,最后使用文本分类的技术以一种机器学习的方式进行情感分析.由于内容覆盖面巨大,无法详细道尽,这篇文章旨在给那些对相关领域只有少量或者没有接触的人一个认知的窗口,希望激发读者自行探索的兴趣. 以下的样本代码用Pyhton写成,主要使用了scrapy, sklearn两个

【转】用python实现简单的文本情感分析

import jieba import numpy as np # 打开词典文件,返回列表 def open_dict(Dict='hahah',path = r'/Users/zhangzhenghai/Downloads/Textming/'): path = path + '%s.txt' %Dict dictionary = open(path, 'r', encoding='utf-8') dict = [] for word in dictionary: word = word.st

文本情感分析的基础在于自然语言处理、情感词典、机器学习方法等内容。以下是我总结的一些资源。

词典资源:SentiWordNet<知网>中文版中文情感极性词典 NTUSD情感词汇本体下载 自然语言处理工具和平台:哈尔滨工业大学社会计算与信息检索研究中心isnowfy/snownlp · GitHub 汉语分词:自然语言处理与信息检索共享平台 NLPIR.orgfxsjy/jieba · GitHub 语料资源:信息分类与情感发现 课程:斯坦福大学自然语言处理第七课"情感分析(Sentiment Analysis)" 网站和博客:Text Classification

C#编程实现朴素贝叶斯算法下的情感分析

C#编程实现 这篇文章做了什么 朴素贝叶斯算法是机器学习中非常重要的分类算法,用途十分广泛,如垃圾邮件处理等.而情感分析(Sentiment Analysis)是自然语言处理(Natural Language Progressing)中的重要问题,用以对文本进行正负面的判断,以及情感度评分和意见挖掘.本文借助朴素贝叶斯算法,针对文本正负面进行判别,并且利用C#进行编程实现. 不先介绍点基础? 朴素贝叶斯,真的很朴素 朴素贝叶斯分类算法,是一种有监督学习算法,通过对训练集的学习,基于先验概率与贝叶

情感分析的现代方法(包含word2vec Doc2Vec)

英文原文地址:https://districtdatalabs.silvrback.com/modern-methods-for-sentiment-analysis 转载文章地址:http://datartisan.com/article/detail/48.html 情感分析是一种常见的自然语言处理(NLP)方法的应用,特别是在以提取文本的情感内容为目标的分类方法中.通过这种方式,情感分析可以被视为利用一些情感得分指标来量化定性数据的方法.尽管情绪在很大程度上是主观的,但是情感量化分析已经有

短文本情感分析

一.什么是情感分析: 情感分析(SA)又称为倾向性分析和意见挖掘,它是对带有情感色彩的主观性文本进行分析.处理.归纳和推理的过程,其中情感分析还可以细分为情感极性(倾向)分析,情感程度分析,主客观分析等. 情感极性分析的目的是对文本进行褒义.贬义.中性的进行判断. 情感程度分析主要是对同一情感极性中再进行划分或者细分,以描述该极性的强度.例如"喜爱"和"敬爱"都是褒义词,但是"敬爱"相对来说褒义的程度更加强烈一些. 主客观分析主要目的是识别文本中