#Python系列#--自然语言处理之SnowNLP基础应N用

user

雨橙

中国.四川.成都

世界之上、唯有远见、惟爱不变。


SnowNLP 是一个 中文文本处理库。
下面简单说下这个库的基本使用方法

安装SnowNLP
pip install snownlp


分词
import snownlp
from snownlp import SnowNLP

text = u"这个东西真的很赞"
s = SnowNLP(text)

#分词
for word in s.words:
    print(word)

词性标注
#词性标注
for tag in s.tags:
    print(tag[0]+" | "+tag[1])

情感分析
#情感分析(情感值越接近1表示正面情绪,越接近0表示负面情绪)
print(text+" | "+str(s.sentiments))

转换拼音
#拼音
py = s.pinyin
print([x for x in py])

断句
#断句
strs = u"吴刚老师不一般啊,李达康此行是心中有事儿,他希望向沙瑞金展开一次愉快的工作汇报,好向沙交代清楚个人的家庭问题。对他来说,这次汇报能不能赢得沙瑞金的好感和信任,关系到他的政治生命,毕竟市委书记的老婆有问题,你既可以站在谨慎的角度说市委书记可能也有问题,也可以站在信任身边干部的立场上说要讲事实区别对待,这组织上的态度的重点就在于一把手对他的支持力度。那么这么重要的汇报,李达康的内心一定是焦虑、谨慎并且志在必得的。所以他会急迫地迎上沙瑞金,这是能将他从被动处境中解救出来的唯一一人,他必须抓住。"
s = SnowNLP(strs)
for word in s.sentences:
    print(word)

关键词提取
#关键词提取
wordlist = s.keywords(3)
for kw in wordlist:
    print(kw)

繁体中文转换简体中文
#繁体中文转换简体中文
ft = u"輸入簡體字,點下面繁體字按鈕進行在線轉換"
s = SnowNLP(ft)
han = s.han
print(han)

概括总结文意
#概括总结文意
with open(u"骨龄偏大或偏小该怎么办.txt","r") as f:
    text = f.read()
    s = SnowNLP(text)
    for x in s.summary(5):
        print(x)

文本相似性
#文本相似性
s = SnowNLP([["勇敢","力量"],
         ["善良","努力","勇敢"],
         ["坚强","善良"],
         ["勇敢","坚强"]])

print(s.sim(["努力"]))
print(s.sim(["坚强"]))

信息量衡量
#信息量衡量
print(s.tf)
print(s.idf)

for k in s.tf:
    for x in k:
        print(x+" | "+str(k[x]))


完整代码如下:
#!/usr/bin/python
# _*_ coding:utf-8 _*_
# author: robinn

import snownlp
from snownlp import SnowNLP

text = u"这个东西真的很赞"
s = SnowNLP(text)

#分词
for word in s.words:
    print(word)

#词性标注
for tag in s.tags:
    print(tag[0]+" | "+tag[1])


#情感分析(情感值越接近1表示正面情绪,越接近0表示负面情绪)
print(text+" | "+str(s.sentiments))

#拼音
py = s.pinyin
print([x for x in py])

#断句
strs = u"吴刚老师不一般啊,李达康此行是心中有事儿,他希望向沙瑞金展开一次愉快的工作汇报,好向沙交代清楚个人的家庭问题。对他来说,这次汇报能不能赢得沙瑞金的好感和信任,关系到他的政治生命,毕竟市委书记的老婆有问题,你既可以站在谨慎的角度说市委书记可能也有问题,也可以站在信任身边干部的立场上说要讲事实区别对待,这组织上的态度的重点就在于一把手对他的支持力度。那么这么重要的汇报,李达康的内心一定是焦虑、谨慎并且志在必得的。所以他会急迫地迎上沙瑞金,这是能将他从被动处境中解救出来的唯一一人,他必须抓住。"
s = SnowNLP(strs)
for word in s.sentences:
    print(word)


#关键词提取
wordlist = s.keywords(3)
for kw in wordlist:
    print(kw)


#繁体中文转换简体中文
ft = u"輸入簡體字,點下面繁體字按鈕進行在線轉換"
s = SnowNLP(ft)
han = s.han
print(han)


#概括总结文意
with open(u"骨龄偏大或偏小该怎么办.txt","r") as f:
    text = f.read()
    s = SnowNLP(text)
    for x in s.summary(5):
        print(x)

#文本相似性
s = SnowNLP([["勇敢","力量"],
         ["善良","努力","勇敢"],
         ["坚强","善良"],
         ["勇敢","坚强"]])

print(s.sim(["努力"]))
print(s.sim(["坚强"]))


#信息量衡量
print(s.tf)
print(s.idf)

for k in s.tf:
    for x in k:
        print(x+" | "+str(k[x]))

posted at