首页 > 应用开发 > > 数据科学家最喜欢的5个自然语言处理Python库
开源最前线(ID:OpenSourceTop)猿妹编译
链接:https://www.oschina.net/news/109235/twitter-opensources-rezolus
互联网上大约有70%以上的数据不是结构化格式的。非结构化数据包括传感器数据、图像、视频文件、音频文件、网站和API的数据、社交媒体数据、电子邮件以及更多与文本相关的信息。
由于其特殊的特性,我们无法以一种简单的方式处理数据,为了解决这一问题,在大数据和数据科学环境下,出现了许多技术和工具来解决这一问题。
自然语言处理是人工智能领域的前沿技术之一。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。NLP的最终目标是以一种有价值的方式阅读、破译、理解和理解人类语言。大多数NLP技术依靠机器学习从人类语言中获得意义。
基于NLP最著名的应用是:
Google Speech Recognition.
Apple’s Siri.
Microsoft’s Cortona.
Amazon’s Alexa.
Ok Google in Android Mobiles.
Interactive voice responses used in call centers.
Grammarly
让我们看看python中有哪些库是最常用的,可用来构建NLP模型:
1、spaCy
非常优化的NLP库,可以与TensorFlow或PyTorch等深度学习框架一起使用。
它是一个高级的NLP库,可在Python和Cython中的使用,它帮助我们可以进行快速的开发,spaCy提供了预先训练的统计模型和单词向量,目前支持50多种语言的标记化。它具有最先进的速度,卷积神经网络模型的标签,解析和命名实体识别和易于深入学习集成。
实现示例
在上面的例子中,我们实现了一个简单的NLP例子,他将输出文本,并加上每个单词的词性:
> > >地球名词
> > >是动词
这样的例子不胜枚举。它将生成给定文本中每个单词的词性。
2、Gensim
Gensim是一个用于从文档中自动提取语义主题的Python库,目标受众是自然语言处理(NLP)和信息检索(IR)社区。具有以下特性:
内存独立- 对于训练语料来说,没必要在任何时间将整个语料都驻留在RAM中
有效实现了许多流行的向量空间算法-包括tf-idf,分布式LSA, 分布式LDA 以及 RP;并且很容易添加新算法
对流行的数据格式进行了IO封装和转换
在其语义表达中,可以相似查询
gensim的创建的目的是,由于缺乏简单的(java很复杂)实现主题建模的可扩展软件框架
实现示例
上面示例可以看到一个通过LDA从Wikipedia转储中提取主题的非常简单的示例。
3、Pattern
Pattern 是采用 Python 开发的数据挖掘库,用于抓取和解析各种数据源,如谷歌、Twitter、Wikipedia等等。
它提供了各种NLP工具(PoS标签、n- gram、WordNet)、机器学习功能(向量空间模型、聚类、分类)和用于进行网络分析的各种工具。它是由CLiPS维护的,因此不仅有很好的文档和许多例子,而且有许多学术出版物正在利用图书馆。
实际示例
在上面的示例中,是爬取谷歌以获取包含关键字“NLP”的结果,它将输出所有的结果url和文本。虽然这确实是一个毫无意义的示例,但它展示了如何通过Pattern执行爬行和NLP任务。
4、Natural Language Tool KIT [NLTK]
它是可用来训练NLP模型的最好的库之一。这个库很容易使用。它是一个初学者友好的NLP库。它有很多预先训练好的模型和语料库,可以帮助我们很容易地分析事物。
实际示例
# Importing Libraries
import nltk
text = 'Earth Revovles around the Sun.'
# Token Generator--> Separates the sentence into tokens
tokens = nltk.word_tokenize(text)
for token in tokens:
print(token)
word_tokenize()将帮助我们将一组文本创建为简单的单词。我们把它叫做token
输出
Earth
Revolves
around
the
Sun
5、TextBlob
它基于Pattern和NLTK,后者为所有常见的NLP操作提供了一个很棒的API调用。它不是最快或最完整的库,但它以一种极容易访问和管理的方式提供了人们日常所需功能。
实际示例
# Importing Module
from textblob import TextBlob
text = 'Earth Revolves around the sun.'
text_blob = TextBlob(text)
for sentence in blob.sentences:
print(sentence.sentiment.polarity)
在上面的示例中,我们考虑NLTK库中获取的相同示例文本。在这个程序中,textblob首先将句子分割成Token,并在标记上执行情感分析,这只是句子极性分析。
我希望你对Python中自然语言的流行库有一个完整,由于NLP是一门难学课程,初学者可能无法正确理解它。但是那些想要开始NLP的人,那么你应该使用上面的任何一个库。如果你是一名自然语言处理的新手,我强烈建议您从NLTK开始,这将是一个很好的开始。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/658/viewspace-3148399/ ,如需转载,请注明出处,否则将追究法律责任。