自然语言处理(NLP)是一种专业分析人类语言的人工智能。(下文皆简称为“NLP”),它的工作原理是这样的:
接收自然语言,这种语言是通过人类的自然使用演变而来的,我们每天都用它来交流转译自然语言,通常是通过基于概率的算法分析自然语言并输出结果
简而言之,这就是一个创建算法的过程。
你使用过苹果公司的人工智能语音助手Siri吗?有没有好奇过Siri是如何理解你说的(大部分的)话的?Siri的工作过程就是自然语言处理在实践中应用的一个鲜活案例。
NLP正在成为我们生活中不可或缺的一部分,其与机器学习、深度学习一起达成的高度远远优于几年前取得的成就。
在本文中我们将深入了解NLP是如何应用、如何工作的。
NLP可以做些什么?
NLP应用广泛,其中包括:
Ⅰ. 机器翻译
你上一次去国外旅行并且使用手机翻译外语是什么时候?可能你用的是谷歌翻译?这种操作是NLP机器翻译的一个日常应用。
机器翻译是通过使用NLP把一种语言翻译成另一种语言。从历史上看,简单的基于规则的方法已经这样做了,但是时至今日,NLP技术是对已经存在多年基于规则的方法的一大改进。
为了使NLP在机器翻译方面做得更好,它使用了深度学习技术。这种形式的机器翻译因为利用了神经网络,所以有时被称为神经机器翻译(NMT)。因此,基于统计、试错等方法翻译语言的NMT能够联系语境翻译语言,处理语言的其他微妙之处。
除了像谷歌翻译这种应用程序,NMT也被使用在非常多商业软件上,例如:
翻译纯文本、网页或文件,如Excel、Powerpoint或者Word。Systran就是这样一家翻译服务公司。实时翻译社交软件回复,SDL Government可以提供相应服务(一家专业做公共部门翻译服务的公司)。在医疗环境下翻译,例如当一名英语语系医生正在给西班牙语病患治疗时,Canopy Speak可以提供帮助。翻译财务文件,如年报、投资评论和信息文件,专门从事财务翻译的公司Lingua Custodia可提供此类服务。Ⅱ. 语音识别
早前,我们提到Siri是NLP的一个著名应用。Siri使用NLP一个非常明显的特征就是语音识别。当然,Alexa和谷歌语音助手同样也是NLP语音识别的著名应用。
语音识别不是一项新的科学技术,距今已有50多年的历史了。直到最近,多亏有了NLP,它的准确性和易用性才有了质的提升。
语音识别的核心是识别口语单词、解释它们并将其转换为文本的能力。然后可以采取一系列行动,如回答问题、执行指示或编写电子邮件。在NLP中使用强大的深度学习的方法使今天的语音识别应用程序比以往任何时候都表现得更出色。
Ⅲ. 聊天机器人
聊天机器人是一种模仿人类对话聊天的程序。第一个聊天机器人Eliza Doolittle出现在20世纪60年代,经过几十年的发展,NLP已经成为创建聊天机器人的基础,尽管这样的系统仍不算完美,但它们可以轻松地处理标准任务。聊天机器人当前可在多种渠道上运行,包括Internet,应用程序和消息传递平台。很多公司用聊天机器人来进行客户服务、售前咨询和售后咨询。
你上次登陆某公司网站使用在线帮助系统时,和你交流的就是他们的客服机器人。
虽然简单的聊天机器人使用基于规则的方法,但如今功能更强的聊天机器人使用NLP来理解客户在说什么以及如何响应。
聊天机器人的著名应用包括:
建立在WhatsApp平台上的世界卫生组织(WHO)聊天机器人,分享关于COVID-19病毒传播的信息并回答问题。《国家地理》(National Geographic)的天才聊天机器人(Genius chatbot),聊天风格像爱因斯坦(Albert Einstein),与用户互动,推广同名的《国家地理》节目。Kian,韩国汽车制造商起亚在FaceBook Messenger上的聊天机器人,回答有关起亚汽车的咨询并帮助销售查询。Whole Foods的聊天机器人,帮助提供配方信息、烹饪灵感和产品推荐。Ⅳ. 情感分析
情感分析是种有趣的NLP和数据挖掘任务,对文本数据中包含的情绪进行解析和分类,衡量人们的观点倾向。例如被用来分析观众对电影的评论或由该电影引起的情绪状态,又例如将在线客户对产品或服务的反馈按照正面或负面的体验进行分类。
情感分析最简单的形式是,根据传达情感的特定词语,如“爱”、“恨”、“高兴”、“伤心”或“生气”,对文本进行分类。这种情绪分析方法已经存在了很长时间,但由于其简单性,实际应用非常有限。
今天的情感分析使用基于统计和深度学习方法的NLP对文本进行分类。其结果就是能够处理复杂的、自然发音的文本。
如今,世界各地的企业都对情感分析非常感兴趣。因为其可以在客户偏好、满意度和意见反馈等方面提供有助于市场活动和产品设计的数据。
Ⅴ. 电子邮件分类
电子邮件过载是现代职场常见的难题。NLP可以协助分析和分类收到的电子邮件,以便它们可以自动转发到正确的收件方。
曾经,人们使用简单的关键词匹配技术对电子邮件进行分类。这种做法成败参半。NLP可以更好的进行分类,因为它可以理解整个句子、段落和文本的文本中的上下文。
鉴于当今企业必须处理的电子邮件数量庞大,基于NLP的电子邮件分类可以极大地提高工作效率。使用NLP进行分类有助于确保邮件不会被遗忘在负担过重的收件箱中,还可以适当地归档以备进一步处理。
NLP是如何工作的?
现在我们已经了解了NLP是如何应用的,接下来,我们来看一看它是如何工作的。
本质上,NLP是通过将一组文本信息转换成指定的输出数据来工作的。
如果应用程序是机器翻译,那么输入的文本信息将是源语言(比如英语)的文档,输出将是目标语言(比如法语)的翻译文档;如果应用程序是情感分析,则输出的是将输入文本分类转换为情感类别;诸如此类。
NLP工作流
现代NLP是一门融合了语言学、计算机科学和机器学习的混合学科。NLP使用的过程或工作流有以下三个主要步骤:
1. 文本预处理
2. 文本表示
3. 分析和建模
每一步都可能使用一系列技术,这些技术随着研究的深入而不断发展。
第一步:文本预处理
首先准备输入文本,以便更容易地分析。这部分的NLP在借鉴了一系列传统语言方法的基础上,已经很好的建立起来了。
在这个步骤中使用的一些关键方法是:
标记法——将文本分解成有用的单位(标记),例如,使用空格分隔单词,或者使用句号分隔句子。标记法也能识别经常连在一起的单词,比如“New York”或“machine learning”。例如,将“Customer service couldn 't be better.”这句话进行标记,会产生以下标签:“Customer service”、“could”、“not”、“be”和“better”。
标准化——使用词干提取和词形还原等技术将单词转换为基本形式。这样做是为了帮助减少干扰和简化分析。词干分析通过删除后缀来识别单词的词干。例如,“研究”一词的词干是“studi”。类似地,词元化除去后缀,必要时也除去前缀,从而产生通常在自然语言中使用的单词。例如,“studies”一词真正的词形还原就是“study”。在大多数应用程序中,由于产生的单词在自然语言中有更多的意义,所以词形还原比词干提取更为可取。
词性标注(POS)——利用词法,或研究词与词之间的关系。单词(或标记)是根据它们在句子中的功能来标记的。这是通过使用文本语料库中的既定规则来识别单词在言语中的目的,即动词、名词、形容词等。
句法分析——利用句法或分析单词和句子如何组合在一起,有助于理解句子的结构,并根据语法规则将句子分解成短语来实现。一个短语可以包含一个名词和一个冠词,比如“我的兔子”,或者一个动词,比如“喜欢吃胡萝卜”。
语义分析——是指句子中使用的词语的预期意义。单词可以有不止一种意思。例如,“pass”可以意味着(i)把某件物品交给别人,(ii)决定不参加某件事,或(iii)考试合格。通过观察目标词前后出现的单词,可以更好地理解目标词的意思。
第二步:文本表示
为了使用机器学习和深度学习方法分析文本,需要将文本转换为数字。这就是文本表示的目的。在此步骤中使用的一些关键方法包括:
①. 词袋模型
词袋模型(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,我们就有了一种利用我们天生就习惯的媒介参与数字未来的有力方式,那就是我们用语言沟通交流的能力。
(来源:Medium 编译:ODRobots 作者:Giri Rabindranath)