自然语言处理,简称 NLP,广义上定义为通过软件对自然语言(如语音和文本)进行自动化操作。
自然语言处理的研究已有 50 多年的历史,随着计算机的兴起,它从语言学领域发展而来。
在这篇文章中,您将了解什么是自然语言处理以及它为何如此重要。
阅读本文后,你将了解:
- 什么是自然语言,以及它与其他类型数据有何不同。
- 是什么让处理自然语言如此具有挑战性。
- NLP 领域的起源以及现代从业者如何定义它。
使用我的新书《自然语言处理深度学习》启动您的项目,包括分步教程和所有示例的 Python 源代码文件。
让我们开始吧。

什么是自然语言处理?
图片由 pedrik 拍摄,保留部分权利。
自然语言
自然语言是指我们人类相互交流的方式。
即语音和文本。
我们被文本包围着。
想想您每天看到的文本有多少
- 标志
- 菜单
- 电子邮件
- 短信
- 网页
- 以及更多……
这个清单是无穷无尽的。
现在想想语音。
作为一个物种,我们说话可能比写作更多。学习说话甚至可能比学习写作更容易。
语音和文本是我们相互交流的方式。
鉴于这种数据的重要性,我们必须有理解和推理自然语言的方法,就像我们处理其他类型数据一样。
需要深度学习处理文本数据的帮助吗?
立即参加我的免费7天电子邮件速成课程(附代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
自然语言的挑战
处理自然语言数据的问题尚未解决。
它已经被研究了半个世纪,而且它真的很难。
对于孩子来说,这很难,他们必须花很多年学习一门语言……对于成年语言学习者来说,这很难;对于试图模拟相关现象的科学家来说,这很难;对于试图构建处理自然语言输入或输出的系统的工程师来说,这也很难。这些任务如此之难,以至于图灵完全有理由将自然语言的流利对话作为他智能测试的核心。
— 第 248 页,《数学语言学》,2010 年。
自然语言之所以难,主要是因为它很混乱。规则很少。
然而我们大部分时间都能轻松地相互理解。
人类语言高度模糊……它也在不断变化和演变。人们擅长生成和理解语言,能够表达、感知和解释非常复杂和细致的含义。与此同时,尽管我们人类是出色的语言使用者,但我们却非常不善于正式地理解和描述支配语言的规则。
— 第 1 页,《自然语言处理中的神经网络方法》,2017 年。
从语言学到自然语言处理
语言学
语言学是语言的科学研究,包括其语法、语义和语音学。
经典语言学涉及设计和评估语言规则。在语法和语义的形式化方法上取得了很大进展,但就大部分而言,自然语言理解中有趣的问题抵制了简洁的数学形式化。
广义上说,语言学家是指任何研究语言的人,但更通俗地说,一个自称的语言学家可能更专注于实地研究。
数学是科学的工具。研究自然语言的数学家可能会将他们的研究称为数学语言学,只专注于离散数学形式化和自然语言理论的使用(例如形式语言和自动机理论)。
计算语言学
计算语言学是使用计算机科学工具进行的现代语言学研究。昨天的语言学家可能是今天的计算语言学家,因为计算工具和思维的使用已经超越了大多数研究领域。
计算语言学是研究用于理解和生成自然语言的计算机系统。... 计算语言学的一个自然功能将是测试理论语言学家提出的语法。
— 第 4-5 页,《计算语言学:导论》,1986 年。
大数据和高速计算机意味着通过编写和运行软件,可以从大量的文本数据集中发现新的和不同的事物。
在 1990 年代,统计方法和统计机器学习开始并最终取代了经典的自上而下的基于规则的语言方法,主要是因为它们具有更好的结果、速度和鲁棒性。统计方法现在主导着自然语言研究领域;它可能定义了这个领域。
用于自然语言处理的数据驱动方法现在变得如此流行,以至于它们必须被视为计算语言学的主流方法。... 导致这一发展的一个重要因素无疑是可用于这些方法的电子存储数据量的增加;另一个因素可能是对手工制作规则的方法的某种幻灭,因为它们被观察到的脆弱性。
— 第 358 页,《牛津计算语言学手册》,2005 年。
自然语言的统计方法不仅限于统计本身,还包括应用于机器学习的先进推理方法。
……理解自然语言需要大量的形态学、句法、语义和语用学知识,以及关于世界的常识。获取和编码所有这些知识是开发有效和鲁棒的语言系统的根本障碍之一。像统计方法一样……机器学习方法提供了从带注释或未注释的语言语料库中自动获取这些知识的希望。
— 第 377 页,《牛津计算语言学手册》,2005 年。
统计自然语言处理
计算语言学也以自然语言处理(或 NLP)的名称而闻名,以反映统计方法更具工程化或经验性的方法。
该领域的统计主导地位也经常导致 NLP 被描述为统计自然语言处理,或许是为了将其与经典计算语言学方法区分开来。
我认为计算语言学既有科学的一面,也有工程的一面。计算语言学的工程方面,通常称为自然语言处理 (NLP),主要关注构建能够处理语言的计算工具,例如机器翻译、摘要、问答等。像任何工程学科一样,自然语言处理借鉴了各种不同的科学学科。
— 统计革命如何改变(计算)语言学,2009 年。
语言学是一个很大的研究课题,尽管 NLP 的统计方法在某些领域取得了巨大成功,但经典自上而下方法仍然有很大的空间和巨大的益处。
粗略地说,统计 NLP 将概率与在分析话语或文本过程中遇到的替代方案相关联,并接受最可能的结果为正确结果。……毫不奇怪,世界或我们对世界的感知中密切相关的现象的词语经常彼此靠近出现,因此关于世界的清晰事实反映在文本中有些模糊的事实中。在这种观点中存在很大的争论空间。
— 第 xix 页,《牛津计算语言学手册》,2005 年。
自然语言处理
作为对文本数据感兴趣的机器学习从业者,我们关注自然语言处理领域的工具和方法。
我们在上一节中看到了从语言学到 NLP 的路径。现在,让我们看看现代研究人员和从业者如何定义 NLP。
在领域内顶尖研究人员撰写的教科书中最广为人知的一本中,他们将该学科称为“语言科学”,允许讨论经典语言学和现代统计方法。
语言科学的目标是能够表征和解释我们周围对话、写作和其他媒体中无数的语言观察。其中一部分与人类如何获取、生成和理解语言的认知方面有关,一部分与理解语言表达与世界之间的关系有关,一部分与理解语言交流所依赖的语言结构有关。
— 第 3 页,《统计自然语言处理基础》,1999 年。
他们继续专注于通过在自然语言处理中使用统计方法进行推理。
统计 NLP 旨在为自然语言领域进行统计推理。一般的统计推理包括获取一些数据(根据一些未知的概率分布生成),然后对这个分布进行一些推理。
— 第 191 页,《统计自然语言处理基础》,1999 年。
在他们的应用自然语言处理文本中,流行的 NLTK Python 库的作者和贡献者将该领域广义地描述为使用计算机处理自然语言数据。
我们将广义地将自然语言处理(或简称 NLP)视为任何对自然语言进行计算机操作的方式。在一个极端,它可能像计算词频以比较不同写作风格一样简单。在另一个极端,NLP 涉及“理解”完整的人类话语,至少达到能够对其给出有用回应的程度。
— 第 ix 页,《使用 Python 进行自然语言处理》,2009 年。
统计 NLP 已经发生了另一个转变,现在强烈关注使用深度学习神经网络来执行特定任务的推理和开发健壮的端到端系统。
在第一本专门讨论这个新兴主题的教科书中,Yoav Goldberg 简洁地将 NLP 定义为将自然语言作为输入或产生自然语言作为输出的自动化方法。
自然语言处理 (NLP) 是指对人类语言进行自动计算处理的统称。这包括将人类生成的文本作为输入的算法,以及生成自然文本作为输出的算法。
— 第 xvii 页,《自然语言处理中的神经网络方法》,2017 年。
用于自然语言处理的深度学习
深度学习技术在解决具有挑战性的自然语言处理问题方面显示出巨大潜力。在此了解更多
有关如何利用深度学习神经网络进行自然语言处理的概述,请参阅文章
进一步阅读
如果您想深入了解此主题,本节提供了更多资源。
书籍
- 数学语言学, 2010.
- 自然语言处理中的神经网络方法, 2017.
- 计算语言学:导论, 1986.
- 牛津计算语言学手册, 2005.
- 统计自然语言处理基础, 1999.
- 使用 Python 进行自然语言处理, 2009.
维基百科
总结
在这篇文章中,您了解了什么是自然语言处理以及它为何如此重要。
具体来说,你学到了:
- 什么是自然语言,以及它与其他类型数据有何不同。
- 是什么让处理自然语言如此具有挑战性。
- NLP 领域的起源以及现代从业者如何定义它。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
那么您认为计算语言学 (CL) 和自然语言处理 (NLP) 基本是同一个领域,还是您认为它们是独立的?
嗯,这实际上取决于看待问题的角度。
这很像统计学和机器学习都可以不同地看待预测建模问题。
实际上,我是一个实用主义者,只要能让我更接近可行的解决方案,我就会从任何地方获取知识/智慧。
在您的深度学习博客中,您在回复某人的问题时发表了以下声明
“深度学习技术的利基似乎是当您处理原始模拟数据时,例如音频和图像数据。”
考虑到这一点,关于自然语言处理的深度学习可以说些什么?优点和缺点是什么?
不错,我仍然坚持这个观点。对于文本也是同样的道理,文本是原始模拟数据。
它数量庞大,充满歧义,语言几乎没有形式规则,等等。
NLP 和深度学习结合的一个更有趣的用例是讽刺检测器。看看这个。 https://www.technologyreview.com/s/602639/how-vector-space-mathematics-helps-machines-spot-sarcasm/
感谢分享。
很棒的文章。
谢谢
感谢您的分享……
我不是以学位或研究为目的学习语言的,那么我仍然可以更好地使用 NLTK 来进行涉及 NLP 的项目吗?
我需要很强的数学知识,特别是统计学和算法知识才能理解 NLP 和 NLTK 吗?
NLP 的实际用例有哪些?
我这里有例子
https://machinelearning.org.cn/applications-of-deep-learning-for-natural-language-processing/
NLP 的实际应用是什么,先生
NLP 不是一个问题,它是一个研究领域。这里有一些属于 NLP 的问题,深度学习方法正在帮助解决这些问题
https://machinelearning.org.cn/applications-of-deep-learning-for-natural-language-processing/
有用的文章!!我也写了一篇关于自然语言处理的文章。 http://www.nbdigitech.com/resources/what-is-natural-language-processing/
感谢分享。
太难了。
詹姆斯是什么?
Jason,见解深刻!
这是我们关于 NLP 的思考,希望这能为这篇精彩的文章增添价值,谢谢。
https://notesnewtech.com/chatbot/what-is-natural-language-processing/
感谢分享。
我阅读了您的这篇文章,写得很好,信息量很大,感谢分享!
谢谢!
提出一种机制将用户分类到合适的类别中,例如“艺术和
娱乐、宗教和灵性、汽车和交通工具、商业等。
只给出文本数据文件,任务是创建目标特征。
我认为在没有给出目标变量的情况下,我们无法进行分类。
如何解决它。
听起来像家庭作业。
目前拥有超过 1,000 名用户,目标是在本财年末将覆盖范围扩大到 50,000 名用户。
财年末。提出一个您将实施的仓储系统,以确保及时
鉴于其动态性质,更新其记录。
是的,没错!这篇文章似乎是关于在处理模拟图像和音频数据时进行深度学习语言处理的。
考虑到这一点,在研究人工智能技术时,我发现了以下文章……
https://www.fabbyweb.com/the-working-method-of-artificial-intelligence-technology/
优点和缺点是什么?
也许直接问作者。
你好,
我正在寻找作者关于优缺点的相同答案
确切的优缺点是什么?
感谢您的文章!我能从您那里学习更多关于经典 NLP 管道的知识吗?