一,Jieba
对于结巴而言,使用的人比较多,支持三种分词模式,繁体分词,自定义词典,MIT授权协议。
三种模式分词
import jieba
s_list = jieba.cut("江南小镇的青砖白瓦风景秀美如画", cut_all=True)
print("Full Mode: " + " ".join(s_list)) # 全模式
s_list = jieba.cut("江南小镇的青砖白瓦风景秀美如画", cut_all=False)
print("Default Mode: " + " ".join(s_list)) # 精确模式
s_list = jieba.cut("江南小镇的青砖白瓦风景秀美如画") # 默认是精确模式
print(", ".join(s_list))
s_list = jieba.cut_for_search("江南小镇的青砖白瓦风景秀美如画") # 搜索引擎模式
print(", ".join(s_list))
Full Mode: 江南/ 小镇/ 的/ 青砖/ 白/ 瓦/ 风景/ 秀美/ 美如画
Default Mode: 江南/ 小镇/ 的/ 青砖/ 白瓦/ 风景/ 秀/ 美如画
江南, 小镇, 的, 青砖, 白瓦, 风景, 秀, 美如画
江南, 小镇, 的, 青砖, 白瓦, 风景, 秀, 美如画
基于 TF-IDF 算法的关键词抽取
import jieba.analyse
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
sentence 为待提取的文本
topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
withWeight 为是否一并返回关键词权重值,默认值为 False
allowPOS 仅包括指定词性的词,默认值为空,即不筛选
基于 TextRank 算法的关键词抽取
jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))
二,SnowNLP
处理unicode编码,可实现以下操作:
from snownlp import SnowNLP
#转换拼音
s = SnowNLP("北京是国际化都市")
print(s.pinyin)
#繁体转简体
s = SnowNLP("「繁體字」「繁體中文」")
print(s.han)
#文本摘要
s = SnowNLP("移动易是由移动互联网爱好人士自发建立的一个开源社区,包含移动APP后端服务器,移动APP前端(混合APP)。目前GitHub关注者400多,;开源中国关注者150多,QQ群友400多。 借助框架,让后台开发变得异常简单。原本需要三个月的APP开发,在移动易的帮助下只需要一个月即可完成。原本需要10000行代码的项目,在移动易的帮助下只需要3000行即可快速完成。帮助项目方节省60%时间和预算。")
print(s.summary(2))
/usr/bin/python3.6 /home/zhudajun/IdeaProjects/get_data_and_point/get_data/fenci.py
['bei', 'jing', 'shi', 'guo', 'ji', 'hua', 'du', 'shi']
「繁体字」「繁体中文」
['原本需要三个月的APP开发', '在移动易的帮助下只需要一个月即可完成']