# 什么是自然语言处理？

> 原文： [https://machinelearningmastery.com/natural-language-processing/](https://machinelearningmastery.com/natural-language-processing/)

自然语言处理（简称 NLP）被广义地定义为通过软件自动操纵自然语言，如语音和文本。

自然语言处理的研究已经存在了 50 多年，随着计算机的兴起，语言学领域逐渐兴起。

在这篇文章中，您将了解自然语言处理是什么以及它为何如此重要。

阅读这篇文章后，你会知道：

*   什么是自然语言以及它与其他类型的数据有何不同。
*   是什么让使用自然语言如此具有挑战性。
*   NLP 领域的来源以及现代从业者如何定义。

让我们开始吧。

![What Is Natural Language Processing?](img/a0f67774fc5eb89ec56b1a9bb9bcb128.jpg)

什么是自然语言处理？
照片由 pedrik 拍摄，保留一些权利。

## 自然语言

自然语言是指我们人类彼此沟通的方式。

即，言语和文字。

我们被文字所包围。

想想你每天看到多少文字：

*   迹象
*   菜单
*   电子邮件
*   短信
*   网页
*   _ 等等......_

名单是无止境的。

现在想想讲话。

作为一个物种，我们可以互相交谈，而不是写作。学会说话比写作更容易。

语音和文字是我们彼此沟通的方式。

鉴于此类数据的重要性，我们必须有方法来理解和推理自然语言，就像我们对其他类型的数据一样。

## 自然语言的挑战

使用自然语言数据尚未解决。

它研究了半个世纪，真的很难。

> 从孩子的角度来看，这是很难的，他们必须花很多年时间学习语言......对于成人语言学习器来说很难，对于试图对相关现象进行建模的科学家来说很难，对于那些工程师来说很难尝试构建处理自然语言输入或输出的系统。这些任务非常艰巨，图灵可以正确地用自然语言进行流畅的对话，这是他对情报测试的核心。

- 第 248 页，[数学语言学](http://amzn.to/2tO1cOO)，2010。

自然语言很难，因为它很混乱。规则很少。

然而，我们可以在大多数时间轻松地相互理解。

> 人类语言非常模糊......它也在不断变化和发展。人们善于训练语言和理解语言，能够表达，感知和诠释非常精细和微妙的含义。与此同时，虽然我们人类是语言的伟大用户，但我们在正式理解和描述管理语言的规则方面也很差。

- 第 1 页，[自然语言处理中的神经网络方法](http://amzn.to/2u0JtPl)，2017。

## 从语言学到自然语言处理

### 语言学

[语言学](https://en.wikipedia.org/wiki/Linguistics)是语言的科学研究，包括语法，语义和语音学。

古典语言学涉及设计和评估语言规则。语法和语义的形式化方法取得了很大进展，但在大多数情况下，自然语言理解中的有趣问题抵制了清晰的数学形式。

从广义上讲，语言学家是研究语言的人，但也许更通俗地说，自我定义的语言学家可能更专注于在外地学习。

数学是科学的工具。致力于自然语言的数学家可能将他们的研究称为数学语言学，专注于使用离散数学形式和自然语言理论（例如形式语言和自动机理论）。

### 计算语言学

[计算语言学](https://en.wikipedia.org/wiki/Computational_linguistics)是使用计算机科学工具进行语言学的现代研究。昨天的语言学可能是今天的计算语言学家，因为计算工具和思维的使用已经超越了大多数研究领域。

> 计算语言学是用于理解和生成自然语言的计算机系统的研究。 ...计算语言学的一个自然函数是理论语言学家提出的语法测试。

- 第 4-5 页，[计算语言学：导言](http://amzn.to/2h6U4qY)，1986。

大数据和快速计算机意味着可以通过编写和运行软件从大型文本数据集中发现新的和不同的东西。

在 20 世纪 90 年代，统计方法和统计机器学习开始并最终取代了传统的自上而下的基于规则的语言方法，主要是因为它们具有更好的结果，速度和稳健性。现在，研究自然语言的统计方法在该领域占主导地位;它可以定义该领域。

> 用于自然语言处理的数据驱动方法现在变得如此受欢迎，以至于它们必须被认为是计算语言学的主流方法。 ......这一发展的一个重要因素无疑是可以应用这些方法的可用电子存储数据的增加量;另一个因素可能是由于观察到的脆弱性而完全依赖于手工制作的规则的方法的某种祛魅。

- 第 358 页，[牛津计算语言学手册](http://amzn.to/2uHeERE)，2005 年。

自然语言的统计方法不仅限于统计本身，还包括用于应用机器学习的高级推理方法。

> ...理解自然语言需要大量关于形态学，语法，语义和语用学的知识以及关于世界的一般知识。获取和编码所有这些知识是开发有效和强大的语言系统的基本障碍之一。就像统计方法一样......机器学习方法有望从注释或未注释的语言语料库中自动获取这些知识。

- 第 377 页，[牛津计算语言学手册](http://amzn.to/2uHeERE)，2005 年。

### 统计自然语言处理

计算语言学也以自然语言过程（NLP）的名称而闻名，以反映统计方法的更基于工程师或经验的方法。

该领域的统计优势通常也导致 NLP 被描述为统计自然语言处理，或许可以将其与经典计算语言学方法相比较。

> 我认为计算语言学既有科学又有工程方面。计算语言学的工程方面，通常称为自然语言处理（NLP），主要涉及构建用语言做有用事情的计算工具，例如机器翻译，摘要，问答等。像任何工程学科一样，自然语言处理涉及各种不同的科学学科。

- [统计革命如何改变（计算）语言学](http://dl.acm.org/citation.cfm?id=1642041)，2009。

语言学是一个很大的研究课题，虽然 NLP 的统计学方法在某些领域取得了巨大的成功，但是经典的自上而下的方法仍然有很大的空间和巨大的好处。

> 粗略地说，统计 NLP 将概率与在分析话语或文本的过程中遇到的替代方案联系起来，并将最可能的结果接受为正确的结果。 ......毫不奇怪，那些命名世界上密切相关的现象或我们对它的看法的词语经常彼此接近，以便关于世界的清晰事实反映在有些模糊的文本事实中。这种观点有很大的争论空间。

- Page xix，[牛津计算语言学手册](http://amzn.to/2uHeERE)，2005。

## 自然语言处理

作为对使用文本数据感兴趣的机器学习从业者，我们关注自然语言处理领域的工具和方法。

我们已经看到了上一节中从语言学到 NLP 的路径。现在，让我们来看看现代研究人员和从业者如何定义 NLP 的全部内容。

也许是该领域顶尖研究人员编写的更广泛的教科书之一，他们将该主题称为“_ 语言科学 _”，允许讨论经典语言学和现代统计学方法。

> 语言科学的目的是能够描述和解释围​​绕我们，谈话，写作和其他媒体的大量语言观察。其中一部分与人类获取，产生和理解语言的认知大小有关，其中一部分与理解语言话语与世界之间的关系有关，而其中一部分与理解语言结构有关。哪种语言沟通。

- 第 3 页，[统计自然语言处理基础](http://amzn.to/2uzwxDE)，1999。

他们通过在自然语言处理中使用统计方法继续关注推理。

> 统计 NLP 旨在对自然语言领域进行统计推断。统计推断通常包括获取一些数据（根据一些未知的概率分布生成），然后对此分布进行一些推断。

- 第 191 页，[统计自然语言处理基础](http://amzn.to/2uzwxDE)，1999。

在他们关于应用自然语言处理的文本中，NLP 流行的 [NLTK Python 库](http://www.nltk.org/)的作者和贡献者将该领域广泛地描述为使用计算机来处理自然语言数据。

> 我们将采用自然语言处理 - 或简称 NLP - 涵盖任何类型的自然语言的计算机操作。在一个极端，它可以像计算单词频率一样简单，以比较不同的写作风格。在另一个极端，NLP 涉及“理解”完整的人类话语，至少在能够对它们作出有用的反应的程度上。

- Page ix， [Python 自然语言处理](http://amzn.to/2uZMF27)，2009。

统计 NLP 已经转向另一个角落，现在强烈关注使用深度学习神经网络来执行特定任务的推断和开发强大的端到端系统。

在致力于这一新兴主题的第一本教科书中，Yoav Goldberg 简洁地将 NLP 定义为以自然语言为输入或以自然语言为输出的自动方法。

> 自然语言处理（NLP）是指人类语言的自动计算处理的总称。这包括将人类生成的文本作为输入的算法，以及生成自然文本作为输出的算法。

- 第 xvii 页，[自然语言处理中的神经网络方法](http://amzn.to/2u0JtPl)，2017。

## 进一步阅读

如果您要深入了解，本节将提供有关该主题的更多资源。

### 图书

*   [数学语言学](http://amzn.to/2tO1cOO)，2010。
*   [自然语言处理中的神经网络方法](http://amzn.to/2u0JtPl)，2017。
*   [计算语言学：导言](http://amzn.to/2h6U4qY)，1986。
*   [牛津计算语言学手册](http://amzn.to/2uHeERE)，2005 年。
*   [统计自然语言处理基础](http://amzn.to/2uzwxDE)，1999。
*   [Python 自然语言处理](http://amzn.to/2uZMF27)，2009。

### 维基百科

*   维基百科上的[语言学](https://en.wikipedia.org/wiki/Linguistics)
*   [维基百科上的计算语言学](https://en.wikipedia.org/wiki/Computational_linguistics)
*   [维基百科上的自然语言处理](https://en.wikipedia.org/wiki/Natural_language_processing)
*   [维基百科上的自然语言处理历史](https://en.wikipedia.org/wiki/History_of_natural_language_processing)
*   [维基百科上的自然语言处理概要](https://en.wikipedia.org/wiki/Outline_of_natural_language_processing)

## 摘要

在这篇文章中，您发现了自然语言处理的重要性。

具体来说，你学到了：

*   什么是自然语言以及它与其他类型的数据有何不同。
*   是什么让使用自然语言如此具有挑战性。
*   NLP 领域的来源以及现代从业者如何定义。

你有任何问题吗？
在下面的评论中提出您的问题，我会尽力回答。