python⾃然语⾔处理库_8个出⾊的Python库⽤于⾃然语⾔处理python⾃然语⾔处理库
(简称 )最好描述为 语⾳命令,语⾳和⽂本翻译,情感分析,⽂本摘要以及许多其他语⾔应⽤程序和分析背后的魔⼒,通过极⼤地改善了⾃然语⾔处理。
Python语⾔为包括NLP在内的各种提供了便捷的前端。 实际上,在Python⽣态系统中有很多NLP财富可供选择。 在本⽂中,我们将探讨可⽤于Python的每个NLP库-它们的⽤例,优缺点,以及普遍的流⾏程度。
[ ]
请注意,这些库中的某些库提供了其他库所公开的相同功能的更⾼版本,从⽽使该功能更易于使⽤,但会牺牲⼀些精度或性能。 您将要选择⼀个既适合您的专业⽔平⼜适合项⽬性质的库。
核⼼⾃然语⾔处理
斯坦福⼤学的产品被构建为可⽤于⽣产的⾃然语⾔处理解决⽅案,能够⼤规模提供NLP预测和分析。 CoreNLP⽤Java编写,但是可以使⽤多个Python软件包和API,包括⼀个称为的本地Python NLP库。
CoreNLP包括语法标记,命名实体识别,解析,情感分析等。 它被设计为与⼈类语⾔⽆关,⽬前除英语
外还⽀持阿拉伯语,中⽂,法语,德语和西班⽛语( 俄语,瑞典语和丹麦语的⽀持)。 CoreNLP还包括⼀个 ,这是⼀种⽆需太多额外⼯作即可提供预测的便捷⽅法。
从开始的最简单的地⽅是CoreNLP的Python包装器,这是Stanford NLP Group创建的参考实现。 除了有据可查之外,StanfordNLP还定期维护; 许多在⼀段时间内未更新。
python官方文档中文版CoreNLP还⽀持NLTK的使⽤,NLTK是下⾯讨论的主要Python NLP库。 从3.2.3版开始,NLTK在其解析器中包含与CoreNLP的接⼝。只要确保 。
CoreNLP的明显缺点是您需要熟悉Java才能启动并运⾏它,但是仔细阅读⽂档并不能做到。 另⼀个障碍可能是CoreNLP的许可。 整个⼯具包均根据GPLv3进⾏了许可,这意味着您在分发给他⼈的专有软件中使⽤任何软件都需要 。
Gensim
仅做两件事,但是做得⾮常好。 它的重点是统计语义-分析⽂档的结构,然后根据相似性对其他⽂档评分。
Gensim可以通过将⽂档流式传输到其分析引擎并逐步对其进⾏来处理⾮常⼤的⽂本。 它可以创建多种类型的模型,每种模型都适合不同的场景:Word2Vec,Doc2Vec,FastText和Latent Dirichlet分配。
Gensim的详细⽂档包括教程和操作指南,它们解释了关键概念并通过动⼿⽰例进⾏了说明。 通⽤⾷谱也可以在 。
[ ]
NLTK
(简称是Python⾃然语⾔处理库中最著名,功能最强⼤的⼯具。 开箱即⽤,可以使⽤ ,因此您可以⽴即开始尝试NLTK。
如⽂档所述,NLTK提供了多种⽤于处理⽂本的⼯具:“分类,标记化,词⼲,标记,解析和语义推理。” 它还可以与⼀起以增强其功能。
请记住,NLTK是由学术研究受众创建的并且是为学术研究受众创建的。 它不是设计⽤于在⽣产环境中服务于NLP模型的。 ⽂档也很少。甚⾄操作也很薄。 另外,没有64位⼆进制⽂件。 您需要安装32位版本的Python才能使⽤它。 最后,NLTK也不是最快的库,但是可以通过来加快速度。
如果您决定利⽤NLTK的内在特性,则可以改⽤TextBlob(如下所述)开始。
模式
如果您需要做的就是刮⼀个受欢迎的⽹站并分析发现的内容,请访问 。 这个⾃然语⾔处理库⽐这⾥介绍的其他库⼩得多,⽽且狭窄,但这也意味着它专注于真正做好⼀项常见的⼯作。
Pattern带有内置的内置功能,可⽤于抓取许多流⾏的Web服务和来源(Google,Wikipedia,Twitter,Facebook,通⽤RSS等),所有这些都可以作为Python模块使⽤(例如, from pattern.web import Twitter )。 。 您⽆需重新设计从这些站点获取数据的⽅式,⽽⽆需担⼼它们的所有怪异之处。 然后,您可以对数据执⾏各种常见的NLP操作,例如情感分析。
Pattern公开了它的⼀些底层功能,允许您根据需要直接使⽤NLP函数,n-gram搜索,向量和图形。 它还具有⼀个内置的帮助程序库,可⽤于处理常见的数据库(将来将使⽤MySQL,SQLite和MongoDB),从⽽使处理以前会话中存储的或从第三⽅获得的表格数据变得更加容易。
[ ]
多种语⾔
顾名思义, 使⾃然语⾔处理应⽤程序能够⼀次处理多种语⾔。
Polyglot中的NLP功能呼应了其他NLP库中的功能:标记化,命名实体识别,词性标记,情感分析,单词嵌⼊等。对于这些操作,Polyglot 提供了可与所需语⾔⼀起使⽤的模型。
请注意,Polyglot的语⾔⽀持因功能⽽异。 例如,令牌化系统⽀持近200种语⾔(主要是因为它使⽤Unicode⽂本分段算法),情感分析⽀持136种语⾔,但是词性标记仅⽀持16种语⾔。
NL
(发⾳为“菠萝”)仅具有⾃然语⾔处理功能的基本花名册,但它具有针对NLP数据格式的某些真正有⽤的数据转换和数据处理功能。
PyNLPI中的⼤多数NLP函数⽤于基本任务,例如令牌化或n-gram提取,以及⼀些在NLP中有⽤的统计函数,例如字符串之间的Levenshtein距离或Markov链。 为了⽅便起见,这些功能都是在纯Python中实现的,因此它们不太可能具有⽣产级的性能。
但是PyNLPI很适合处理NLP领域中涌现的⼀些更奇特的数据类型和格式。 PyNLPI可以读取和处理GIZA,Moses
++,SoNaR,Taggerdata和TiMBL数据格式,并致⼒于将整个模块与配合使⽤, 是XML⽂档格式,⽤于注释诸如语料库(⽤于翻译或其他分析的⽂本体)之类的语⾔资源。 。
每当您处理这些数据类型时,您都希望获得PyNLPI。
[ ]
空间
利⽤Python的便利性和的速度,被称为“⼯业强度的⾃然语⾔处理”。 它的创造者它在速度,模型尺⼨和准确性⽅⾯都⽐
NLTK,CoreNLP和其他竞争对⼿好。 SpaCy的主要缺点是它相对较新,因此仅涵盖英语和其他⼏种(主要是欧洲)语⾔。 也就是说,在撰写本⽂时,SpaCy已达到2.2版。
SpaCy包括在那些竞争性框架中发现的⼏乎所有功能:语⾳标记,依赖项解析,命名实体识别,标记化,句⼦分割,基于规则的匹配操作,单词向量等等。 SpaCy还包括针对GPU操作的优化-既⽤于加速计算,⼜⽤于在GPU上存储数据以避免复制。
Spacy的⽂档⾮常出⾊。 安装向导会为Windows,Linux和macOS以及不同的Python环境(pip,conda等)⽣成命令⾏安装操作。 语⾔模型作为Python软件包安装,因此可以作为应⽤程序依赖项列表的⼀部分进⾏跟踪。
TextBlob
是Pattern和NLTK库的友好前端,将这两个库都包装在易于使⽤的⾼级界⾯中。 使⽤TextBlob,您可以减少花在复杂的Pattern和NLTK上的时间,⽽将更多的时间⽤于获得结果。
TextBlob通过利⽤本机Python对象和语法来简化⽅法。 显⽰了如何将要处理的⽂本简单地视为字符串,⽽常见的NLP⽅法(如词性标记)可⽤作这些字符串对象上的⽅法。
[ ]
TextBlob的另⼀个优点是,您可以“放开引擎盖”,并随着⾃⼰变得越来越⾃信⽽改变其功能。 可以根据需要许多默认组件,例如情感分析系统或令牌⽣成器。 您还可以创建将对象(情绪分析器,分类器等)组合在⼀起的⾼级对象,并以最⼩的努⼒重复使⽤它们。 这样,您可以使⽤TextBlob快速创建原型,然后稍后对其进⾏优化。
python⾃然语⾔处理库

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。