人工智能的一个重要领域是自然语言处理(NLP)。智能设备的广泛使用、使用NLP改善医疗保健以及采用基于云的解决方案正在推动NLP在行业中的广泛采用。但NLP究竟是什么,它为什么重要?
语言学、计算机科学和人工智能都在NLP中相遇。一个好的NLP系统可以理解文档的内容,包括它们的微妙之处。NLP的应用分析和分析大量自然语言数据——所有人类语言,无论是英语、法语还是普通话,都是自然语言——以类人方式复制人类交互。
为什么NLP如此重要?
我们比以往任何时候都更加依赖机器,因为它们使我们能够比以往任何时候都更加高效和准确。然而,NLP活动面临着重大挑战。他们没有磨损。他们毫无怨言。他们从不无聊。
自然语言的独特性和语言的不确定性使NLP成为一个难以处理的领域。人类学习语言相对容易,但机器理解自然语言却相当困难。要为被视为非结构化的数据提供结构(即,与商店的交易历史记录相反,文本缺乏模式),我们必须首先确定解决语言创造力和歧义问题的解决方案。
NLP项目的工具
许多开源程序可用于在非结构化文本(或其他自然语言)中发现有见地的信息并解决各种问题。尽管并不全面,但下面列出的框架对于任何有兴趣在其项目中使用自然语言处理的人或任何企业来说都是一个很好的起点。此处列出了最流行的自然语言处理(NLP)任务框架。
NLTK
NaturalLanguageToolKit是开发Python程序以管理和分析人类语言数据(NLTK)的主要框架之一。NLTK文档指出,“它为强大的NLP库提供包装器、一个活跃的社区以及对50多个语料库和词汇资源(包括WordNet)的直观访问。”它还提供了一套用于分类、标记化、词干提取、标记、解析和语义推理的文本处理库。
学习NLTK需要时间,就像学习编程中的大多数东西一样。由NLTK设计者自己制作的NaturalLanguageProcessingwithPython一书是众多可帮助您理解该框架的书籍之一。它为编写代码来解决自然语言处理问题提供了一种非常有用的方法。
斯坦福CoreNLP
斯坦福NLP社区创建并积极维护CoreNLP框架,这是一个很受欢迎的NLP活动库。NLTK和SpaCy分别是用Python和Cython编写的,而CoreNLP是用Java编写的,需要在您的机器上安装JDK(但它确实具有适用于大多数编程语言的API)。
CoreNLP的创建者将其称为“用Java进行自然语言处理的一站式商店!”在网站上。标记和句子边界、词性、命名实体、数值和时间值、依存关系和选区解析器、情感、共指、引用归因和关系只是使用CoreNLP可以为文本导出的一些语言注释。阿拉伯语、中文、英语、法语、德语和西班牙语是CoreNLP目前支持的六种语言。
CoreNLP高度可扩展的事实使其成为困难任务的首选,这是其主要优势之一。它的设计考虑到了速度,并且已经过调整以非常快。
SpaCy
它是一个可以与Python和Cython一起使用的库。它是NLTK的发展,结合了词向量和预训练的统计模型。现在支持超过49种语言的标记化。
这个库可以被认为是处理标记化的最佳库之一。文本可以分解为语义单元,如单词、文章和标点符号。
SpaCy中提供了现实世界中项目所需的所有功能。在目前市场上所有的NLP软件中,它还拥有最快和最准确的句法分析。
GPT-3
GPT-3是OpenAI最近发布的一个新工具。它既坚固又时尚。由于文本预测是它的主要用途,因此它是一个自动完成应用程序。GPT-3将根据所需文本的多个实例生成相似但不同的内容。
OpenAI一直致力于GPT项目。第三个版本不错。一个巨大的优势是它预训练的大量数据(亿个参数)。如果你使用它,你可以产生与口语更相似的结果。
ApacheOpenNLP
可访问性在长时间使用工具时至关重要,但很难在开源自然语言处理技术中找到。尽管具有所需的功能,但使用起来可能太具有挑战性。
ApacheOpenNLP是一个面向重视实用性和可访问性的人的开源库。与StanfordCoreNLP一样,它使用Python装饰器和JavaNLP库。
与功能丰富的尖端库NLTK和StanfordCoreNLP相比,OpenNLP是一种简单但有效的工具。它是命名实体识别、句子检测、词性标注和标记化的最佳解决方案之一。此外,您可以修改OpenNLP以满足您的需求并消除不必要的功能。
谷歌云自然语言API
GoogleCloudNaturalLanguageAPI为情绪分析、内容分类和实体提取提供了多种预训练模型。AutoMLNaturalLanguage是使您能够构建自定义机器学习模型的另一项功能。
它使用谷歌的问答和语言理解工具作为谷歌云架构的一部分。
TextBlob
它是市场上最快的机器学习工具。另一个易于访问的基于NLTK的自然语言处理工具是TextBlob。这可能会通过允许更多文本信息的额外功能得到增强。
TextBlob情感分析可用于通过语音识别与客户联系。此外,您可以使用来自BigBusiness的交易员的语言专业知识来开发模型。
标准化内容正变得普遍且有利。如果您的网站或应用程序可以自动本地化,那就太好了。TextBlob中的机器翻译功能是另一个有用的功能。要增强机器翻译,请使用TextBlob语言文本语料库。
亚马逊Comprehend
AmazonWebServices架构包括自然语言处理(NLP)服务AmazonComprehend。情感分析、主题建模、实体识别和其他NLP应用都可以使用此API进行。
从电子邮件、社交媒体提要、客户服务单、产品评论和其他来源,它从文本中提取相关信息。从保险索赔等文档中提取文本、关键字、主题、情绪和其他信息可能有助于简化文档处理操作。
IBMWatson
一组称为IBMWatson的人工智能(AI)服务位于IBMCloud上。自然语言理解是其重要功能之一,它使您能够识别和提取单词、组、情感、实体等。
它很灵活,因为它可以适应从银行业到医疗保健的各种行业,并且它包括一个可以帮助您入门的论文库。
AllenNLP
原型制作工具中强大的文本预处理能力。SpaCy比AllenNLP更适合生产优化,但研究更频繁地使用AllenNLP。此外,它由PyTorch提供支持,PyTorch是一种广受欢迎的深度学习框架,与SpaCy相比,它为模型定制提供了更大的灵活性。
BERT
来自Transformer的双向编码器表示被称为BERT。它是一种经过预训练的谷歌算法,旨在更准确地预测用户想要什么。与早期的无上下文方法(如word2vec或GloVe)相反,BERT考虑与目标词紧邻的词,这可能会明显改变词的解释方式。
GenSim
经典是语言数据的集合。不管语料库的大小,它都有多种方法可以应用。一个名为Gensim的Python包是在考虑信息检索和自然语言处理的情况下创建的。该库还具有出色的内存优化、处理速度和效率。在安装Gensim之前,必须安装NumPy和SciPy这两个用于科学计算的Python包,因为它们是库所必需的。
Word2Vec
一个词通过词嵌入表示为一个向量。使用他们的字典定义,单词被转换为向量,可用于训练机器学习(ML)模型以识别单词之间的异同。用于词嵌入的NLP工具称为Word2Vec。
CogCompNLP
宾夕法尼亚大学创建的工具称为CogCompNLP。它在Python和Java中可用,用于处理文本数据,并且可以存储在本地或远程。它的一些特性是标记化、词性标注、分块、词形还原、语义角色标记等。大数据和远程存储的数据都可以使用它。