NLP:snownlp(中文文本分析扩展包)

656 阅读2分钟

1/前言

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

2/安装

pip install snownlp

3/功能

image.png

4/具体应用

参考网址

pypi.org/project/sno…

<1>情感分析

from snownlp import SnowNLP

text = u"我今天很快乐。我今天很愤怒。"

s = SnowNLP(text)
# 划分子句
s.sentences

# 情感分析
s1 = SnowNLP( s.sentences[0] )
s1.sentiments

s2 = SnowNLP( s.sentences[1] )
s2.sentiments

s.sentiments  # 整个句子的情感分析

# snownlp情分分析的取值范围是[0,1],这一点和textblob不同。

<2>demo

from snownlp import SnowNLP

text = u'这个东西真心很赞'
s = SnowNLP(text)

# 切分词
s.words # [u'这个', u'东西', u'真心',u'很', u'赞']

# 切分词,并且展示词性
s.tags # [(u'这个', u'r'), (u'东西', u'n'),(u'真心', u'd'), (u'很', u'd'), (u'赞',u'Vg')]

# 情感分析,取值范围是[0,1]
s.sentiments # 0.9769663402895832 positive的概率

# 转化为拼音
s.pinyin # [u'zhe', u'ge', u'dong', u'xi',u'zhen', u'xin', u'hen', u'zan']

s = SnowNLP(u'「繁體字」「繁體中文」的叫法在臺灣亦很常見。')

s.han # u'「繁体字」「繁体中文」的叫法\
# 在台湾亦很常见。'\

text = u'''
自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。
它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
自然语言处理是一门融语言学、计算机科学、数学于一体的科学。
因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,
所以它与语言学的研究有着密切的联系,但又有重要的区别。
自然语言处理并不是一般地研究自然语言,
而在于研制能有效地实现自然语言通信的计算机系统,
特别是其中的软件系统。因而它是计算机科学的一部分。
'''

s = SnowNLP(text)

# 关键词提取
s.keywords(3) # [u'语言', u'自然', u'计算机']

# 摘要提取
s.summary(3) 
# [u'因而它是计算机科学的一部分',
# u'自然语言处理是一门融语言学、计算机科学、
# 数学于一体的科学',
# u'自然语言处理是计算机科学领域与人工智能
# 领域中的一个重要方向']

# 把整个句子拆分成多个子句
s.sentences

s = SnowNLP([[u'这篇', u'文章'],
[u'那篇', u'论文'],
[u'这个']])
s.tf
s.idf
s.sim([u'文章'])# [0.3756070762985226, 0, 0]