Python NLP库top6的介绍和比较
文章来源:ActiveWizards
https://medium.com/activewizards-machine-learning-company/comparison-of-top-6-python-nlp-libraries-c4ce160237eb
译者 | Revolver
编辑 | 磐石
出品 | 磐创AI技术团队
自然语言处理(NLP)在今天已经变得越来越流行,尤其是在深度学习迅猛发展的大背景下变得更加引人注目。NLP属于人工智能的一个领域,旨在理解文本和从中提取重要信息,并在文本数据上做进一步的训练。NLP的主要任务包括了语音识别和生成,文本分析,情感分析,机器翻译等。
现下已经有许多工具库被设计来解决NLP问题。今天,我们根据我们的经验列举概述了六个最实用最受欢迎的自然语言处理库,并对它们进行比较。不过我们列举的这几个库在功能上,在解决的任务目标上,只有部分的重叠,所以有时很难对它们进行直接比较。我们将围绕一些每个NLP库共有的特性来进行比较。
一、综述
NLTK (Natural Language Toolkit) 用于执行诸如分词,词形还原,词干提取,解析,词性标注等任务。该库包含的工具可用于几乎所有NLP任务。
Spacy NLTK的主要竞争对手。这两个库可用于相同的任务。
Scikit-learn 为机器学习提供了一个包罗万象的工具库,这其中就包含了用于文本预处理的工具。
Gensim 一个被用于主题和向量空间建模,计算文档相似性的工具包。
Pattern 主要作为Web挖掘模块被使用。因此,它仅被用来执行NLP的辅助类任务。
Polyglot NLP的另一个python包。它不是很受欢迎,但也可以用于各种NLP任务。
为了使比较更加清晰具体,我们制作了一张表格来展示每个库的优缺点。
二、结论
在本文中,我们比较了六个十分流行的自然语言处理库的部分功能。虽然它们大多数提供了解决相同任务的工具,但有些也使用独特的方法来解决特定问题。当然,今天NLP最受欢迎的软件包依然是NLTK和Spacy。他们彼此也是NLP领域的主要竞争对手。在我们看来,它们之间的区别主要在于解决问题的方法论不一样。
NLTK更具学术性。您可以使用它来尝试不同的方法和算法,或将它们组合起来等等。相反,Spacy为每个问题提供了一个开箱即用的解决方案。你不必考虑哪种方法更好:Spacy的作者已经给你想好了。此外,Spacy非常快(比NLTK快几倍)。一个缺点是Spacy支持的语言数量有限,但是支持的语言数量一直在增加。所以,我们认为Spacy在大多数情况下都是最佳选择,但如果你想尝试一些特别的东西,你可以使用NLTK。
尽管这两个库很受欢迎,但你依然还有许多其他不同的选择,如何选择NLP包取决于您希望解决的具体问题是什么。所以,如果你碰巧知道其他有用的NLP库,也可以在评论区告诉我们的读者。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
LCS 算法:Javascript 最长公共子序列
最长公共子序列(Longest Common Subsequence LCS)是从给定的两个序列X和Y中取出尽可能多的一部分字符,按照它们在原序列排列的先后次序排列得到。LCS问题的算法用途广泛,如在软件不同版本的管理中,用LCS算法找到新旧版本的异同处;在软件测试中,用LCS算法对录制和回放的序列进行比较,在基因工程领域,用LCS算法检查患者DNA连与键康DNA链的异同;在防抄袭系统中,用LCS算法检查论文的抄袭率。LCS算法也可以用于程序代码相似度度量,人体运行的序列检索,视频段匹配等方面,所以对LCS算法进行研究具有很高的应用价值。 基本概念 1、子序列(subsequence): 一个特定序列的子序列就是将给定序列中零个或多个元素去掉后得到的结果(不改变元素间相对次序)。例如序列的子序列有:、、等。 2、公共子序列(common subsequence): 给定序列X和Y,序列Z是X的子序列,也是Y的子序列,则Z是X和Y的公共子序列。例如X=[A,B,C,B,D,A,B],Y=[B,D,C,A,B,A[,那么序列Z=[B,C,A]为X和Y的公共子序列,其长度为3。但Z不是X和Y...
- 下一篇
打造炫酷的通知插件EasyToaster
引用 <link rel="stylesheet" type="text/css" href="./index.css"> <div id="slider"></div> <script type="text/javascript" src="./index.js"></script> <script type="text/javascript"> var toaster = new Toaster() toaster.info({ text: 'default config' }) </script> 例子 toaster.error({ text: 'There\'s something wrong', textAlign: 'left', withIcon: true, closable: true, animation: true, duration: 2500, onClick: function () { // do sth }, onAppear: function () { // do ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音