大数据分析是商业智能的重要工具,而自然语言处理(NLP)工具可帮助处理来自不同来源的非结构化数据流。
由于Python编程语言是最适合大数据处理的事实之一,因此许多工具和库都是为它而生。像Jupyter和其他大数据可视化工具的解决方案就是用Python编写的,许多其他软件工具通过API或各种包装提供本地Python功能支持。这就是为什么有很多NLP库的原因,还有更多的是定期的服务。
由于这个原因,“Python NLP库选择”的问题可能会频繁出现。因此,本文选择了5个NLP工具以免去众多的选择纠结:
1.来自斯坦福大学的CoreNLP
2.NLTK,在Python的NLP库中被最广泛提到的
3.TextBlob,一个用户友好且直观的NLTK界面
4.Gensim,一个文件相似性分析的库
5.SpaCy,为性能而建的一个工业强度的NLP库
当然,这不代表这5个Python NLP库就可以完全代表了所有可用的工具。但是,我们认为它们是NLP领域的中坚力量,掌握了这5个工具之后,你将会了解NLP处理的所有基础知识(以及一些高级技巧),并能够根据你的项目需求,选择最合适的自然语言处理工具,并迅速掌握它。
CoreNLP,以其速度而闻名的Java库
CoreNLP是斯坦福大学建立和维护的生产解决方案。该库针对速度进行了优化,并具有词性标注(PoS)标签、模式学习解析、标题实体识别等功能。由于它最初是用Java编写的,因其高速度而受到高度评价,并且由于使用了专门的包装器而可以支持多种语言(包括Python)。 CoreNLP现在在生产环境中被广泛使用,因为它被抛光,并提供了精确的结果。
NLTK是提到的最广泛的NLP库
NLTK代表自然语言工具包(Natural Language ToolKit),它是学习NLP域的诀窍的最佳解决方案。它的模块化结构有助于理解组件之间的依赖关系,并获得第一手的体验,为解决某些任务创建合适的模型。 NLTK自发布以来,帮助解决了自然语言处理各个方面的多个问题。
有多个指南将帮助任何人都能掌握NLTK。说实话,如果不这样做是不明智的,因为这是一个相当复杂的解决方案。但是,一旦掌握,NLTK就可以成为文本分析研究者的优秀“操场”。
TextBlob,使用NLTK的最佳方式
TextBlob是NLTK的一个接口,可以将文本处理转换变2成一个简单且相当愉快的过程,因为它具有丰富的功能和平滑的学习曲线,这是由于它有详细和易于理解的文档。把 TextBlob放在巨人的肩膀上,可以简单地添加各种组件,如情感分析器和其他方便的工具。它可以用于各种NLP模型的快速原型设计,并且可以很容易地成长为全面的项目。
Gensim,一个文档采用相似性分析的库
虽然Gensim不像以前的组件那样无处不在、全能,但它确实有一个亮点。这个领域是主题建模和文档相似性比较,高度专业化的Gensim在那里没有任何等同。提供像LDA(或潜在Dirichlet分配)这样的工具,可扩展且强大,你可以信任NLP项目的几个关键组件工具,更不用说主题建模是现代NLP科学中最有吸引力和最有希望的领域之一。
SpaCy,一个拥有高性能的库
用Cython写的,SpaCy不能为任何任务提供50多种解决方案,就像NLTK一样。事实上,SpaCy只提供一个(坦率地说是最好的)解决方案,从而消除了自己选择最优路线的问题,保证了建立的模型精简、高效。此外,该工具的功能已经非常强大,并且会定期添加新功能。
由于这是该领域的最新的补充,SpaCy目前在被视为一个新的“孩子”。这个解决方案目前只能使用英文文本。然而,由于类似C的快速性能,SpaCy提供了一个引人注目的NLP方法,优于其他竞争对手。尝试一次,或许你就不会再去寻求另一种选择。
结论
当你紧紧抓住这5个自然语言处理的工具后,你将能够在很短的时间内学习任何其他的库。然而,我们确信,没有必要这样做,因为TextBlob,SpaCy,Gensim和CoreNLP的NLTK几乎可以涵盖任何NLP项目的所有需求。你有其他想法吗?可以在评论区与大家进行交流。
领取专属 10元无门槛券
私享最新 技术干货