当前位置: 首页 > 科技观察

自然语言处理库—Snowlp

时间:2023-03-18 13:41:59 科技观察

本文转载自微信公众号《智斌的python笔记》,作者智斌。转载本文请联系志斌python笔记公众号。大家好,我是志斌~上次给大家分享使用Python进行本地文本情感分析的时候,给大家介绍了一个Snownlp库。当时只向大家介绍了它的情感分析功能。这次小编就来跟大家详细介绍一下它的其他强大功能吧。01定义与安装先看看官方对它的介绍:SnowNLP是一个用python编写的类库,可以轻松处理中文文本内容。受到TextBlob的启发而写的,因为大部分自然语言处理库基本都是针对英文的,所以自己写了一个方便处理中文的类库,而且和TextBlob不同的是,这里没有使用NLTK,所有的算法都是由我自己,以及一些训练有素的词典。注意本程序处理的是unicode编码,使用时请自行解码成unicode。它的安装命令如下:pipinstallsnownlp02功能介绍主要有九个功能。下面给大家介绍一下这九个功能是干什么的。01分词功能SnowNLP的分词功能可以将文本内容按照词典划分成词串,如果不是词,则成为单独的字符串。代码如下:a=SnowNLP('Ilovelearningverymuch!')print(a.words)02词性标注SnowNLP的词性标注功能可以标注每一个词,这样我们可以知道这个词是属于名词还是动词,或者其他词性。代码如下:a=SnowNLP('我非常喜欢学习!')foriina.tags:print(i)03情感分析在上一篇文章中,我们已经详细介绍了SnowNLP的情感分析功能,所以我赢了这里介绍的太多了,有兴趣的可以看看这篇关于两种文本情感分析方法的文章,你更喜欢哪一种。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计算词频和逆文档频率。逆向文档频率是根据词出现的频率,给每个词赋予一个“重要度”的权重,越常见的词赋予越低的权重,越稀有的词赋予越高的权重,这个权重被称为逆向文档频率,其大小与词的常用度成反比。代码如下:c=SnowNLP([['computer'],['resource'],['system'],['information'],['function']])print(c.tf)print(c.idf)07TraditionaltoSimplified我个人感觉这个技能比较冷门,现在基本都是简体了。(仅代表个人意见,不喜勿喷)代码如下:d=SnowNLP('山不高自有仙,水不深,会有龙。')print(d.han)08句函数SnowNLP可以跟在“,”和“.”之后。对文本进行分段。代码如下:b=SnowNLP(text)print(b.sentences)09文本相似度e=SnowNLP([['computer','resource'],['system'],['information','function']])print(e.sim(['system']))print(e.sim(['computer']))print(e.sim(['function']))