Maison  >  Article  >  développement back-end  >  Partage de démonstration simple de l'analyse des sentiments snownlp en python

Partage de démonstration simple de l'analyse des sentiments snownlp en python

黄舟
黄舟original
2017-06-04 10:08:202866parcourir

L'éditeur ci-dessous vous proposera une simple démo (partage) de l'analyse des sentiments python snownlp. L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur pour jeter un œil

SnowNLP est une bibliothèque de classes pythondéveloppée par des Chinois. Elle peut facilement traiter le contenu du texte chinois. Elle a été inspirée par TextBlob et a été écrite grâce à lui. Un grand nombre de personnes de nos jours. Certaines bibliothèques de traitement du langage naturel sont essentiellement destinées à l'anglais, j'ai donc écrit une bibliothèque de classes pratique pour traiter le chinois. Et contrairement à TextBlob, NLTK n'est pas utilisé ici. Tous les algorithmes sont implémentés par moi-même. venez avec. Dictionnaire formé. Notez que ce programme gère le codage Unicode, veuillez donc le décoder vous-même en Unicode lorsque vous l'utilisez. Publié sous licence MIT.

sa

gitpage d'accueil du hub

J'ai moi-même modifié le code python dans le lien ci-dessus et ajouté quelques commentaires, pour faciliter votre compréhension :

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]
Avant de compiler et d'exécuter, vous devez d'abord

installer le package snownlp, suivi de pylab, pandas Module : Entrez dans le terminal VS Code (View-> Terminal intégré) :

pip install snownlp
pip install pylab
pip install pandas
Le principe est que pip est installé. Si pip n'est pas installé, vous pouvez vérifier mon. article précédent

Dans VS Code, nous pouvons cliquer avec le bouton droit sur le nom du module pour afficher la définition, puis nous pouvons voir l'implémentation du module. Je dois dire que VS Code est très puissant, j'espère que Microsoft. peut continuer ainsi, en évoluant vers l'open source et le multiplateforme ! !


Ensuite, j'ai extrait au hasard la critique de Douban sur "Good Will Hunting" et je l'ai mise dans un txt :

En fait, dans la plupart des cas, la traduction du continent est plus savoureuse que la Traduction hongkongaise.


Ce n'est pas de votre faute !


Je n'ai vu ce film qu'occasionnellement à la télé, et c'était vraiment touchant quand je l'ai regardé. Pourquoi y aurait-il une personne aussi talentueuse avec une vie aussi tortueuse ?

Je pense que le scénario est très bon mais il n'a pas été entièrement filmé :) J'ai encore un petit doute sur la performance de l'acteur~ Haha

Bonnes critiques


Il y a quelques jours je viens de le regarder, un film touchant, à la recherche de la vraie vie


Cette critique de film est très bien écrite, j'ai les yeux humides


Un très bon film

La dernière étape est le traitement :

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()

L'effet final :

Il peut y avoir quelques inexactitudes. J'ai extrait les données avec désinvolture, mais snownlp prétend toujours que l'analyse des sentiments est très précise !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn