自然语言处理库—Snownlp

作者: 志斌 2021-05-13 07:17:13

本文转载自微信公众号「志斌的python笔记」,作者志斌。转载本文请联系志斌的python笔记公众号。

大家好,我是志斌~

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

01定义和安装

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

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

它的安装命令如下:

  1. pip install snownlp 

02功能介绍

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

01分词功能

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

  1. a = SnowNLP('我非常的热爱学习!'
  2. print(a.words) 

02词性标注

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

  1. a = SnowNLP('我非常的热爱学习!'
  2. for i in a.tags: 
  3.    print(i) 

03情感分析

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

04拼音标注

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

  1. a = SnowNLP('我非常的热爱学习!'
  2. print(a.pinyin) 

05提取关键字和摘要

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

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

06计算词频和逆文档频率

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

  1. c = SnowNLP([['计算机'], ['资源'], ['系统'], ['信息'], ['功能']]) 
  2. print(c.tf) 
  3. print(c.idf) 

07繁体转简体

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

  1. d = SnowNLP('山不在高,有仙則靈.水不在深,有龍則靈'
  2. print(d.han) 

08断句功能

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

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

09文本相似度

  1. e = SnowNLP([['计算机','资源'], 
  2.             ['系统'], 
  3.             ['信息','功能'
  4.             ]) 
  5. print(e.sim(['系统'])) 
  6. print(e.sim(['计算机'])) 
  7. print(e.sim(['功能'])) 

Snownlp 自然语言 处理库
上一篇:护士减负+医院增效!医疗物流机器人成“新宠” 下一篇:第十二届交博会正式启动 百度智慧交管解决方案助城市开启智能交通新纪元
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

什么是自然语言处理(NLP)?

自然语言处理(NLP)是人工智能的一个分支,它使计算机能够像人类一样理解、处理和生成语言。搜索引擎、机器翻译以及语音助理均由该技术提供支持。

李睿 ·  2021-05-17 09:00:00
过半作者是华人!Google Research图像表征模型ALIGN霸榜ImageNet

NLP和CV怎么总能擦出火花?Google集结十位专家又霸榜ImageNet了,最后专家们还对AI的恐怖能力提出了一些社会学警告。

佚名 ·  2021-05-13 16:45:10
关于人工智能的四大误区

在人工智能的发展历史上,通常是最初充满乐观和希望,随后带来的是幻灭与失望,而这样的过程循环反复。当今的人工智能系统可以在广泛的领域中执行复杂的任务,例如数学、游戏以及逼真图像的生成。但是当接近人工智能的一些早期目标时(例如管家机器人和自动驾驶汽车),这些目标却逐渐迷失。

Ben Dickson ·  2021-05-11 11:26:18
2021年影响企业的自然语言处理趋势

如今自然语言技术越来越多地在企业中得到应用。很多公司推出了大量文本分析解决方案、语音识别系统、聊天机器人以及所有可以令人想象的语言处理用例。

李睿 ·  2021-03-03 09:00:00
什么是“自然语言处理”? 它到底在“处理”些什么?

“自然语言处理” (Natural Language Processing,简称NLP) 是近年来科技界最热门的词语之一,也是当下人工智能研究最热门的领域之一。

潘蓉 ·  2021-01-21 10:28:16
四两拨千斤,如何做到自然语言预训练加速十倍

随着自然语言处理中的预训练成为研究领域的热点,预训练的成本与计算代价也成为了大家在研究过程中必须考虑的现实问题。本文将会介绍多种在训练模型过程中提高效率,降低成本的方法,希望能对大家的研究有所帮助。

柯国霖 贺笛 ·  2021-01-20 15:41:05
如何让机器人更懂你?

自然语言处理技术是指将人类沟通时所用的语言信息,经过处理转化为机器语言的过程。其作为人工智能技术的重要分支,在信息处理和数据提取中占据着重要地位。 自然语言处理技术拥有众多细化技术分支,例如语音识别、语音合成、语义分析等。

联想之星 ·  2020-12-31 06:55:37
人工智能自然语言处理技术拉动产业升级引擎

近两年,人工智能自然语言处理已实现的应用包括机器翻译、信息检索、智能问答系统。作为未来科技发展的前沿领域,人工智能在技术应用方面有很多细分领域,比如深度学习、推荐引擎、计算机视觉、智能机器人、自然语言处理、实时语音翻译、视觉内容自动识别等。

今夕何夕 ·  2020-12-17 15:18:18
Copyright©2005-2021 51CTO.COM 版权所有 未经许可 请勿转载