SnowNLP 中文文本分析器基本用法
2017-08-13 22:54
399 查看
发现一篇SnowNLP写的蛮好的一个示例:NLP之淘宝商品评论情感分析,可以去看看这个案例,能更好的理解。
github地址:https://github.com/isnowfy/snownlp
作者大人的博客地址:浅谈中文分词
感觉还是蛮有意思的,这个东西是自带了一个词库,然后还可以进行情感分析,把繁体化简,把中文变成汉语拼音,还可以提取关键字,提取摘要(这个感觉666),还可以进行文本分类,对文本的相似性进行判断。
1.安装:pip3 install snownlp
2.基本用法:
from
snownlp import
SnowNLP
s = SnowNLP(u'一次满意的购物')
s.words
1) s.words 词语
2) s.sentences 句子
3) s.sentiments 情感偏向,0-1之间的浮点数,越靠近1越积极
4) s.pinyin 转为拼音
5) s.han 转为简体
6) s.keywords(n) 提取关键字,n默认为5
7) s.summary(n) 提取摘要,n默认为5
8) s.tf 计算term frequency词频
9) s.idf 计算inverse document frequency逆向文件频率
10) s.sim(doc,index) 计算相似度
这个sim的话,后面跟的是一个可以迭代的东西。
2.训练:
训练的文本是有要求的。
1)分词
比如说你要进行分词的话,首先先from snownlp import seg,然后通过seg.data_path可以看到词典的路径。
我的路径是:
/usr/local/lib/python3.6/site-packages/snownlp/seg/seg.marshal
然后你可以看到在同一个目录下,有个data.txt,这个就是训练的样本,打开样本可以发现:
迈/b 向/e 充/b 满/e 希/b 望/e 的/s 新/s 世/b 纪/e
中/b 共/m 中/m 央/e 总/b 书/m 记/e
这样的句子
其中b代表begin,m代表middle,e代表end,分别代表一个词语的开始,中间词和结尾,s代表single,一个字是一个词的意思。
将训练样本放入data1.txt中,进行训练:
seg.train('data1.txt')
如果下次还需要使用的话,将结果保留到seg2.marshal当中,使用的时候只要更改data_path改为seg2.marshal的路径即可。
2)情感分析
和上面一样,能看到/usr/local/lib/python3.6/site-packages/snownlp/sentiment里面有2个txt文件,neg.txt和pos.txt,这两个里放的是负向情感和正向情感的句子。所以在训练的时候也只需要这样子放入句子即可。
from snownlp import sentiment
sentiment.train(neg1.txt,pos1.txt)
sentiment.save('sentiment2.marshal')
github地址:https://github.com/isnowfy/snownlp
作者大人的博客地址:浅谈中文分词
感觉还是蛮有意思的,这个东西是自带了一个词库,然后还可以进行情感分析,把繁体化简,把中文变成汉语拼音,还可以提取关键字,提取摘要(这个感觉666),还可以进行文本分类,对文本的相似性进行判断。
1.安装:pip3 install snownlp
2.基本用法:
from
snownlp import
SnowNLP
s = SnowNLP(u'一次满意的购物')
s.words
1) s.words 词语
2) s.sentences 句子
3) s.sentiments 情感偏向,0-1之间的浮点数,越靠近1越积极
4) s.pinyin 转为拼音
5) s.han 转为简体
6) s.keywords(n) 提取关键字,n默认为5
7) s.summary(n) 提取摘要,n默认为5
8) s.tf 计算term frequency词频
9) s.idf 计算inverse document frequency逆向文件频率
10) s.sim(doc,index) 计算相似度
这个sim的话,后面跟的是一个可以迭代的东西。
2.训练:
训练的文本是有要求的。
1)分词
比如说你要进行分词的话,首先先from snownlp import seg,然后通过seg.data_path可以看到词典的路径。
我的路径是:
/usr/local/lib/python3.6/site-packages/snownlp/seg/seg.marshal
然后你可以看到在同一个目录下,有个data.txt,这个就是训练的样本,打开样本可以发现:
迈/b 向/e 充/b 满/e 希/b 望/e 的/s 新/s 世/b 纪/e
中/b 共/m 中/m 央/e 总/b 书/m 记/e
这样的句子
其中b代表begin,m代表middle,e代表end,分别代表一个词语的开始,中间词和结尾,s代表single,一个字是一个词的意思。
将训练样本放入data1.txt中,进行训练:
seg.train('data1.txt')
如果下次还需要使用的话,将结果保留到seg2.marshal当中,使用的时候只要更改data_path改为seg2.marshal的路径即可。
2)情感分析
和上面一样,能看到/usr/local/lib/python3.6/site-packages/snownlp/sentiment里面有2个txt文件,neg.txt和pos.txt,这两个里放的是负向情感和正向情感的句子。所以在训练的时候也只需要这样子放入句子即可。
from snownlp import sentiment
sentiment.train(neg1.txt,pos1.txt)
sentiment.save('sentiment2.marshal')
相关文章推荐
- Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
- 关于c#导出的文本或者cvs文件在excel中中文乱码的分析及解决方案
- 7064-2.Python数据分析:pandas基本用法(下)
- [9-15]Sed文本处理――基本用法
- SnowNLP:处理中文文本内容
- 深入理解Glide源码,分析之路(一):基本用法,史上最详细、易懂
- 【python数据挖掘课程】二十一.朴素贝叶斯分类器详解及中文文本舆情分析
- python中getaddrinfo()基本用法实例分析
- do...while的基本用法(包括缓冲问题的基本分析)
- 7064-1.Python数据分析:pandas基本用法(上)
- 文本处理三剑客之sed基本用法
- LCS算法实现简单中文文本相似度分析
- c++中map的基本用法和嵌套用法实例分析
- [8-30]文本编辑工具VIM的基本用法和特性
- 在线教学、视频会议 Webus Fox(1)文本、语音、视频聊天及电子白板基本用法
- Flask框架Flask-Principal基本用法实例分析
- 列表ul的基本用法分析
- 基于LingPipe的文本基本极性分析【demo】
- snownlp 中文语法分析