SnowNLP简易教程:分词、词性标注、情感分析、繁体转换、关键字抽取、相似度计算...

SnowNLP

一个可以方便的处理中文文本内容的python写的类库,受到了TextBlob的启发而写的

 

 安装:pip install snownlp

from snownlp import SnowNLP
sentence = '我热爱机器学习技术'
s = SnowNLP(sentence)
#1.分词
s_token = s.words
print(s_token)


   ['我', '热爱', '机器', '学习', '技术']
    
#2.词性标注
s_tags = s.tags
for token_tag in s_tags:
    print(token_tag)
    
   ('我', 'r')
    ('热爱', 'v')
    ('机器', 'n')
    ('学习', 'v')
    ('技术', 'n')
    
#3.情感分析(消极或者积极)  positive or negative
s_senti = s.sentiments    #(positive的概率)
print(s_senti)
```


   0.9539851857793564
    


#4.中文拼音
s_pinyin = s.pinyin
for i in range(len(sentence)):
    print(sentence[i],s_pinyin[i])
```




   我 wo
    热 re
    爱 ai
    机 ji
    器 qi
    学 xue
    习 xi
    技 ji
    术 shu
    
#5.繁体字转简体
sentence_fan = "我愛機器學習技術"
s_jianti = SnowNLP(sentence_fan)
print(s_jianti.han)
```




   我爱机器学习技术
    


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




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


#7.关键词抽取
key_num = 5
t_key = t.keywords(key_num)
print(t_key)
```




   ['语言', '自然', '计算机', '领域', '研究']
    




#8.摘要抽取(关键句抽取)
key_sen = 5
t_keysen = t.summary(key_sen)
print(t_keysen)
```




   ['因而它是计算机科学的一部分', '自然语言处理是计算机科学领域与人工智能领域中的一个重要方向', '自然语言处理是一门融语言学、计算机科学、数学于一体的科学', '所以它与语言学的研究有着密切的联系', '这一领域的研究将涉及自然语言']
    


#9.计算tf和idf
s = SnowNLP([[u'机器学习', u'人工智能'],
             [u'深度学习', u'自然语言处理'],
             [u'数据挖掘']])
print(s.tf)
print(s.idf)
```




   [{'机器学习': 1, '人工智能': 1}, {'深度学习': 1, '自然语言处理': 1}, {'数据挖掘': 1}]
    {'机器学习': 0.5108256237659907, '人工智能': 0.5108256237659907, '深度学习': 0.5108256237659907, '自然语言处理': 0.5108256237659907, '数据挖掘': 0.5108256237659907}
    


#10.计算相似度(BM25)
artilc1 = ['自然语言处理']
print(s.sim(artilc1))


   [0, 0.4686473612532025, 0]
    


## 支持训练
- 提供训练的包括分词,词性标注,情感分析。语料在snownlp/seg目录下
- 训练好的文件就存储为seg.marshal了,然后修改snownlp/seg/init.py里的data_path指向刚训练好的文件即可




from snownlp import seg
#seg.train('data.txt')
#seg.save('seg.marshal')
# from snownlp import tag
# tag.train('199801.txt')
# tag.save('tag.marshal')
# from snownlp import sentiment
# sentiment.train('neg.txt', 'pos.txt')
# sentiment.save('sentiment.marshal')


  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值