【导读】自然语言处理(NLP)是当今非常火的方向,特别是深度学习技术的进驻,让 NLP更加引人注目, 有 NLP是人工智能的明珠一说。简单来说,NLP是一个人工智能领域,旨在理解和提取文本中的重要信息,并基于文本数据进行进一步分析。主要任务包括语音识别与生成、文本分析、情感分析、机器翻译等。目前为止,已经有许多工具和库用于解决和辅助解决NLP问题。这里,我们横向对比四大 NLP Python 包, 排名依据它们在 Github 的 Start。
口号: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里的模型,跟随学术界的最新进展进行更新的。
口号: 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)实现,是最好的。此外,它是健壮的、高效的、可伸缩的。
口号: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的主要缺点之一:它有一个陡峭的学习曲线,而且它速度慢,不能用户生产环境。
口号: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, 或扫描上面二维码联系!
请关注专知公众号,获取人工智能的专业知识!
点击“阅读原文”,使用专知