自然语言工具包 - 简介



什么是自然语言处理 (NLP)?

人类借助语言进行交流,包括说、读、写。换句话说,我们人类可以用自然语言思考、计划、做出决定。那么,在人工智能、机器学习和深度学习时代,人类能否用自然语言与计算机/机器进行交流呢?开发NLP应用程序对我们来说是一个巨大的挑战,因为计算机需要结构化数据,而另一方面,人类语言是非结构化的,往往具有模糊性。

自然语言处理是计算机科学的一个子领域,更具体地说,是人工智能的一个子领域,它使计算机/机器能够理解、处理和操纵人类语言。简单来说,NLP是机器分析、理解和从人类自然语言(如汉语、英语、法语、荷兰语等)中提取意义的一种方法。

它是如何工作的?

在深入研究NLP的工作原理之前,我们必须了解人类如何使用语言。每天,我们人类使用数百或数千个单词,其他人会理解这些单词并做出相应的回应。对人类来说,这是一种简单的交流方式,不是吗?但我们知道,语言的意义远不止于此,我们总是从我们所说的话以及我们说的话的方式中推导出上下文。这就是为什么我们可以说,NLP并非专注于语音调制,而是依赖于上下文模式。

让我们用一个例子来理解:

Man is to woman as king is to what?
We can interpret it easily and answer as follows:
Man relates to king, so woman can relate to queen.
Hence the answer is Queen.

人类如何知道哪个词是什么意思?这个问题的答案是,我们通过经验学习。但是,机器/计算机如何学习相同的知识呢?

让我们通过以下简单的步骤来理解:

  • 首先,我们需要向机器输入足够的数据,以便机器可以从经验中学习。

  • 然后,机器将使用深度学习算法,从我们之前输入的数据以及其周围的数据中创建词向量。

  • 然后,通过对这些词向量进行简单的代数运算,机器将能够像人类一样提供答案。

NLP的组成部分

下图显示了自然语言处理(NLP)的组成部分:

Components

形态学处理

形态学处理是NLP的第一个组成部分。它包括将语言输入块分解成对应于段落、句子和单词的标记集。例如,像“everyday”这样的单词可以分解成两个子词标记,如“every-day”。

句法分析

句法分析是第二个组成部分,也是NLP最重要的组成部分之一。这个组件的目的如下:

  • 检查句子是否格式正确。

  • 将其分解成一个结构,显示不同单词之间的句法关系。

  • 例如,“学校去学生那里”这样的句子会被句法分析器拒绝。

语义分析

语义分析是NLP的第三个组成部分,用于检查文本是否有意义。它包括从文本中提取确切的含义,或者我们可以说词典意义。例如,“这是一个热的冰淇淋”这样的句子会被语义分析器丢弃。

语用分析

语用分析是NLP的第四个组成部分。它包括将之前组件(即语义分析)获得的对象引用与每个上下文中存在的实际对象或事件相匹配。例如,“把水果放在桌子上的篮子里”这句话可能有两种语义解释,因此语用分析器将在这两种可能性之间进行选择。

NLP应用示例

NLP作为一项新兴技术,衍生出各种形式的人工智能,我们如今经常看到这些人工智能。对于当今和未来日益增长的认知应用,在人类和机器之间创建无缝且交互式界面的NLP应用将继续成为重中之重。以下是NLP的一些非常有用的应用。

机器翻译

机器翻译(MT)是自然语言处理最重要的应用之一。MT基本上是一个将一种源语言或文本翻译成另一种语言的过程。机器翻译系统可以是双语的或多语的。

反垃圾邮件

由于不需要的电子邮件数量大幅增加,垃圾邮件过滤器变得非常重要,因为它是在对抗此问题的第一道防线。通过将误报和漏报问题作为主要问题,NLP的功能可用于开发垃圾邮件过滤系统。

N-gram建模、词干提取和贝叶斯分类是可用于垃圾邮件过滤的一些现有NLP模型。

信息检索和网络搜索

大多数搜索引擎(如谷歌、雅虎、必应、WolframAlpha等)都基于NLP深度学习模型的机器翻译(MT)技术。这种深度学习模型允许算法读取网页上的文本,解释其含义并将其翻译成另一种语言。

自动文本摘要

自动文本摘要是一种技术,可以创建较长文本文档的简短、准确的摘要。因此,它可以帮助我们在更短的时间内获取相关信息。在这个数字时代,我们迫切需要自动文本摘要,因为互联网上的信息泛滥,而且这种趋势不会停止。NLP及其功能在开发自动文本摘要中发挥着重要作用。

语法校正

拼写检查和语法校正功能是Microsoft Word等文字处理软件的非常有用的功能。自然语言处理(NLP)被广泛用于此目的。

问答

问答是自然语言处理(NLP)的另一个主要应用,它专注于构建能够自动回答用户以自然语言提出的问题的系统。

情感分析

情感分析是自然语言处理(NLP)的另一个重要应用。顾名思义,情感分析用于:

  • 识别多个帖子中的情感,以及

  • 识别未明确表达情感的地方。

亚马逊、eBay等在线电子商务公司正在使用情感分析来识别其客户的在线观点和情感。这将帮助他们了解客户对他们的产品和服务的看法。

语音引擎

Siri、Google Voice、Alexa等语音引擎都是基于NLP构建的,因此我们可以用自然语言与它们进行交流。

NLP的实现

为了构建上述应用程序,我们需要拥有特定的技能组合,以及对语言和高效处理语言的工具的深刻理解。为此,我们有各种可用的开源工具。其中一些是开源的,而另一些则由组织开发以构建他们自己的NLP应用程序。以下是某些NLP工具的列表:

  • 自然语言工具包 (NLTK)

  • Mallet

  • GATE

  • OpenNLP

  • UIMA

  • Gensim

  • 斯坦福工具包

这些工具大多是用Java编写的。

自然语言工具包 (NLTK)

在上述NLP工具中,NLTK在易用性和概念解释方面得分很高。Python的学习曲线非常快,而NLTK是用Python编写的,因此NLTK也有非常好的学习工具包。NLTK集成了大多数任务,如分词、词干提取、词形还原、标点符号、字符计数和单词计数。它非常优雅且易于使用。

广告