自然语言处理库―Snownlp

上次在跟大家分享用Python在本地进行文本情感分析的时候,给大家介。

上次在跟大家分享用Python在本地进行文本情感分析的时候,给大家介绍了一个Snownlp库,当时只跟大家介绍了一下它的情感分析功能,这次来跟大家详细的介绍一下它其它的强大的功能。

01定义和安装

我们先来看看官方对它的介绍:

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

它的安装命令如下:

pipinstallsnownlp 02功能介绍

它主要有九个功能,我们分别来给大家介绍一下这九个功能都是干什么的。

01分词功能

SnowNLP的分词功能,可以将文本内容对照着字典划分一个个词语字符串,如果不是词语的就单独成为一个字符串。代码如下:

a=SnowNLP(\’我非常的热爱学习!\’)print(a.words)

02词性标注

SnowNLP的词性标注功能,可以对各个词语进行标注,让我们能够知道这个词语属于名词还是动词,或者其它词性。代码如下:

a=SnowNLP(\’我非常的热爱学习!\’)foriina.tags:print(i)

03情感分析

在之前的文章我们已经详细的介绍过了SnowNLP的情感分析功能,这里就不在过多介绍,用兴趣的小伙伴,可以看看这篇文章两种文本情感分析方式,你更pick哪一种?。

04拼音标注

SnowNLP的拼音标准功能,可以给文本中所有文字进行拼音标注,这样以后再也不担心遇到生僻字不会读啦~~ 代码如下:

a=SnowNLP(\’我非常的热爱学习!\’)print(a.pinyin)

05提取关键字和摘要

SnowNLP可以将文本中出现的关键字和文本摘要给提取出来,从而让我们可以更快速的了解文本讲述的内容。代码如下:

text=\’\’\’计算机网络系统就是利用通信设备和线路将地理位置不同、功能独立的多个计算机系统互联起来,以功能完善的网络软件实现网络中资源共享和信息传递的系统。通过计算机的互联,实现计算机之间的通信,从而实现计算机系统之间的信息、软件和设备资源的共享以及协同工作等功能,其本质特征在于提供计算机之间的各类资源的高度共享,实现便捷地交流信息和交换思想。\’\’\’b=SnowNLP(text)key_word=b.keywords(5)#()中的数字,代表提取关键字数量abs_word=b.summary(1)#()中的数字,代表提取摘要数量print(key_word)print(abs_word)

06计算词频和逆文档频率

关键字的先后顺序是由TF-IDF值的大小来决定的,其中TF就是词频、IDF就是逆文档频率、词频很好理解就是一个词在文本中出现的频率,逆文档频率是在词频的基础上,给每个词分配一个“重要性”的权重,越常见的词分配的权重越低,越稀少的词,权重越高,这个权重就成为逆文档频率,它的大小和词语的常见性成反比。代码如下:

c=SnowNLP([[\’计算机\’],[\’资源\’],[\’ϵͳ\’],[\’信息\’],[\’功能\’]])print(c.tf)print(c.idf)

07繁体转简体

个人感觉这个技能较为冷门,现在基本上都是简体字了。(仅为个人意见,不喜勿喷。)代码如下:

d=SnowNLP()print(d.han)

08断句功能

SnowNLP可以按照\”,\”和“。”对文本进行断句处理。代码如下:

b=SnowNLP(text)print(b.sentences)

09文本相似度

e=SnowNLP([[\’计算机\’,\’资源\’],[\’ϵͳ\’],[\’信息\’,\’功能\’]])print(e.sim([\’ϵͳ\’]))print(e.sim([\’计算机\’]))print(e.sim([\’功能\’]))

为TA充电
共{{data.count}}人
人已赞赏
云计算

谷歌自动驾驶汽车业务管理层再动荡:CFO和汽车合作企业发展主管离职

2021-5-13 16:49:45

云计算

被控在卢森堡非法避税 亚马逊赢得欧盟3亿美元税款上诉案

2021-5-13 16:49:47

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索