语义计算的任务:解释自然语言句子或篇章各部分(词、词组、句子、段落、篇章)的含义。自然语言句子中存在大量的歧义,涉及指代、同义/多义、量词的辖域、隐喻等;
语义理论简介
- 词的指称作为意义:该理论认为,词或词组的意义就是它们在现实世界上所指的事物。那么计算语义学的任务就是将词或词组与世界模型中的物体对应起来。常用的现实世界模型假设世界上存在各种物体,包括人。对于复杂的问题这种定义无法处理。
- 心理图像、大脑图像或思想作为意义:该理论认为,词或词组的意义就是词或词组在人心理上或大脑中所产生的图像。在计算机中把心理图像有效地表示出来并不是一件容易的事情,而且,不一定所有的词义都有清晰的心理图像。
- 说话者的意图作为意义:该理论试图解释语言中一种被称为言语行为(Speech Acts) 的现象。意图的定义、划分和表示是困难的。
- 过程语义:该理论认为,句子的语义定义为接受该句后所执行的程序或者所采取的某种动作。简单明了,对于计算机智能应用系统来说,这种定义在某种程度上是有效的。对于语言本身缺乏解释,且句子的语义与应用之间的连接过于紧密,缺乏独立性。
- 词汇分解学派:该理论把句子的语义基于它所含有的词和词组的意义之上,而词的意义则基于一组有限特征,这组特征通常称为语义基元。这样,只要给出一组语义基元和一些操作符,就可以把句子的语义描述出来。类似于化学中的元素学说。语义基元的定义、分解标准等难以把握,基元和组合操作的合理性直接影响句子语义描写的准确性,而且如何定义“操作”也是个困难的问题。
- 条件真理模型:该理论以谓词逻辑为基础,句子的语义定义为它所对应的命题或谓词在全体模型(或世界)中的真伪。例如:“雪是白的”为真,当且仅当在这个世界上雪是白的。
- 情景语义学:该理论认为句子的语义不仅和逻辑意义有关,而且与句子被使用的场景有关。在语义表达式中引入一些与场景相关的变量,如事件变量、时间变量等,并用逻辑“与”算子对这些变量加以限制。
- 模态逻辑:起源于20世纪80年代初,AI。如:缺省逻辑、时态逻辑、真值维护系统等。这类逻辑是试图用一套公理系统来刻画现实世界和自然语言中常见的一些现象。“公理系统”总是刻画世界普遍成立的一般性真理,难以涵盖特殊情况下的特殊事实。
格语法
C. J. Fillmore 指出:诸如主语、宾语等语法关系实际上都是表层结构上的概念,在语言的底层,所需要的不是这些表层的语法关系,而是用施事、受事、工具、受益等概念所表示的句法语义关系。这些句法语义关系,经各种变换之后才在表层结构中成为主语或宾语。格语法的三条基本规则:
- S = M + P S=M+P S=M+P
句子 S 可以改写成情态(Modality)和命题(Proposition) 两大部分,情态部分包括否定、时、式、体以及其他被理解为全句情态成分的状语。命题牵涉到动词和名词短语、动词和内嵌小句之间的关系,动词是句子的中心,名词短语按其特定的格属关系依附于该动词。 - P → V + C 1 + C 2 + ⋯ C n P\rightarrow V + C_1+C_2 + \cdots C_n P→V+C1+C2+⋯Cn
命题 P 都可以改写成一个动词 V 和若干个格 C 。动词是广义上的动词,包括:动词、形容词、甚至包括名词、副词和连词。 - C → K + N P C\rightarrow K + NP C→K+NP
K 为格标,是各种格范畴在底层结构中的标记,可以有各种标记形式,如:前置词、后缀词、词缀、零形式等。
格语法中的格是“深层格”,它是指句子中体词(名词、代词等)和谓词(动词、形容词等) 之间的及物性关系(transitivity),如:动作和施事者的关系、动作和受事者的关系等,这些关系是语义关系,它是一切语言中普遍存在的现象。命题中的格包括6种:
- 施事格(Agentive):动作的发生者。
- 工具格(Instrumental):对动作或状态而言作为某种因素而牵涉到的无生命的力量或客体。
- 承受格(Dative):由动词确定的动作或状态所影响的有生物,例如he is tall里面的he
- 使成格(Factitive):由动词确定的动作或状态所形成的客体或有生物。或理解为:动词意义的一部分的客体或有生物。如:John dreamed about Mary里面的a dream.
- 方位格(Locative):由动词确定的动作或状态的处所或空间方位。如:He is in the house里面的house
- 客体格(Objective):由动词确定的动作或状态所影响的事物。如:He bought a book里面的a book.
分析的基础如下:
- 对于动词:规定它们所属的必备格、可选格或禁用格,同时填充这些格的名词的语义条件。
- 对于名词:填充语义信息,建立名词语义分类体系。
分析步骤:
- 判断待分析词序列中主要动词,在动词词典中找出该词的格框架。
- 识别必备格:如果格带有位置标志,则从指定位置查找格的填充物;如果格带有语法标志,则在这个分析的词序列中查找语法标志,进入相应的填充; 如果格框架还需要其它必备格,查找其它名词的语义信息,按格框架的语义信息要求进行相应的填充。
- 识别可选格。
- 判断句子的情态 Modal。
语义网络
语义网络通过由概念和语义关系组成的有向图来表达知识、描述语义。
有向图:图的节点表示概念,图的边表示概念之间的关系,例如“是一种”和“是部分”等等,IS-A,PART-OF,IS,COMPOSED-OF,HAVE,BEFORE,LOCATED-ON,事件的语义关系包括分类关系也就是事物之间的类属关系、聚焦关系,也就是多个下位概念构成一个上位概念、推论关系,也就是由一个概念推出另一个概念、时间位置关系,也就是事实发生或存在的事件、位置
知识图谱是一个描述实体和实体之间关系的有向图
词义消歧
词义消歧问题(word sense disambiguation, WSD)
有监督的词义消歧方法
总体思路:通过建立分类器,利用划分多义词的上下文类别的方法来区分多义词的词义。
基于互信息的消歧方法 (Brown et al., 1991)
基本思想:假设我们有一个双语对齐的平行语料库, 以法语和英语为例,通过词语对齐模型每个法语单词可以找到对应的英语单词,一个多义的法语单词在不同的上下文中对应多种不同的英语翻译。
可以把一个多义的法语单词的英语译词看作是这个法语单词的语义解释,而决定法语多义词语义的条件看作是语义指示(indicator),如:例子中法语单词 prendre 所带的宾语。因此,只要我们知道了 多义词的语义指示器,也就确定了该词在特定上下文中的语义。这样,多义词的词义消歧问题就变成了语义指示器的分类问题。假设 T 1 , T 2 , ⋯ , T m T_1,T_2,\cdots,T_m T1,T2,⋯,Tm是一个多义法语词的英语译文或语义, V 1 , V 2 , ⋯ , V n V_1,V_2,\cdots,V_n V1,V2,⋯,Vn是指示器可能的取值
- 随机的将 T 1 , T 2 , ⋯ , T m T_1,T_2,\cdots,T_m T1,T2,⋯,Tm划分为两个集合 P = { P 1 , P 2 } P = \{P_1,P_2\} P={P1,P2}
- 执行如下循环:
找到 V 1 , V 2 , ⋯ , V n V_1,V_2,\cdots,V_n V1,V2,⋯,Vn的一种划分 Q = { Q 1 , Q 2 } Q = \{Q_1,Q_2\} Q={Q1,Q2}使得 Q i Q_i Qi与 P i P_i Pi之间的互信息最大
找到一种改进的划分 P ′ P' P′,使 P ′ P' P′与 Q Q Q的互信息最大
一旦指示器的取值划分确定了,词义消解就变成了如下简单的过程:也就是根据上下文确定词义
- 对于出现的歧义词确定其指示器值 V i V_i Vi
- 如果 V i V_i Vi在 Q 1 Q_1 Q1中,指示该歧义词为语义1,如果在 Q 2 Q_2 Q2中,指示其语义为语义2
基于贝叶斯分类器的上下文分类消歧方法
假设某个多义词 w w w所处的上下文语境为 C C C,如果某个多义词 w w w的多个语义记作 s i , i ≥ 2 s_i,i\geq 2 si,i≥2,那么可通过计算 a r g m a x s i p ( s i ∣ C ) \mathop{arg\ max}\limits_{s_i} p(s_i|C) siarg maxp(si∣C)确定 w w w的词义,根据贝叶斯公式:
p ( s i ∣ C ) = p ( s i ) × p ( C ∣ s i ) p ( C ) p(s_i|C) = \frac{p(s_i)\times p(C|s_i)}{p(C)} p(si∣C)=p(C)p(si)×p(C∣si)
考虑分母的不不变性,并运用如下独立性假设:
p ( C ∣ s i ) = ∏ v k ∈ C p ( v k ∣ s i ) p(C|s_i) = \prod_{v_k\in C}p(v_k|s_i) p(C∣si)=vk∈C∏p(vk∣si)
因此:
s ^ i = a r g m a x s i [ p ( s i ) ∏ v k ∈ C p ( v k ∣ s i ) ] \hat s_i = \mathop{arg\ max}\limits_{s_i}\left[p(s_i)\prod_{v_k\in C}p(v_k|s_i)\right] s^i=siarg max[p(si)vk∈C∏p(vk∣si)]
概率 p ( v k ∣ s i ) , p ( s i ) p(v_k|s_i),p(s_i) p(vk∣si),p(si)都可以用最大似然估计求得
p ( v k ∣ s i ) = N ( v k , s i ) N ( s i ) p(v_k|s_i)= \frac{N(v_k,s_i)}{N(s_i)} p(vk∣si)=N(si)N(vk,si)
其中, N ( s i ) N(s_i) N(si)是在训练数据中词 w w w用于语义 s i s_i si时的次数,而 N ( v k , s i ) N(v_k,s_i) N(vk,si)为 w w w用于语义 s i s_i si时词 v k v_k vk出现在 w w w的上下文中的次数
p ( s i ) = N ( s i ) N ( w ) p(s_i) = \frac{N(s_i)}{N(w)} p(si)=N(w)N(si)
N ( w ) N(w) N(w)为多义词 w w w在训练数据中出现的总次数
基于最大熵的上下文分类消歧方法
在只掌握关于未知分布的部分知识的情况下,符合已知知识的概率分布可能有多个,但使熵值最大的概率分布最真实地反映了事件的分布情况,因为熵定义了随机变量的不确定性,当熵最大时,随机变量最不确定。也就是说,在已知部分知识的前提下,关于未知分布最合理的推断应该是符合已知知识最不确定或最大随机的推断。
对于求解的问题,就是估计在条件 b ∈ B b\in B b∈B下(已知知识),发生某个事件(未知分布)的概率 p ( a ∣ b ) p(a|b) p(a∣b),该概率使熵 H ( p ( A ∣ B ) ) H(p(A|B)) H(p(A∣B))最大:
p ∗ ( a ∣ b ) = 1 Z ( b ) e x p ( ∑ j = 1 l λ j ⋅ f j ( a , b ) ) p^*(a|b) = \frac{1}{Z(b)}exp(\sum_{j = 1}^l\lambda_j\cdot f_j(a,b)) p∗(a∣b)=Z(b)1exp(j=1∑lλj⋅fj(a,b))
其中 Z ( b ) = ∑ a e x p ( ∑ j = 1 l λ j ⋅ f j ( a , b ) ) Z(b) = \sum_aexp(\sum_{j = 1}^l\lambda_j\cdot f_j(a,b)) Z(b)=∑aexp(∑j=1lλj⋅fj(a,b)), λ j \lambda_j λj是特征权重, f j ( a , b ) f_j(a,b) fj(a,b)是特征函数, l = k + 1 , k l = k+1,k l=k+1,k是特征的个数,其中获取 λ \lambda λ参数的GIS算法如下,设 A 为某一多义词所有义项的集合,B为所有上下文的集合,可定义 { 0 , 1 } \{0, 1\} {0,1}域上的二值函数 f ( a , b ) f(a, b) f(a,b) 来表示上下文条件与义项之间的关系 ,上下文条件包括词性信息、词性信息和两种信息综合,这个也就是特征函数,可以是上下文满足条件下取1,其余取0这种特征函数,算法迭代过程中要求对应训练集中每个实例的任意 ( a , b ) ∈ A × B (a,b)\in A\times B (a,b)∈A×B, k k k个特征函数之和为一常数 C C C,即 ∑ j = 1 k f j ( a , b ) = C \sum_{j = 1}^kf_j(a,b) = C ∑j=1kfj(a,b)=C,假如该条件不满足,那么取 C = m a x a ∈ A , b ∈ B ∑ j = 1 k f j ( a , b ) C = \mathop{max}\limits_{a\in A,b\in B}\sum_{j = 1}^kf_j(a,b) C=a∈A,b∈Bmax∑j=1kfj(a,b),并增加一个修正特征 f l : f l ( a , b ) = C − ∑ j = 1 k f j ( a , b ) f_l:f_l(a,b) = C - \sum_{j = 1}^kf_j(a,b) fl:fl(a,b)=C−∑j=1kfj(a,b):
- 初始化: λ [ 1 ⋯ l ] = 0 \lambda[1\cdots l] = 0 λ[1⋯l]=0
- 计算每一个特征函数 f j f_j fj的训练样本期望值 E p ~ ( f j ) E_{\tilde p}(f_j) Ep~(fj)
- 迭代计算特征函数的模型期望值 E p ( f j ) E_p(f_j) Ep(fj),利用上面的公式,计算 p ∗ p^* p∗,若满足终止条件,则结束迭代,否则修正 λ : λ ( n + 1 ) = λ ( n ) + 1 C ln ( E p ~ ( f j ) E p ( n ) ( f j ) ) \lambda:\lambda^{(n + 1)} = \lambda^{(n)} + \frac1C\ln\left(\frac{E_{\tilde p}(f_j)}{E_{p^{(n)}}(f_j)}\right) λ:λ(n+1)=λ(n)+C1ln(Ep(n)(fj)Ep~(fj)),继续下轮迭代
- 算法结束,确定 λ \lambda λ,算出每个 p ∗ p^* p∗
在学习过程中,首先有一个已标注的大规模训练样本,之后经过特征提取和筛选,选择特征模板,进行参数训练得到模型参数文件,在推理的过程中需要进行特征提取和选择特征模板,之后进行比对决策完成语义标记
基于词典的词义消歧方法
- 基于语义定义的消歧:词典中词条本身的定义作为判断其语义的条件。例如,cone 在词典中有两个定义:一个是指 “松树的球果”,另一个是指“用于盛放其他东西的锥形物,比如,盛放冰激凌的锥形薄饼”。如果在文本中,“树(tree)” 或者 “冰(ice)”分别与cone同现时,cone的语义就可以确定了,tree对应cone的语义1,ice 对应cone的语义2。
- 基于义类辞典(thesaurus) 的消歧:多义词的不同义项在使用时往往具有不同的上下文语义类,即通过上下文的语义范畴可以判断多义 词的使用义项。例如,crane 的两个词义“鹤”和“起重机”分别属于语义类“ANIMAL”和“MACHINERY”。不同的语义类往往具有不同的上下文语境,如经常表示“ANIMAL”语义类的共现词为“species, family, eat”等,而表示“MACHINE”语义类的共现词则为“tool, engine, blade”等。因此只要确定多义词的上下文词的义类范畴,就可确定多义词的词义。
- 基于双语词典的消歧:需要消歧的语言称为第一语言,把需要借助的另一种语言称为第二语言。建立多义词 x 与相关词 y 之间的搭配关系,然后,在第二种语言的语料库中统计对应 x 不同词义的翻译与相关词 y 的翻译同现的次数,同现次数高的搭配对应的义项即为消歧后的词义。例如:单词 plant 有两个含义:“植物” 和 “工厂”。当对 plant 进行词义消歧时,需要首先识别出含有 plant 的短语,如:manufacturing plant,然后,在汉语语料库中搜索与这个短语对应的汉语短语实例,由于manufacturing 的汉语翻译“制造”只和“工厂”共现, 因此,可以确定在这个短语中plant 的词义为“工厂”。而短语 plant life 在汉语翻译中,“生命(life)”与“植物”共现的机会更多,因此,可以确定在短语 plant life 中plant 的词义为“植物”。
- Yarowsky 消歧算法:基本思想:基于词典的词义消歧算法都是分别处理每个出现的歧义词,且对歧义词有两个限制:每篇文本只有一个意义:在任意给定的文本中,目标词的词义具有高度的一致性;每个搭配只有一个意义:目标词和周围词之间的相对距离、词序和句法关系,为目标词的意义提供了很强的一致性的词义消歧线索。
无监督的词义消歧方法
对参数的估计不是根据有标注的训练语料,而是在无标注的语料上进行,开始时随机地初始化参数,然后根据EM算法重新估计该概率值。
语义角色标注semantic role labeling, SRL
基本任务:以句子为分析单位,以句子中的谓词为核心,分析句子中的其他成分与谓词之间的关系。主要用于信息抽取、自动文摘、机器翻译等
用于SRL研究的主要资源
- 框架网(FrameNet)
- 英语命题库(Proposition Bank, PropBank)
- 英语名词命题库(NomBank)
- Chinese PropBank (CPB)
- Chinese NomBank
例如命题库将宾州树库(Treebank)中的《华尔街日报》语料和一部分布朗语料(Brown Corpus)进行了人工的语义角色标注。与具体谓词直接相关的,这些角色用ARG0,ARG1,…,ARG5表示,如ARG0 通常表示动作的施事,ARG1通常表示动作的影响等,ARG2-ARG5 对于不同的谓语动词会有不同的语义含义;起修饰作用的辅助性角色,其角色标签都以ARGM开头,常见的有表示时间的角色ARGM-TMP,表示地理位置的角色ARGM-LOC,表示一般性修饰成分的角色ARGM-ADV等。语义角色标注一般是在句法分析的基础上进行的。
语义角色标注的基本流程
首先给定句子到句法分析器得到句法分析结果,之后完成候选论元剪除以尽量减少候选项的数目,之后进行论元识别,这一步是识别真正的论元,是一个两类分类问题,之后进行论元标注,这个过程是一个多类分类问题,然后进行后处理,删除重复论元,得到SRL结果。
基于短语结构句法分析的SRL方法
候选论元剪枝:
第1步:将谓词作为当前节点,依次考察它的兄弟节点:如果一个兄弟节点和当前节点在句法结构上不是并列的(coordinated)关系,则将它作为候选项。如果该兄弟节点的句法标签是PP,将它的所有子节点也都作为候选项。
第2步:将当前节点的父节点设为当前节点,重复第1步的操作,直至当前节点是句法树的根节点。
基于依存关系的SRL方法
与基于短语结构句法分析的SRL方法的区别:
基于短语结构句法分析的语义角色标注方法中,一个论元被表示为连续的几个词(短语)和一个语义角色标签。在基于依存句法分析的语义角色标注中一个论元被表示为一个中心词和一个语义角色标签
候选论元剪除方法:
第1步:将谓词作为当前节点,将它所有的孩子都作为候选项;
第2步:将当前节点设为它的父节点,重复第1步的操作,直到当前节点是依存句法树的根节点。