10个常用的NLP库

1.spaCy: 极其优化的NLP库,可与深度学习框架(如TensorFlow或PyTorch)一起运行。该库提供了大多数标准功能(标记化,PoS标记,解析,命名实体识别......),并且构建快速。spaCy也很好地与所有主要的深度学习框架接口,并预装了一些非常好的和有用的语言模型。下面所有的例子都是用Jupter运行过后的。

spaCy 例子

2.Gensim: 可扩展的统计语义,分析纯文本文档的语义结构,检索语义相似的文档。

Gensim Tutorials example

3.Pattern:Pattern是Python编程语言的Web挖掘模块。它具有数据挖掘工具(谷歌,Twitter和维基百科API,网络爬虫,HTML DOM解析器),自然语言处理(词性标注,n-gram搜索,情感分析,WordNet),机器学习(矢量)空间模型,聚类,SVM),网络分析和可视化等功能。由于安装问题,程序回头上传。Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/ws/d0q51dns2j581vjxlhzhf8xw0000gn/T/pip-install-h7aiwfy4/mysqlclient/

4. Natural Language Toolkit / NLTK

NLTK是构建Python程序以使用人类语言数据的领先平台。它为50多种语料库和词汇资源(如WordNet)提供了易于使用的界面,还提供了一套用于分类,标记化,词干化,标记,解析和语义推理的文本处理库,用于工业级NLP库的包装器,和积极的讨论论坛。由于实践指南介绍了编程基础知识以及计算语言学的主题,以及全面的API文档,NLTK适用于语言学家,工程师,学生,教育工作者,研究人员和行业用户等。 NLTK适用于Windows,Mac OS X和Linux。最重要的是,NLTK是一个免费的,开源的,社区驱动的项目。

5. TextBlob

TextBlob是一个用于处理文本数据的Python(2和3)库。它为常见的自然语言处理(NLP)任务提供了一致的API,例如词性标注,名词短语提取,分析等。

常见功能:

・Noun phrase extraction

・Part-of-speech tagging

・Sentiment analysis

・Classification (Naive Bayes, Decision Tree)

・Language translation and detection powered by Google Translate

・Tokenization (splitting text into words and sentences)

・Word and phrase frequencies

・Parsing

・n-grams

・Word inflection (pluralization and singularization) and lemmatization

・Spelling correction

・Add new models or languages through extensions

・WordNet integration

6. Polyglot

在某些方面与上面的的截然不同。虽然它具有类似的功能(标记化,PoS标记,字嵌入,命名性识别等),但Polyglot主要用于多语言应用程序。在同时处理各种语言的空间内,它提供了一些非常有趣的功能,例如语言检测和音译,这些功能在其他包中通常不那么明显。例如,如果我们想要找出给定文本的语言,我们可以在Polyglot中执行此操作:

7. Vocabulary

词汇表是另一个相当小的Python库,它提供了一些非常有趣和专业的功能。顾名思义,词汇表基本上是Python模块形式的字典。准确地说,词汇表将为您提供给定单词的含义,同义词,反义词,词性,翻译,示例,发音和连字符。

8. PyNLPl

PyNLPl,或简称为“菠萝”,是一种鲜为人知的NLP库,特别适用于读写NLP空间中常见(和不太常见)的文件格式。例如,如果您需要使用有时难以阅读和解析的FoLiA XML(Linguistic Annoation)或GIZA ++文件,PyNLPl可以派上用场。PyNLPl可以在一些相当具体的情况下为您节省大量时间。如果您发现自己处于需要使用FoLiA,GIZA,Moses,ARPA,Timble或CQL的情况下,请记住有一个友好的菠萝可以提供帮助。

9. Stanford CoreNLP Python

CoreNLP正在斯坦福大学的自然语言处理小组积极开发.该工具包提供了非常强大,准确和优化的技术,用于标记,解析和分析各种语言的文本。它还支持注释管道,并且易于扩展和访问。总的来说,CoreNLP是NLP工具包之一,已经并且肯定在生产中使用了很多。

10.MontyLingua

MontyLingua旨在让事情变得尽可能简单。您提供原始文本,您将收到对该文本的一些语义解释 - 开箱即用。它不是依赖复杂的机器学习技术,而是配备了所谓的“常识知识”,即关于日常情境的规则和知识,丰富了系统的解释。嗯,公平地说,这些规则是基于“开放思维常识”项目,该项目依赖于AI。

这些工具用Python编写,也可用Java编写,由六个模块组成,这些模块提供标记化,标记,分块,短语提取,词典化和语言生成功能。

此外,https://pypi.org/search/?q=nlp 提供了大概500 个左右的NLP

一个新兴的NLP库类别涉及为各种深度学习框架提供更高级别的接口。例如,finch,提供TensorFlow的访问和模型的库。

其次,有各种非常有趣的库是超级专业的。举几个例子:CLTK是希腊语和拉丁语等经典语言的首选库。 PyTextRank是Mihalcea(2004)和其他人提出的TextRank算法/方法的直接实现。报纸可以帮助您从网络上构建和分析报纸语料库。这种(高度)专业化的库(或现有库的附加组件,如textblob-de)在使用较少的“已知”(阅读:资金较少)语言时也是不可或缺的。

第三,(标准)'数据科学'NLP能力库。例如,scikit-learn不仅提供了一些示例数据,还提供了一些非常有用的自然语言处理模型和算法。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190519A0FCV000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券