Maison  >  Article  >  développement back-end  >  Partager des exemples de didacticiels Python Snownlp

Partager des exemples de didacticiels Python Snownlp

PHP中文网
PHP中文网original
2017-06-21 15:55:153650parcourir

SnowNLP est une bibliothèque de classes Python développée par des Chinois. Elle peut facilement traiter le contenu du texte chinois. Elle a été inspirée par TextBlob. Étant donné que la plupart des bibliothèques de traitement du langage naturel sont désormais essentiellement destinées à l'anglais, j'en ai écrit une. pratique pour traiter le chinois, et contrairement à TextBlob, NLTK n'est pas utilisé ici. Tous les algorithmes sont implémentés par nous-mêmes et sont livrés avec des dictionnaires formés. 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 page d'accueil github
J'ai 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']4s = 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.0s = 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 des modules pylab et pandas :
Dans le terminal VS Code (View->Terminal intégré), saisissez :
pip install snownlp

pip install pylab

pip install pandas
Le principe est que pip est installé si pip n'est pas installé, vous pouvez consulter mon article précédent

Dans VS Code, nous pouvons corriger. -cliquez sur le module Si vous vérifiez d'abord la définition, vous pouvez voir l'implémentation du module. Je dois dire que VS Code est très puissant, j'espère que Microsoft pourra continuer sur cette voie et évoluer 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 de Hong Kong.
Ce n'est pas de votre faute !
Je n'ai vu ce film qu'occasionnellement à la télé. C'était vraiment touchant quand je le regardais. 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 quelques doutes sur les performances des acteurs ~ Haha
Bonnes critiques
Je viens de le regarder il y a quelques jours, un cœur- film touchant, je le cherche La vraie vie
Cette critique de film est très bien écrite, j'ai les yeux humides
Un très bon film


Vient enfin la procédure de traitement :

from snownlp import SnowNLPimport pandas as pdimport 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()

Le résultat final :

C'est peut-être un peu inexact, 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