简介

自然语言处理(NLP)是一种专业分析人类语言的人工智能。(下文皆简称为“NLP”),它的工作原理:

  • 接收自然语言,这种语言是通过人类的自然使用演变而来的,我们每天都用它来交流
  • 转译自然语言,通常是通过基于概率的算法
  • 分析自然语言并输出结果

简而言之,这就是一个创建算法的过程。

苹果公司的人工智能语音助手 Siri 的工作过程就是自然语言处理在实践中应用的一个鲜活案例。

NLP 正在成为我们生活中不可或缺的一部分,其与机器学习、深度学习一起达成的高度远远优于几年前取得的成就。

在本文中我们将深入了解NLP是如何应用、如何工作的。


NLP 的应用

NLP 应用广泛,其中包括:

  • 机器翻译:通过使用 NLP 把一种语言翻译成另一种语言。

    为了使 NLP 在机器翻译方面做得更好,它使用了深度学习技术。这种形式的机器翻译因为利用了神经网络,所以有时被称为神经机器翻译(NMT)。因此,基于统计、试错等方法翻译语言的 NMT 能够联系语境翻译语言,处理语言的其他微妙之处。

    除了翻译外语,NMT 也被使用在翻译纯文本、网页或文件,如 Excel、Powerpoint 或者 Word,翻译财务文件,如年报、投资评论和信息文件等场景。

  • 语音识别

    语音识别的核心是识别口语单词、解释它们并将其转换为文本的能力。然后可以采取一系列行动,如回答问题、执行指示或编写电子邮件。

    Siri 使用 NLP 一个非常明显的特征就是语音识别。当然,Alexa 和谷歌语音助手同样也是 NLP 语音识别的著名应用。

    语音识别不是一项新的科学技术,距今已有50多年的历史了。直到最近,多亏有了 NLP,它的准确性和易用性才有了质的提升。在 NLP 中使用强大的深度学习的方法使今天的语音识别应用程序比以往任何时候都表现得更出色。

  • 聊天机器人

    聊天机器人是一种模仿人类对话聊天的程序。

    第一个聊天机器人Eliza Doolittle 出现在 20 世纪 60 年代,经过几十年的发展,NLP 已经成为创建聊天机器人的基础,尽管这样的系统仍不算完美,但它们可以轻松地处理标准任务。聊天机器人当前可在多种渠道上运行,包括 Internet,应用程序和消息传递平台。很多公司用聊天机器人来进行客户服务、售前咨询和售后咨询。

    虽然简单的聊天机器人使用基于规则的方法,但如今功能更强的聊天机器人使用 NLP 来理解客户在说什么以及如何响应。

  • 情感分析

    情感分析是种有趣的 NLP 和数据挖掘任务,对文本数据中包含的情绪进行解析和分类,衡量人们的观点倾向。

    例如被用来分析观众对电影的评论或由该电影引起的情绪状态,又例如将在线客户对产品或服务的反馈按照正面或负面的体验进行分类。

    情感分析最简单的形式是,根据传达情感的特定词语,如“爱”、“恨”、“高兴”、“伤心”或“生气”,对文本进行分类。这种情绪分析方法已经存在了很长时间,但由于其简单性,实际应用非常有限。

    今天的情感分析使用基于统计和深度学习方法的 NLP 对文本进行分类,其结果就是能够处理复杂的、自然发音的文本。

    如今,世界各地的企业都对情感分析非常感兴趣。因为其可以在客户偏好、满意度和意见反馈等方面提供有助于市场活动和产品设计的数据。

  • 电子邮件分类

    电子邮件过载是现代职场常见的难题。NLP 可以协助分析和分类收到的电子邮件,以便它们可以自动转发到正确的收件方。

    曾经,人们使用简单的关键词匹配技术对电子邮件进行分类。这种做法成败参半。NLP 可以更好的进行分类,因为它可以理解整个句子、段落和文本的文本中的上下文。

    鉴于当今企业必须处理的电子邮件数量庞大,基于 NLP 的电子邮件分类可以极大地提高工作效率。使用 NLP 进行分类有助于确保邮件不会被遗忘在负担过重的收件箱中,还可以适当地归档以备进一步处理。


NLP 的工作原理

本质上,NLP 是通过将一组文本信息转换成指定的输出数据来工作的。

例如:如果应用程序是机器翻译,那么输入的文本信息将是源语言(比如英语)的文档,输出将是目标语言(比如法语)的翻译文档;如果应用程序是情感分析,则输出的是将输入文本分类转换为情感类别;诸如此类。

NLP 工作流

现代 NLP 是一门融合了语言学、计算机科学和机器学习的混合学科。NLP 使用的过程或工作流有以下三个主要步骤:

  1. 文本预处理
  2. 文本表示
  3. 分析和建模

每一步都可能使用一系列技术,这些技术随着研究的深入而不断发展。


步骤1:文本预处理

首先准备输入文本,以便更容易地分析。这部分的 NLP 在借鉴了一系列传统语言方法的基础上,已经很好的建立起来了。

在这个步骤中使用的一些关键方法是:

  • 标记法:将文本分解成有用的单位(标记),例如,使用空格分隔单词,或者使用句号分隔句子。

    标记法也能识别经常连在一起的单词,比如“New York”或“machine learning”。例如,将“Customer service couldn 't be better.”这句话进行标记,会产生以下标签:“Customer service”、“could”、“not”、“be”和“better”。

  • 标准化:使用词干提取和词形还原等技术将单词转换为基本形式

    这样做是为了帮助减少干扰和简化分析。

    词干分析通过删除后缀来识别单词的词干。例如,“研究”一词的词干是“studi”。类似地,词元化除去后缀,必要时也除去前缀,从而产生通常在自然语言中使用的单词。例如,“studies”一词真正的词形还原就是“study”。

    在大多数应用程序中,由于产生的单词在自然语言中有更多的意义,所以词形还原比词干提取更为可取。

  • 词性标注(POS):利用词法,或研究词与词之间的关系。

    单词(或标记)是根据它们在句子中的功能来标记的。这是通过使用文本语料库中的既定规则来识别单词在言语中的目的,即动词、名词、形容词等。

在这里插入图片描述

  • 句法分析:利用句法或分析单词和句子如何组合在一起,有助于理解句子的结构,并根据语法规则将句子分解成短语来实现。

    一个短语可以包含一个名词和一个冠词,比如“我的兔子”,或者一个动词,比如“喜欢吃胡萝卜”。

  • 语义分析:是指句子中使用的词语的预期意义。

    单词可以有不止一种意思。例如,“pass”可以意味着把某件物品交给别人、决定不参加某件事、或考试合格。

    通过观察目标词前后出现的单词,可以更好地理解目标词的意思。


步骤2:文本表示

为了使用机器学习和深度学习方法分析文本,需要将文本转换为数字。这就是文本表示的目的。在此步骤中使用的一些关键方法包括:

  • 词袋模型

    词袋模型(BoW)是描述文档中单词出现的文本的一种表示形式,它通过计算输入文档中每个单词与已知词汇的词汇表相比出现的次数来表示文本。

    结果是一组向量,其中包含描述每个单词出现次数的数字。这些向量被称为“词袋”,因为它们不包含任何关于输入文档结构的信息。

    为了说明 BoW 是如何工作的,请看示例“the cat sat on the mat”。其中包含“the”、“cat”、“sat”、“on”和“mat”等词。这些词的出现频率可以用形式为 [2,1,1,1,1] 的向量来表示。这里,单词“the”出现两次,其他单词出现一次。

    与一个巨大的词汇表相比,向量将扩展为包含许多零。这是因为词汇表中没有包含在例句中的所有单词的频率都是零。结果向量可能包含大量的零,因此称为“稀疏向量”。

    BoW 简单易懂。然而,当词汇量很大时,生成的稀疏向量可能非常大。这会导致在计算上产生数量可观的包含无效信息的向量(例如,大部分都是零)。

    此外,BoW 查看的是单个单词,因此不会捕捉到任何组合词的相关信息。这会导致接下来分析文本时造成上下文丢失。

  • N 元模型

    使用 BoW 减少上下文丢失的一种方法是创建组合单词而不是单个单词的词汇表。这些分组的单词被称为“n-grams”,其中“n”是分组大小。由此产生的方法称为“N元模型”(BNG)。

    该模型基于这样一种假设,第 N 个词的出现只与前面 N-1 个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计 N 个词同时出现的次数得到。常用的是二元的 2-grams 和三元的 3-grams。

    BNG 的优点是每个 n-gram 比单个单词能捕捉更多的上下文。

    在前面的例句中,“sat on”和“the mat”是 2-grams 的例子,“on the mat”是 3-grams 的例子。

  • TF-IDF

    计算单词在文档中出现的次数会出现一个问题,一些单词开始在计算中占据主导地位。

    像“the”、“a”或“it”之类的词。这些词经常出现,但并不包含太多信息。

    处理此种问题的一种方法是将文档中频繁出现的单词与唯一出现的单词区别对待。经常出现的词往往是像“The”这样的低值词。这些词的计数将被惩罚,以降低其支配地位。

    这种方法被称为“词频-逆向文件频率”或 TF-IDF。词频是指单词在给定文档中的出现频率,而逆文档频率则是指单词在所有文档中的出现频率。

    TF-IDF 方法的作用是淡化频繁出现的单词,并突出显示具有有用信息的更独特的单词,例如“cat”或“mat”。这样做可以带来更好的结果。

  • 词嵌入

    在这里插入图片描述

    现有的机器学习方法往往无法直接处理文本数据,因此需要找到合适的方法,将文本数据转换为数值型数据,由此引出了 Word Embedding 的概念。

    一种更复杂的文本表示方法涉及到词嵌入。它将每个单词映射到单独的向量,其中向量趋向于“密集”而不是“稀疏”(即更小,零更少)。在映射过程中,会考虑每个单词及其周围的单词。由此产生的密集向量可以帮助更好地分析比较单词和上下文。

    词嵌入方法利用强大的机器学习和深度学习来完成映射。这是一个不断发展并且已经有了一些出色成果的的领域。目前使用的关键算法包括 Word2Vec、**GloVe **和 FastText


步骤3:分析和建模

NLP 过程的最后一步是对通过步骤 1 和步骤 2 生成的向量,利用机器学习和深度学习方法执行计算,以产生期望的结果。许多来自非 NLP 领域的相同的机器学习技术,例如图像识别或欺诈检测,可用于该分析。

考虑情感分析。可以使用有监督或无监督的机器学习来完成。有监督的机器学习需要预先标记的数据,而无监督的机器学习则使用预先准备好的词库对情感进行分类。

利用机器学习,用概率方法对输入文本向量进行分类。这可以通过一个训练模型(有监督的机器学习)或者通过与合适词库(无监督的机器学习)的比较来实现。

最后呈现的结果是基于机器学习过程中产生的概率的情绪分类。


结语

NLP 发展迅速,对社会的影响越来越大。从语言翻译到语音识别,从聊天机器人到识别情感,NLP 正在提供有价值的见解,使我们的生活更高效。

现代自然语言处理运用语言学、计算机科学和机器学习。近几年来,NLP 取得的成果远远超过过去我们所见。

NLP 的基本工作流程包括文本预处理、文本表示和文本分析。现在有各种各样的技术在使用,更多的技术正在不断的研究中发展。

NLP 将彻底改变工业和消费者体验的许多领域,并且已经成为我们日常生活中熟悉的一部分。

有了 NLP,我们就有了一种利用我们天生就习惯的媒介参与数字未来的有力方式,那就是我们用语言沟通交流的能力。


主要参考

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐