python⾃然语⾔处理库_Python⾃然语⾔处理⼯具库(含中⽂
处理)
⾃然语⾔处理(Natural Language Processing,简称 NLP),是研究计算机处理⼈类语⾔的⼀门技术。随着深度学习在图像识别、语⾳识别领域的⼤放异彩,⼈们对深度学习在 NLP 的价值也寄予厚望。再加上 AlphaGo 的成功,⼈⼯智能的研究和应⽤变得炙⼿可热。⾃然语⾔处理作为⼈⼯智能领域的认知智能,成为⽬前⼤家关注的焦点。NLP 研究领域包括:
python货币转换句法语义分析:对于给定的句⼦,进⾏分词、词性标记、命名实体识别和链接、句法分析、语义⾓⾊识别和多义词消歧。
信息抽取:从给定⽂本中抽取重要的信息,⽐如,时间、地点、⼈物、事件、原因、结果、数字、⽇期、货币、专有名词等等。通俗说来,就是要了解谁在什么时候、什么原因、对谁、做了什么事、有什么结果。涉及到实体识别、时间抽取、因果关系抽取等关键技术。
⽂本挖掘(或者⽂本数据挖掘):包括⽂本聚类、分类、信息抽取、摘要、情感分析以及对挖掘的信息和知识的可视化、交互式的表达界⾯。⽬前主流的技术都是基于统计机器学习的。
机器翻译:把输⼊的源语⾔⽂本通过⾃动翻译获得另外⼀种语⾔的⽂本。根据输⼊媒介不同,可以细分
为⽂本翻译、语⾳翻译、⼿语翻译、图形翻译等。机器翻译从最早的基于规则的⽅法到⼆⼗年前的基于统计的⽅法,再到今天的基于神经⽹络(编码-解码)的⽅法,逐渐形成了⼀套⽐较严谨的⽅法体系。
信息检索:对⼤规模的⽂档进⾏索引。可简单对⽂档中的词汇,赋之以不同的权重来建⽴索引,也可利⽤ 1,2,3 的技术来建⽴更加深层的索引。在查询的时候,对输⼊的查询表达式⽐如⼀个检索词或者⼀个句⼦进⾏分析,然后在索引⾥⾯查匹配的候选⽂档,再根据⼀个排序机制把候选⽂档排序,最后输出排序得分最⾼的⽂档。
问答系统: 对⼀个⾃然语⾔表达的问题,由问答系统给出⼀个精准的答案。需要对⾃然语⾔查询语句进⾏某种程度的语义分析,包括实体链接、关系识别,形成逻辑表达式,然后到知识库中查可能的候选答案并通过⼀个排序机制出最佳的答案。
对话系统:系统通过⼀系列的对话,跟⽤户进⾏聊天、回答、完成某⼀项任务。涉及到⽤户意图理解、通⽤聊天引擎、问答引擎、对话管理等技术。此外,为了体现上下⽂相关,要具备多轮对话能⼒。同时,为了体现个性化,要开发⽤户画像以及基于⽤户画像的个性化回复。
以上引⽤微软亚洲研究院⾸席研究员周明博⼠在知乎的回答。
当前,⽤于⾃然语⾔处理(NLP)的 Python⼯具包括:
1.NLTK
NLTK 在使⽤ Python 处理⾃然语⾔的⼯具中处于领先的地位。它提供了超过50 个包括如: WordNet 这种⽅便处理词汇资源的数据接⼝。同时,还有⼀套⽤于分类、标记化、词⼲标记、解析和语义推理的⽂本处理库,以及⼯业级 NLP 库的封装器和⼀个活跃的讨论论坛。
统计语⾔学话题⽅⾯的⼿动编程指南加上全⾯的 API ⽂档,使得 NLTK ⾮常适⽤于语⾔学家、⼯程师、学⽣、教育家、研究⼈员以及⾏业⽤户等⼈。NLTK 可以在 Windows、Mac OS X 以及 Linux 系统上使⽤。最好的⼀点是,NLTK 是⼀个免费、开源的社区驱动的项⽬。
因此,NLTK 被称为⼀个:
使⽤ Python 开发的⽤于统计语⾔学的教学和研究的有利⼯具,和⼀个⾃然语⾔处理的⾼效库。
2.Pattern
Pattern 拥有⼀系列的⾃然语⾔处理⼯具,⽐如说词性标注⼯具(Part-Of-Speech Tagger),N元搜索(n-gram search),情感分析(sentiment analysis),WordNet。它也⽀持机器学习的向量空间模型,聚类,向量机。
3.TextBlob
TextBlob 是⼀个处理⽂本数据的 Python 库。它提供了⼀个简单的 api 来解决⼀些常见的⾃然语⾔处理任务,例如词性标注、名词短语抽取、情感分析、分类、翻译等等。
4.Gensim
Gensim 是⼀个 Python 库,⽤于对⼤型语料库进⾏主题建模、⽂件索引、相似度检索等。它可以处理⼤于内存的输⼊数据。作者说它是:
纯⽂本上⽆监督的语义建模最健壮、⾼效、易⽤的软件。
5.PyNLPI
PyNLPI 全称是:Python ⾃然语⾔处理库(Python Natural Language Processing Library,⾳发作: pineapple) 是⼀个⽤于⾃然语⾔处理任务库。它集合了各种独⽴或松散互相关的,那些常见的、不常见的、对 NLP 任务有⽤的模块。PyNLPI 可以⽤来处理 N 元搜索,计算频率表和分布,建⽴语⾔模型。它还可以处理向优先队列这种更加复杂的数据结构,或者像 Beam 搜索这种更加复杂的算法。同时,该处理库还提供了完善的⽂档库。
6.spaCy
spaCy 是⼀个商业的开源软件。结合了 Python 和 Cython 优异的 NLP ⼯具。是快速的,最先进的⾃然语⾔处理⼯具。
7.Polyglot
Polyglot ⽀持⼤规模多语⾔应⽤程序的处理。它⽀持165 种语⾔的分词,196 中语⾔的辨识,40 种语⾔的专有名词识别,16 种语⾔的词性标注,136 种语⾔的情感分析,137 种语⾔的嵌⼊,135 种语⾔的形态分析,以及69 种语⾔的翻译。
8.MontyLingua
MontyLingua 是⼀个免费的、功能强⼤的、端到端的英⽂处理⼯具。在 MontyLingua 输⼊原始英⽂⽂本 ,输出就会得到这段⽂本的语义解释。它适⽤于信息检索和提取,请求处理,问答系统。从英⽂⽂本中,它能提取出主动宾元组,形容词、名词和动词短语,⼈名、地名、事件,⽇期和时间等语义信息。
9.BLLIP Parser
BLLIP Parser(也叫做 Charniak-Johnson parser)是⼀个集成了⽣成成分分析器和最⼤熵排序的统计⾃然语⾔分析器。它包括命令⾏和Python 接⼝。
10.Quepy
Quepy 是⼀个 Python 框架,提供了将⾃然语⾔问题转换成为数据库查询语⾔中的查询。它可以⽅便地⾃定义⾃然语⾔中不同类型的问题和数据库查询。所以,通过 Quepy,仅仅修改⼏⾏代码,就可以构建你⾃⼰的⾃然语⾔查询数据库系统。
另外,上述⼯具⼤部分在处理英⽂⾃然语⾔上展⽰了良好的效果。同时,对于国内科研⼈员⽽⾔,⾃然语⾔处理往往需要考虑在中⽂应⽤中的差异处理。本⽂最后附上:复旦⼤学邱锡鹏教授整理并发布的中⽂⾃然语⾔处理⼯具列表,以供参考 ——
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论