Simple demo sharing of snownlp sentiment analysis in python

黄舟
Release: 2017-06-04 10:08:20
Original
2874 people have browsed it

The following editor will bring you a simple demo (share) of python snownlp sentiment analysis. The editor thinks it’s pretty good, so I’ll share it with you now and give it as a reference. Let’s follow the editor to take a look.

SnowNLP is a python class library developed by Chinese people. It can conveniently process Chinese text content. It was inspired by TextBlob and was written due to the large number of people nowadays. Some natural language processing libraries are basically for English, so I wrote a class library that is convenient for processing Chinese. And unlike TextBlob, NLTK is not used here. All algorithms are implemented by myself, and some of them are included. Trained dictionary. Note that this program handles unicode encoding, so please decode it into unicode yourself when using it. Released under the MIT license.

itsgithub home page

I modified the python code in the link above and added some comments, to facilitate your understanding:

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)
Copy after login
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]
Copy after login

Before compiling and running, you must install the snownlp package, followed by pylab and pandas modules:
Enter in the VS Code terminal (View->Integrated Terminal):

pip install snownlp
pip install pylab
pip install pandas
Copy after login

The premise is that you have pip installed. If pip is not installed, you can check my previous article

in VS In Code, we can right-click the module name to view the definition, and then we can see the implementation of the module. I have to say that VS Code is very powerful. I hope Microsoft can continue this way and move towards open source and cross-platform! !

Then I randomly extracted the Douban review of "Good Will Hunting" and put it in a txt:

In fact, in most cases, the mainland translation is more flavorful than the Hong Kong translation. .

It is not ur fault!

I only saw this movie occasionally on TV. It was really touching when I watched it. Why could such a genius have such a tortuous life?
I think the script is very good but it was not completely filmed :) I still have some doubts about the actors’ performances~ Haha

Good reviews

A few days ago I just watched it, a heart-touching movie, looking for the real life

This movie review is very well written, my eyes are moist

Very good movie

The last step is the processing procedure:

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()
Copy after login

The final effect:

There may be some inaccuracies. I extracted the data casually, but snownlp still claims that sentiment analysis is very accurate!

The above is the detailed content of Simple demo sharing of snownlp sentiment analysis in python. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!