人工智能导论 课件 第15章 自然语言处理_第1页
人工智能导论 课件 第15章 自然语言处理_第2页
人工智能导论 课件 第15章 自然语言处理_第3页
人工智能导论 课件 第15章 自然语言处理_第4页
人工智能导论 课件 第15章 自然语言处理_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第15章自然语言处理

15.1自然语言处理的途径、方法和发展概况

15.2基于规则的自然语言理解

15.3统计语言模型

15.4神经语言模型

延伸学习导引

15.1自然语言处理的途径、方法和发展概况

自然语言处理(NaturalLanguageProcessing,NLP)包括自然语言的理解、分析、综合和生成等。狭义的自然语言处理主要指对文字形态语言的处理,广义的自然语言处理也包括非文字形态语言(如语音、手语等)的处理。在形式语言理论框架下,自然语言处理相继形成了基于规则的形式化机制、基于统计的形式化机制和基于联结的形式化机制,相应地,也就出现了基于规则的方法、基于统计的方法和基于联结的方法等三大方法和流派。

基于规则的方法(理性主义学派)

基于统计的方法(经验主义学派)

基于联结的方法(经验主义学派)

15.2基于规则的自然语言理解

15.2.1简单句理解

例句:Thestudentoperatesthecomputer.

1.理解的实现过程

(1)理解语句中的每一个词。

(2)以这些词为基础组成一个可以表达整个语句意义的结构。

这两步工作又涉及语法分析、语义分析和语用分析。

语法分析

将单词之间的线性次序变换成一个显示单词如何与其他单词相关联的结构。语法分析确定语句是否合乎语法,因为一个不合语法的语句就更难理解。

语义分析

各种意义被赋予由语法分析程序所建立的结构,即在语法结构和任务领域内对象之间进行映射变换。

语用分析为确定真正含义,对表达的结构重新加以解释。

2.语法分析对于自然语言已提出了许多种文法,例如,乔姆斯基(Chomsky)提出的上下文无关文法就是一种常用的文法。一个语言的文法一般用一组文法规则以及非终结符与终结符来定义和描述。下面就是一个英语子集的上下文无关文法:

sentence

∷=

noun-phrase

verb-phrase

noun-phrase

∷=

determiner

noun

verb-phrase

∷=

verb

noun-phrase

|

verb

determiner

∷=the

a

an

noun

∷=man

student

apple

computer

verb

∷=eats

operates例

15-1一个基于上述文法的语法分析程序。

sentence(X):-append(Y,Z,X),noun

phrase(Y),verb

phrase(Z).noun

phrase(X):-append(Y,Z,X),determiner(Y),noun(Z).verb

phrase(X):-append(Y,Z,X),verb(Y),noun_phrase(Z).verb

phrase(X):-verb(X).determiner([the]).noun([H

]):-member(H,[man,student,apple,banana,computer]).verb([H

]):-member(H,[eats,study,programming,operates]).append([],L,L).append([H

T],L,[H

L2]):-append(T,L,L2).member(X,[X

]).member(X,[

T]):-member(X,T).这个程序是先把所给的句子以符号表的形式约束给谓词sentence的变量X,然后对其进行分解和变换。如果最终分解、变换的结果与语言的文法树相符,则证明所给的句子语法正确;否则语法错误。例如,对于句子Thestudentoperatesthecomputer.要用该程序进行语法分析,则应给出询问:?-sentence([the,student,operates,the,computer]).这时,系统则回答:Yes

3.语义分析语义分析就是要识别一个语句所表达的意思。语义分析的方法很多,如运用格文法、语义文法等。这里仅介绍其中的语义文法方法。

所谓语义文法,就是在传统的短语结构文法的基础上,将名词短语、动词短语等不含语义信息的纯语法类别,用所讨论领域的专门类别来代替。下面是一个语义文法的例子:S→PRESENTtheATTRIBUTEofSHIPPRESENT→whatis|canyoutellmeATTRIBUTE→length|classSHIP→theSHIPNAME|CLASSNAMEclassshipSHIPNAME→Huanghe|ChangjiangCLASSNAME→carrier|submarine

15.2.2复合句理解

复合句的理解,就不仅要分析各个简单句,而且要找出句子之间的关系。句子之间关系包括以下几种:(1)相同的事物,例如:

小华有个计算器,小刘想用它。单词“它”和“计算器”指的是同一物体。(2)事物的一部分,例如:

小林穿上她刚买的大衣,发现掉了一个扣子。

“扣子”指的是“刚买的大衣”的一部分。(3)行动的一部分,例如:

王宏去北京出差,他乘早班飞机动身。乘飞机应看成是出差的一部分。

(4)与行动有关的事物,例如:

李明准备骑车去上学,但他骑上车子时,发现车胎没气了。李明的自行车应理解为是与他骑车去上学这一行动有关的事物。(5)因果关系,例如:

今天下雨,所以不能上早操。下雨应理解为是不能上操的原因。(6)计划次序,例如:

小张准备结婚,他决定再找一份工作干。小张对工作感兴趣,应理解为是由于他要结婚,而结婚需要钱而引起的。

“焦点”技术。举例:

接着,把虎钳固定到工作台上。螺栓就放在小塑料袋中。螺栓

“焦点”“行动规划”技术。举例:

小王有点饿。他便向行人打听餐馆在哪里。行动规划:

打听地址→去餐馆→吃饭→不饿

15.2.3转换文法和转换网络1.转换文法转换文法的工作过程是:

先用上下文无关文法建立相应句子的深层结构,然后再应用转换规则将深层结构转换为符合人们习惯的表层结构。图15-3给出了一条把主动句转换为被动句的转换规则。

转换又可分为被动转换、分割转换、疑问转换等等,运用这些转换,转换文法可以将一个句子转换为多种不同的表达形式。例如,对于下面这个简单的主动句:Johnatethebanana.

运用被动转换,得到:ThebananawaseatenbyJohn.

运用分割转换,得到:ItwasJohnwhoatethebanana.

先进行被动转换,再进行分割转换,得到:ItwasthebananathatwaseatenbyJohn.

运用疑问转换,得到:DidJohneatthebanana?2.转换网络转换网络(TransitionNetwork)全称为状态转换网络。它是一种由节点和有向边(弧)组成的有向图。其中节点代表状态,有向弧代表从一个状态到另一个状态的转换。一个转换网络中一般有一个起始节点(代表起始状态),有一个或多个终止节点(代表终止状态)。一般节点用单线圆圈表示,终止节点用双线圆圈表示。

15.3统计语言模型一个句子就是由若干词组成的一个序列。例如:

小明是一个学生。(Xiaomingisastudent.)

设w1,w2,...,wn为n个单词,语句S由词序列w1,w2,...,wn组成,记为S=w1,w2,...,wn(15-1)又设C为一个与语句S属同一语言的语料库。则有P(S)=P(w1,w2,...,wn)(15-2)由概率的乘法公式,又有

P(w1,w2,...,wn)=P(w1)P(w2

w1)P(w3

w1,w2)…P(wn

w1,w2,...,wn-1)(15-3)

设X为从语料库C中取单词值的一个随机变量。则有X(t1)=w1,X(t2)=w2,…,X(tn)=wn随机变量X按时间顺序t1,t2,...,tn在C中取值的过程可以看作是一个随机过程(Stochasticprocess)。进而视为或者假设为一个马尔可夫过程(Markovprocess),或者说马尔可夫链(Markovchain)。于是,有P(w1)P(w2

w1)P(w3

w1,w2)…P(wn

w1,w2,...,wn-1)=

P(w1)P(w2

w1)P(w3

w2)…P(wn

wn-1)于是,(15-3)式就可以简化为

P(w1,w2,...,wn)=P(w1)P(w2

w1)P(w3

w2)…P(wn

wn-1)(15-4)

公式(15-4)也就是语句S的一种数学模型,即

统计语言模型(StatisticalLanguageModel)。

更准确地讲,公式(15-4)所表示的统计语言模型称为二元文法模型(BigramModel)。除了二元模型外,按条件概率中的变量个数,还有三元、四元、...、N元模型。

15.4神经语言模型

15.4.1词元与编码分词,将一个句子切分成一个个具有独立语义的称为词元(token)的语言符号片段,作为后续处理的基本单位。词元主要是单词或子词(一个词的组成部分),也包括其他字符,如标点符号、数学符号、化学符号、表意符号等等。1.one-hot(独热或单热)编码

设有词元表(亦称词表或词典)V={w1,w2,...,w

V

},wi。one-hot编码就是将V中第i个词元wi表示为第i个分量为1而其余分量皆为0的一个

V

维向量:(0…,0,1,0,…0)

这意味着词元wi的one-hot编码向量(记为oi)的维数等于相应词表V的长度

V

。原词表V也就被编码为一个

V

V

矩阵。这些one-hot码向量也就是

V

维实向量空间R

V

的一个

V

维子空间:R(0-1)

{(1,0,…,0),(0,1,0,…,0),(0,0,1,0,…,0),…,(0,0,…,0,1)}2.词嵌入编码

可把一个one-hot码向量看作一个1

V

矩阵,然后与词向量表所形成的

V

m矩阵做矩阵乘法运算,那么由one-hot码向量的特点,所得结果恰好就是相应词元的m维词向量。还需指出,词向量又分为静态词向量和动态词向量。静态词向量就是固定不变的词向量,而动态词向量则是可以随上下文的变化而变化的词向量。显然,后者能更好地适应一词多义的情形。词向量又分为静态词向量和动态词向量。静态词向量就是固定不变的词向量,而动态词向量则是可以随上下文的变化而变化的词向量。

获得词向量的方法仍然是基于神经网络的机器学习。简单来讲,就是将词向量的分量作为神经网络的权重,从而整个词向量表就是一个权矩阵,然后利用相关语料来训练该神经网络,从而得到相应的词向量。这样,一个m维的词向量就含有m个网络模型参数,而整个词向量表就含有

V

m个参数。具体实现时,可以与相应的语言模型集成在一起进行训练,也可以独立训练。在这方面,研究者们已提出了许多模型和算法,并做成学习软件。著名的静态词向量学习软件有Word2Vec、GloVe、FastText等。15.4.2前馈神经网络语言模型1.网络结构与数据流程输入层下面小方块表示所求词元wt前面依次相邻的n

1个词元wt−n+1,…,wt−2,wt−1的one-hot编码向量ot−n+1,…,

ot−2,

ot−1。输入层由n

1组神经元组成,自左向右依次对应m维词向量C(wt−n+1)、…、C(wt−2)、C(wt−1);这些词向量就是相应词元的one-hot编码向量所对应的词向量,这时它们实际上已被拼接成了一个m

(n

1)维向量x了。词向量C(wi)可由词元wi的one-hot编码向量oi与一个由全体词向量所组成的

V

m矩阵(记为黑体C)相乘而得,即C(wi)=oiC(但图中采用了索引方法)。隐层由若干神经元组成。输出层共有

V

个节点,输出向量为一个与下面的one-hot编码向量同维的实数向量。输出向量再经softmax函数做归一化变换后才是最终输出:i-thoutput=P(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论