Natural Language Toolkit 简明教程

Natural Language Toolkit - Introduction

What is Natural Language Processing (NLP)?

人类可以藉此说话、阅读和写作的交流方式,就是语言。换句话说,我们人类可以用我们的自然语言思考、制定计划、做出决定。这里的大问题是在人工智能、机器学习和深度学习的时代,人类是否可以通过自然语言与计算机/机器交流?开发NLP应用程序对我们来说是一个巨大的挑战,因为计算机需要结构化数据,但另一方面,人类语言是无结构且本质上含糊的。

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

How does it work?

在深入了解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.

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

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

  1. 首先,我们需要用足够的数据来喂机器,以便机器能够从经验中学习。

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

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

Components of NLP

以下图表表示自然语言处理 (NLP) 的组成部分 −

components

Morphological Processing

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

Syntax analysis

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

  1. 检查句子是否结构良好。

  2. 将其分解为显示不同单词之间句法关系的结构。

  3. 例如,诸如 “The school goes to the student” 的句子会被句法分析器拒绝。

Semantic analysis

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

Pragmatic analysis

语用分析是 NLP 的第四个组成部分。它包括将每个上下文中存在的实际对象或事件与前一个组件(即语义分析)获得的对象引用进行匹配。例如,诸如 “Put the fruits in the basket on the table” 的句子可以有两种语义解释,因此语用分析器将在这两种可能性之间进行选择。

Examples of NLP Applications

NLP 是一种新兴技术,可推导出各种形式的 AI,我们现在习惯于看到这些形式。对于当今和未来的认知应用,在人机之间创建无缝交互界面的 NLP 用途将继续成为重中之重。以下是 NLP 的一些非常有用的应用。

Machine Translation

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

Fighting Spam

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

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

大多数搜索引擎,如 Google、Yahoo、Bing、WolframAlpha 等等,都将其机器翻译 (MT) 技术建立在 NLP 深度学习模型之上。此类深度学习模型允许算法阅读网页上的文本,解释其含义并将其翻译成另一种语言。

Automatic Text Summarization

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

Grammar Correction

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

Question-answering

问答,自然语言处理 (NLP) 的另一项主要应用,专注于构建自动回答用户用自然语言发布的问题的系统。

Sentiment analysis

情感分析是自然语言处理 (NLP) 的另一项重要应用。正如其名称所示,情感分析用于以下目的:

  1. 识别多条帖子中的情绪

  2. 识别未明确表达情感的情绪

Amazon、ebay 等在线电子商务公司正在使用情感分析识别其客户在网上表达的意见和情绪。它将帮助他们了解客户对其产品和服务的想法。

Speech engines

Siri、Google Voice、Alexa 等语音引擎构建在 NLP 上,以便我们用自然语言与之交流。

Implementing NLP

为了构建上述应用程序,我们需要具备特定技能组,并且非常理解语言及其高效处理语言的工具。为了实现此目的,我们有各种可用的开源工具。其中一些是开源的,而另一些则是由组织开发用来构建他们自己的 NLP 应用程序的。以下是一些 NLP 工具的列表:

  1. 自然语言工具包 (NLTK)

  2. Mallet

  3. GATE

  4. Open NLP

  5. UIMA

  6. Genism

  7. Stanford toolkit

这些工具大部分都是用 Java 编写的。

Natural Language Tool Kit (NLTK)

在上述 NLP 工具中,NLTK 在易用性和概念解释方面得分非常高。Python 的学习曲线非常快,NLTK 是用 Python 编写的,因此 NLTK 也有非常好的学习工具包。NLTK 已经融入了大多数任务,如标记化、词干、词根化、标点符号、字符计数和单词计数。它非常优雅,易于使用。