横向对比4大 NLP Python 工具包,总有一款适合你!

【导读】自然语言处理(NLP)是当今非常火的方向,特别是深度学习技术的进驻,让 NLP更加引人注目, 有 NLP是人工智能的明珠一说。简单来说,NLP是一个人工智能领域,旨在理解和提取文本中的重要信息,并基于文本数据进行进一步分析。主要任务包括语音识别与生成、文本分析、情感分析、机器翻译等。目前为止,已经有许多工具和库用于解决和辅助解决NLP问题。这里,我们横向对比四大 NLP Python 包, 排名依据它们在 Github 的 Start。

SpaCy    Star 10181

口号:Industrial-strength Natural Language Processing (具有工业级强度的自然语言处理工具)

发布时间:2015年

开源地址:https://github.com/explosion/spaCy

网站:https://spacy.io/

特点:它内部的算法,都是基于当下的研究进度,快速跟进的。

Features    - 快, 非常快,官方宣称:Fastest syntactic parser in the world (世界上最快的语法分析器)    - 非破坏性 Tokenization    - 多种 Pre-train model    - 支持20+语言    - 支持可视化    - 无缝对接 Numpy,    - 轻松嵌入其他 Python 代码和模型    - 模型更新快

学习资料:    - Intro to NLP with SpaCy       https://nicschrading.com/project/Intro-to-NLP-with-spaCy

SpaCy是最新的 NLP python 工具包,曾引起了不小的轰动,因为它号称是“工业强度”Python NLP库。

SpaCy是最小的和最精准的,它的哲学是为每个目的提供一个算法(最好的)。你不必做出选择,你可以专注于提高效率。因为它建在Cython上,所以它的速度也非常快。SpaCy里的模型,跟随学术界的最新进展进行更新的。

Gensim  Star 7483

口号: Topic modelling for humans  (Topic model 是2009年非常火的 NLP 方向, Gensim 开发的初衷,就是为人民提供更好用的 Topic model 开发工具)

发布时间:2009年

开源地址:https://github.com/RaRe-Technologies/gensim

网站地址:https://radimrehurek.com/gensim/

特点:使用数据流和高效的增量算法,区别于大多数只针对批处理和在内存中处理的软件包

Features    - 为海量大数据专门设计,能够 hold 住超大数据和数据流        - 接口直观, 不过度设计    - 统计学派,LSA/LSI/SVD, LDA, RP, HDP....    - 分布式计算

学习资料    - gensim Documentation       https://radimrehurek.com/gensim/

Gensim并不适合所有的自然语言处理任务,但它能把自己的事情做到最好。Gensim是一个用于主题建模和文档相似度分析的优化库。本文列出的Python NLP库中,它是最专门化的。

即便如此,它仍然是一个有价值的工具,可以添加到您的技能库中。它的主题建模算法,比如它潜在的Dirichlet分配(LDA)实现,是最好的。此外,它是健壮的、高效的、可伸缩的。

NLTK Star 6686

口号:Natural Language Toolkit (自然语言工具包)

发布时间:2001年

开源地址:https://github.com/nltk/nltk

网站:http://www.nltk.org/

特点:历史悠久,涵盖了常见自然语言处理任务, 语料多,模型多。

Features    - 闻名世界    - 大量第三方插件    - 涵盖几乎所有自然语言处理任务

学习资源    - NLTK Book     http://www.nltk.org/book/
在Python中谈论NLP时,不能不提到NLTK。它是最著名的Python NLP库,并在该领域带来了令人难以置信的突破。NLTK负责克服许多文本分析问题。NLTK在教育和研究方面也很受欢迎。NLTK有超过50个语料库和词汇,9个stemmers,还有几十种算法可供选择。然而,这也是NLTK的主要缺点之一:它有一个陡峭的学习曲线,而且它速度慢,不能用户生产环境。

TextBlob    Star 5339


口号:Simplified Text Processing (简单的文本处理)

发布时间: 2013年

开源地址:https://github.com/sloria/TextBlob

网站:https://textblob.readthedocs.io/en/dev/

特点: API 简单,基于 NLTK和 Pattern开发的。

Features    - 简单    - 涵盖几乎所有的自然语言处理任务    - 兼容 NLTK

学习资料    - Natural Language Processing Basics with TextBlob        http://rwet.decontextualize.com/book/textblob

TextBlob站在了NLTK和另一个名为Pattern的包的肩膀上。TextBlob通过为NLTK提供直观的接口使文本处理变得简单。因为它有一个温和的学习曲线,同时拥有惊人的功能, 如下是一个情感分析的代码:


-END-

专 · 知


人工智能领域主题知识资料查看与加入专知人工智能服务群

专知AI知识技术服务会员群加入与人工智能领域26个主题知识资料全集获取欢迎微信扫一扫加入专知人工智能知识星球群,获取专业知识教程视频资料和与专家交流咨询


请PC登录www.zhuanzhi.ai或者点击阅读原文,注册登录专知,获取更多AI知识资料

请加专知小助手微信(扫一扫如下二维码添加),加入专知主题群(请备注主题类型:AI、NLP、CV、 KG等)交流~

 AI 项目技术 & 商务合作:bd@zhuanzhi.ai, 或扫描上面二维码联系!


关注专知公众号,获取人工智能的专业知识!

点击“阅读原文”,使用专知

展开全文
Top
微信扫码咨询专知VIP会员