第9.1节 自然语言处理介绍
各位朋友大家好,欢迎来到月来客栈,我是掌柜空字符。
本期推送内容目录如下,如果本期内容对你有所帮助,欢迎点赞、转发支持掌柜!
9.1 自然语言处理介绍 9.1.1 语言模型 9.1.2 基于规则的语言模型 9.1.3 基于统计的语言模型 9.1.4 基于神经网络的语言模型 9.1.5 小结 引用
在前面两章内容中我们已经初步接触了与文本处理相关的任务模型,例如第7.2节和第8.1节中介绍的文本分类任务、第7.6节中介绍的文本生成任务以及后续将会介绍到的机器翻译、问答模型和命名体识别任务等,而这些任务场景在人工智能领域也有一个特定的称谓——自然语言处理(Natural Language Processing, NLP)。自然语言处理是人工智能的一个子领域,它涉及计算机对人类自然语言的理解和生成,即自然语言理解(Natural Language Understanding, NLU)和自然语言生成(Natural Language Generation, NLG),其目标是使计算机能够理解、分析、生成语言并且能够实现与人类语言进行交互。
在本章内容中,笔者将会以整个自然语言处理的发展路线为主干来梳理其中几项关键技术出现的动机和相关原理。
9.1 自然语言处理介绍
自然语言处理起源于 20 世纪 50 年代。 早在 1950 年,计算机科学与人工智能之父艾伦·图灵(Alan Turing)就发表了一篇名为“计算机器与智能”的文章,并提出了著名的图灵测试,即一个是正常思维的人(代号B)、一个是机器(代号A),如果经过若干询问以后C不能得出实质的区别来分辨A与B的不同,则此机器B通过图灵测试[1]。
可以看出,如果需要实现机器和人类的交互,那么首先需要实现的便是机器对于人类自然语言的理解,因此一般认为自然语言处理的历史可以追溯到那个时候,至今已经过去了70多年[2]。
从自然语言处理整个技术路线的发展来看大致可以分为3个阶段:20世纪50年代至20世纪90年代早期主要是基于规则的语言模型,20世纪90年代至21世纪早期主要是基于统计的语言模型,21世纪早期到现在主要是基于神经网络的语言模型 [3]。
9.1.1 语言模型
自然语言处理的本质是理解并生成语言,而对于计算机来说理解的本质便是根据语料训练得到文本序列的概率分布 [4]。因此,所谓语言模型便是根据给定文本序列来估计序列的联合概率,即对于任意长度为的序列来说,语言模型的目的便是用来估计联合概率,如式(9.1)所示[4] [5] [6]
其中等式右边的条件概率便是根据语料训练得到的语言模型。
语言模型可以用来衡量一个句子或文本序列在语言中的合理性或流畅度,因此广泛应用于自动语音识别、机器翻译、文本生成和文本补全等自然语言处理任务中,例如常见的搜索引擎关键词联想功能,如图9-2所示。
在图9-2中,我们输入序列“Natural Language”之后,搜索引擎便自动给出了若干种(这里只给出了前3种)可能的联想结果,而这一过程便可以通过分别计算各个序列对应的联合概率再以概率降序排序得到[5]。例如对于图9-2中这3种情况来说,其联合该分别为
其中分别指Natural、Language、processing、inference和understanding这5个单词。
为你认可的知识付费,欢迎订阅本专栏阅读更多优质内容!