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

自然语言处理 (NLP) 使计算机能够解释人类语言。

学习目标

阅读本文后,您将能够:

  • 定义自然语言处理 (NLP)
  • 了解 NLP 的工作原理
  • NLP 与其他类型人工智能 (AI) 的对比

复制文章链接

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

自然语言处理 (NLP) 是计算机程序用来解释人类语言的一种方法。NLP 属于人工智能 (AI) 的一种。。现代 NLP 模型大多是通过机器学习构建的,并且参考了语言学领域--对语意的研究。

所有计算机都能以适用于计算机的语言解释命令和指令。例如,计算机(尤其是浏览器应用程序)能够理解并解释 JavaScript 代码:


window.addEventListener("scroll",popup);

function popup() {
window.alert("Hello、world!");
}

但其无法理解和解释自然语言文本:


如果用户滚动页面,就会显示一个提示:“你好,世界!”

但具有自然语言处理功能的计算机程序即使不能执行命令,也能理解上述句子。

编程语言是向计算机下达指令的最佳方式,而自然语言处理则能让计算机程序利用人类语言(包括口语和书面语)完成各种任务。例如,其可以帮助处理海量的语音记录和书面文本,自动与人类用户互动,或解释用户查询。

NLP 的其他用途包括:

  • 情感分析:NLP 可帮助解读海量用户评论、社交媒体帖子或客户服务请求
  • 虚拟助手:NLP 对于理解来自 Siri、Alexa 或 Cortana 等助手的用户请求至关重要
  • 搜索引擎:NLP 可帮助搜索引擎更好地理解简单的单字查询和以句子或问题形式输入的查询背后的搜索意图,同时解释查询中的拼写错误或其他人为错误
  • 翻译:NLP 可帮助理解内容并将其从一种语言翻译成另一种语言
  • 内容管理:NLP 可通过解释用户生成文本的含义,帮助标记潜在的有害或不良内容

自然语言处理 (NLP) 是如何运作的?

NLP 利用机器学习对人类生成的内容进行统计分析,并学习如何对其进行解释。在训练过程中,会将上下文中单词和短语的示例及其解释提供给 NLP 模型。例如,当单词“orange”指代颜色而非水果名时,NLP 模型可能无法理解。但在向模型展示了数以千计的例子--如“I ate an orange”或“This car comes in orange”这样的句子--之后,其就能开始理解这个词,并正确解释其含义之间的区别。

鉴于人类语言的复杂性和不一致性,NLP 通常建立在深度学习的基础上,而深度学习是一种更为强大的机器学习类型。深度学习模型可处理无标记的原始数据,不过其需要海量数据才能得到正确的训练。 深度学习还需要海量的处理能力。

什么是 NLP 预处理?

NLP 预处理是指将原始文本准备好,以供程序或机器学习模型分析的过程。要将文本转换成深度学习模型更容易分析的格式,就必须对其进行 NLP 预处理。

有几种 NLP 预处理方法可以同时使用。主要有:

  • 转换为小写:就单词的含义而言,大写和小写几乎没有差异。因此,将所有单词转换为小写会更有效率,因为许多计算机程序对大小写敏感,可能会不必要地区别对待单词的大写形式。
  • 词干提取:通过去掉词尾,如“-ing”或“-tion”,将单词还原为词根或“词干”(例如:“transporting”和“transportation”都变成了“transport”)。
  • 词形还原:这种 NLP 技术可将单词还原为其在字典中的主要形式。复数或所有格名词变为单数形式,例如,“neighbor's”、“neighbors”和“neighbors”都变为“neighbor”。动词变为非共轭形式:“went”和“goes”变为“go”。
  • 单词化:将文本分割成表示含义的小块。这些小块通常由短语、单个词或子词组成(前缀"un-" 就是子词的一个例子)。
  • 去除停用词:许多单词对于语法或人们相互交谈时的清晰度非常重要,但并不会给单个句子带来实质性的意义提升,也不是计算机程序处理语言所必需的。在 NLP 的语境中,这类词被称为“停用词”,而停用词的去除就是将其从文本中删除。举例来说,在句子“I went to college for four years”中,单词“to”和“for”是使句子听起来自然流畅的必备元素,但对于传达意义来说并非必须。去掉停用词之后的版本可能是:“went college four years.”

NLP 与大型语言模型 (LLM) 之间有何区别?

大型语言模型 (LLM)是一种能够理解人类生成的文本并生成自然语音输出的机器学习模型。LLM 与被广泛使用的 ChatGPT 一样,都是在非常庞大的文本数据集上训练出来的。

NLP 和 LLM 这两个术语之间存在某些重叠:两者都使用机器学习、大型数据集和训练来解释人类语言。事实上,某些资料将 LLM 定义为 NLP 的一种。

但 LLM 与 NLP 模型在若干关键方面有所不同:

  • NLP 通常针对特定任务进行训练,而 LLM 则有着广泛的用途
  • NLP 可提供见解和解释,而 LLM 可生成与统计相关的文本,但可能不会传达对基本含义的理解(尽管许多高级 LLM 很容易让人产生这样的感觉)
  • 由于 LLM 用途广泛,因此,其需要的数据和训练远多于 NLP 模型

例如,NLP 模型更适用于情感分析,而 LLM 则更适用于与客户互动的聊天机器人。或者,NLP 模型可以帮助搜索引擎解释用户的查询并生成相关的搜索结果,而 LLM 可以通过统计分析已有相关内容来生成自己的查询回复。

NLP 与 LLM 以及生成式人工智能的比较

NLP 与生成式人工智能虽然相关,但也有着明显的区别。生成式人工智能是一种可生成文本、音频、视频、图像或代码的深度学习模型。相比之下,NLP 模型通常并非被设计用于生成文本。同时,LLM 也属于生成式人工智能的一种,因为其可以根据查询生成文本。

Cloudflare 如何实现 NLP 模型的开发?

Cloudflare 允许开发者在全球范围内的 GPU 上运行高级深度学习,使其能够访问训练 AI 模型所需的算力,同时保持最小延迟。Cloudflare R2是一种经济高效的存储方法,适用于基于深度学习的 NLP 必须训练的海量数据。了解更多Cloudflare for AI详情。