nlp分词之SnowNLP

SnowNLP简介

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

1、安装
pip install snownlp
或者下载对应的.whl,手动安装pip install 路径/xxxx.whl

分句

from snownlp import SnowNLP 
text="今天买的LV包非常喜欢,服务员的服务很周到,开销!"
snownlp_bus=SnowNLP(text)

#1 分句
print("1 分句:",snownlp_bus.sentences)

输出:
1 分句: ['今天买的LV包非常喜欢', '服务员的服务很周到', '开销']

分词

from snownlp import SnowNLP 
text="今天买的LV包非常喜欢,服务员的服务很周到,开销!"
snownlp_bus=SnowNLP(text)

#2 分词
words_list=[]
for sentence in snownlp_bus.sentences:
    words_list.append(SnowNLP(sentence).words)
print("2 分词:",words_list)

输出:
2 分词: [['今天', '买', '的', 'LV', '包', '非常', '喜欢'], ['服务员', '的', '服务', '很', '周到'], ['开销']]

词性标注

from snownlp import SnowNLP 
text="今天买的LV包非常喜欢,服务员的服务很周到,开销!"
snownlp_bus=SnowNLP(text)

#3 词性标注
tags_list=[]
for sentence in snownlp_bus.sentences:
    tags_list.append(list(SnowNLP(sentence).tags))
print("#3 词性标注结果:",tags_list)

输出:
#3 词性标注结果: [[('今天', 't'), ('买', 'v'), ('的', 'u'), ('LV', 'm'), ('包', 'q'), ('非常', 'd'), ('喜欢', 'v')], [('服务员', 'n'), ('的', 'u'), ('服务', 'vn'), ('很', 'd'), ('周到', 'a')], [('开销', 'n')]]

拼音转换

from snownlp import SnowNLP 
text="今天买的LV包非常喜欢,服务员的服务很周到,开销!"
snownlp_bus=SnowNLP(text)

#转换成拼音
print("4 拼音",snownlp_bus.pinyin)

输出:
4 拼音 ['jin', 'tian', 'mai', 'de', 'LV', 'bao', 'fei', 'chang', 'xi', 'huan', ',', 'fu', 'wu', 'yuan', 'de', 'fu', 'wu', 'hen', 'zhou', 'dao', ',', 'kai', 'xiao', '!']

繁体字转换

from snownlp import SnowNLP 
text="今天买的LV包非常喜欢,服务员的服务很周到,开销!"
snownlp_bus=SnowNLP(text)

text_fanti = "在臺灣亦很常見"
snownlp_fan=SnowNLP(text_fanti)
print("5 繁体字转换",snownlp_fan.han)

输出:
5 繁体字转换 在台湾亦很常见

关键词 摘要抽取

paragraphs="过去几十年里,国内外的互联网巨头基本都诞生于搜索、社交、电商、衣食住行等生活和消费领域,那时的互联网也被称作消费级互联网,即To C。"\

"但近年来,人口红利逐渐消失。据QuestMobile研究,2019年,移动互联网月活用户规模达到11.38亿,增长进一步放缓,月活用户的增速一直在下跌,2017年12月同比增长6.3%。"\

"而到2019年3月同比增速更是首次跌破了4%;在用户增长方面,2019年一季度用户人均单日使用时长增长仅为半个小时,时长增幅有收窄的趋势"

snownlp_pgh=SnowNLP(paragraphs)
print("6 关键词",snownlp_pgh.keywords())
print("7 摘要提取",snownlp_pgh.summary(1))

输出:

6 关键词 ['互联网', '诞生', '搜索', '商', '社交']
7 摘要提取 ['过去几十年里']

情感分析(积极消极)
情感分析主要适用于客户评价的预测,不适用于其他方面
[-1,1],越接近1代表好,积极,越接近-1表示糟糕,消极

from snownlp import SnowNLP 
text="今天买的LV包非常喜欢,服务员的服务很周到,开销!"
snownlp_bus=SnowNLP(text)
print("8 积极消极:",snownlp_bus.sentiments)

输出:
8 积极消极: 0.9469510568100439

文本相似度

#文本相似
s = SnowNLP([[u'这篇', u'文章'],
             [u'那篇', u'论文'],
             [u'这个']])

print("9 文本相似度:",s.sim([u'这个']))

输出:
9 文本相似度: [0, 0, 0.6229580777634033]
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值