法律状态公告日
法律状态信息
法律状态
2017-09-01
未缴年费专利权终止 IPC(主分类):G06F17/27 授权公告日:20130508 终止日期:20160718 申请日:20110718
专利权的终止
2013-05-08
授权
授权
2012-02-22
实质审查的生效 IPC(主分类):G06F17/27 申请日:20110718
实质审查的生效
2012-01-04
公开
公开
技术领域
本发明提出了基于语义词典的词语消歧方法,所提出的方法利用对词语概念相关度的计算,实现自动文本摘要的预处理工作——词语消歧,属于语义技术领域。
背景技术
语义词典的开发基于三个主要假设:一是可分离性假设,也就是语言的词汇成分是可以通过一定的方法离析提炼出来并专门针对它们进行研究,二是可模式化假设,一个人不可能掌握他所运用语言所需的所有词汇,除非他能够利用词义之间已经存在的系统的模式和关系,三是广泛性假设,也就是计算语言学如果真如人那样处理自然语言就必须要像人那样尽可能多的存储词汇知识。语义词典利用上述的三个假设,也就是英语语言特点将英语词典提升到了语义高度[1]。语义词典是以同义词集合作为基本构建单位,根据同义词集合所表达的概念之间的语义关系组织起来语义关系图,它允许使用者从不同的途径去访问词典信息。语义词典跟传统的词典相似的地方是它给出了同义词集合的定义以及例句。
词义是指一个词所具有的意义,词义消歧是一个重要的语义技术,它是自然语言问答系统、指代消解、机器翻译等的必要组成部分。基于它的目标就是在某个特定的上下文中,确定每个多义词在该上下文中特定义项的过程[2],词义消歧可以说是一种纯粹的语义技术。但作为一种规则,这种技术需要语言处理器作为基础,因为如果不将一个文本分割成一系列词、句子和固定表达,不知道它是否是名词或者动词,要在上下文环境里确定一个词的含义会非常困难。词义消歧一直是自然语言处理领域的难题之一。它的研究从上世纪50年代初期开始机器翻译研究以后,就一直受到人们的关注。词义消歧任务本身是一个中间任务,是大多数自然语言处理任务的一个重要的中间层次,在自然语言处理中有广泛的用途。
当前词语消歧主要通过基于语义词典概念组织方式的词语相关度和基于语义词典概念释义的词语相关度来实现,基于语义词典概念组织方式的词语相关度对概念相关性的度量不够充分,相关度指标更多地反映概念之间的相似性,而词语消歧要考虑上下文词语间的相关性[3],基于语义词典概念释义的词语相关度从概念本身、概念的同义词、概念释义[4]、概念的扩展释义[5]和扩展同义词集合角度出发,利用概念之 间的相关关系,选取词语的最佳词义和最佳词义组合,实现基于上下文的词语消歧。
1.A.Budanitsky,G.Hirst.Evaluating WordNet-based Measures of Lexical Semantic Relatedness,32(1):13~47,Computational Linguistics,2006.
2.黄昌宁,夏莹语言信息处理专论.北京:清华大学出版社,1996.78一101
3.张燕飞编著.信息组织的主题语言.武汉大学出版社.2005.11
4.S.Banerjee,T.Pedersen.An adapted Lesk algorithm for word sense disambiguation using Word-Net,2002.
5.S.Banerjee,T.Pedersen.Extended gloss overlaps as a measure of semantic relatedness,2003.
发明内容
技术问题:本发明的目的是提供一种基于语义词典的词语消歧的实现方法,以往词语消歧主要通过基于语义词典概念组织方式的词语相关度来实现消歧,对概念之间的相关性度量不够。本发明的目的是从概念的相关性出发,综合考虑概念本身,概念释义,概念的同义词,概念的扩展概念,扩展概念同义词之间的关系,从词语的相关度和句子的连贯度出发,利用回溯法选取词语的最佳词义,实现基于上下文的词语消歧。
技术方案:本发明结合单词的概念释义、概念的同义词集合、扩展释义和扩展同义词集合,从概念之间的相关性和句子的连贯度出发,选取最佳词义组合,从而达到基于上下文的词语消歧的目的。
本发明的基于语义词典的词语消歧方法主要分为以下步骤:
一、获取文本集中句子列表L:
步骤11)由计算机读入已程序化的文本集合D;
步骤12)利用分词组件对文本集合D中的每个文本分词,得到标注后的文本集合,记为D1,
步骤13)读入文本集D1,
步骤14)对其中一个文本文件进行处理,读取的句子逐行放入句子列表L中;
二、分割文本集中的词和词性标注,用语义词典数据库查找每个单词的释义,同义词集合,扩展释义和扩展同义词集合:
步骤21)读入虚词表和句子列表中的第一个句子,将句子中的每个单词和虚词表作比较,剔除句子中的虚词;
步骤22)将由步骤1)得到的句子按句子中逗号、冒号、分号、句号等标点符号 分割句子;
步骤23)读入由步骤22)分割后的第一个句子,读到斜杠,将斜杠前的单词和斜杠后的词性依次放在wordPos[i],i=0,1.....n,,i为偶数时数组存放的是单词;
步骤24)将数组中单词取出放入sentenceWords中,判定sentenceWords长度;
步骤241)如果长度不大于11,则转步骤25);
步骤242)如果长度大于11,按长度11重新找分割点,分割完后,转步骤25);
步骤25)读入语义词典和分割后句子的第一个单词,查找该词在语义词典中不同词性下的词义个数,确定单词的词性:
步骤251)如果文本中该单词的词性没有被标记或者标记有错,标记有错指的是语义词典中没有找到该单词的这种词性,在这些情况下,就以语义词典中该单词的词义数最多的词性作为它的词性;
步骤252)如果标记正确,单词就用它标记的词性;
步骤253)如果语义词典数据库中没有该单词,就不对其进行消歧;
步骤26)由步骤25)确定词性后,利用语义词典数据库查找该单词的同义词和的释义,即概念;
步骤25)用语义词典查找数据库与步骤26)确定的各个概念具有直接语义关系的概念的释义,即扩展释义和扩展释义的同义词集合;
步骤26)重复步骤25)到步骤27),直至找完句子中每个单词;
三、利用回溯法实现基于上下文的语义消歧:
步骤31)读入由步骤22)分割后第一个句子的第一个单词,将该单词的不同词义依次放入堆栈中;选中栈顶元素并出栈,将该栈顶元素记为W00,表示第0个单词的第0个词义,此时,score[0]=0,作为第0个单词的相关度;
步骤32)将第二个单词的不同词义依次放入堆栈中;
步骤33)选中栈顶元素并出栈,将该栈顶元素记为W10;
步骤34)计算W00和W10之间的相关度,如公式(1):
其中Gloss(si)是单词si的释义;Gloss(rij))是概念rij的释义,包含rij的同义词集合中的词、描述中的词和例句中的词;Syn(si)是单词si的同义词;Syn(rij)是概念rij的同义词集合;s1,s2是句子中两个不同的单词;i是单词s1确定词性后的词义个数,j是单词s2确定词性后的词义个数;Wg,Wrg,Wr分别是重合度Gloss(s1)∩Syn(s2)、Gloss(s1)∩Syn(r2j)、Gloss(r1i)∩Syn(r2j)的权重;
步骤35)计算W10与W00之间相关度,记为score[1]:
score[1]=score[0]+scorecube[1][0][0][0] 公式(2)
其中scorecube[1][0][0][0]是指句子中第1个单词的第0个词义与第0个单词的第0个词义的相关度;
步骤36)将第三个单词的不同词义依次放入堆栈中;
步骤37)选中栈顶元素并出栈,将其记为W20;
步骤38)计算W20与前两个单词的第0个词义W10、W00之间的相关度总和:
score[2]=score[1]+scorecube[2][0][1][0]+scorecube[2][0][0][0] 公式(3)
步骤39)对句子中剩下的单词重复步骤36)到步骤38),计算相关度总和时只考虑所求单词与其前两单词之间的相关度;这样就可以得到一个句子中所有单词的第0个词义与其前面两个单词的第0个词义之间的相关度总和,相当于状态空间树中第一条分支上的相关度总和;
步骤310)此时,栈顶元素为最后一个单词的第1个词义,选中并出栈;
步骤311)在步骤39)得到的相关度总和基础上,通过减掉最后一个单词的第0个词义与其前两个单词的第0个词义之间的相关度,然后加上其第1个词义与前两个单词的第0个词义之间的相关度,相当于状态空间树中第二条分支上的相关度总和;
步骤312)依次对栈顶元素作类似于步骤310)及步骤311)操作,就可以得到整个状态空间树所有分支的相关度总和;
步骤313)再考察句子的连贯度,即单词之间的最大相关度,句子的连贯度计算如公式(4):
公式(4)
其中S为句子,wi是句子S中的单词,wj是紧接wi前面的两个单词,即为wi-1、wi-2,假设句子中的单词w只跟其前面的2k个单词有语义相关性,那么称这2k个单 词为w的上下文,表示为Context(w);
步骤314)选择相关度总和最大的那条分支,该分支上单词的词义就是经过消歧的最佳词义,到此完成分割后的第一个句子的消歧;
步骤315)读入分割后的第二个句子,转到步骤23),完成消歧,直至完成第一个句子的全部消歧;
步骤316)读入句子列表中第二个句子,转到步骤21),完成所有句子的消歧。
有益效果:本发明方法综合了单词的概念释义、概念的同义词集合、概念的扩展释义和扩展同义词集合,利用文本中概念的相关性和句子的连贯性,实现基于上下文的词语消歧。通过使用本发明的方法,能够提高语义消歧的准确率和召回率,提高词语消歧效率。
附图说明
图1语义消歧的流程图。
图2句子连贯度示意图,其中,图示单词是按照其在句子中位置排序,每条有向弧表示单词之间的相关度,仅考虑单词与其前两个单词之间的相关度。
具体实施方式
基于概念之间的相关性,借助语义词典,实现基于上下文的语义消歧。其中详细的步骤如下:
一、获取文本集中句子列表:
步骤11)读入文本集D;
步骤12)利用分词组件对文本集合D中的每个文本分词,得到标注后的文本格式word1/pos1 word2/pos2 word3/pos3,记为D1。
步骤13)读入文本集D1,对其中一个文本文件进行处理;
步骤14)将文本中的引用句转化为普通句,即将引用句的引号去掉;
步骤15)读取文本中的每一个句子:读到句号、问号或感叹号就为一个句子,将读取的句子逐行放入句子列表中;
二、分割文本集中的词和词性标注,用语义词典查找每个单词的释义,同义词集合,扩展释义和扩展同义词集合:
步骤21)读入虚词表和句子列表中的第一个句子,将句子中的每个单词和虚词表作比较,剔除句子中的虚词;
步骤22)将由步骤1)得到的句子按句子中逗号、冒号、分号、句号等标点符号分割句子;
步骤23)读入由步骤22)分割后的第一个句子,读到斜杠,将斜杠前的单词和斜杠后的词性依次放在wordPos[i],i=0,1.....n,,i为偶数时数组存放的是单词;
步骤24)将数组中单词取出放入sentenceWords中,判定sentenceWords长度;
步骤241)如果长度不大于11,则转步骤25);
步骤242)如果长度大于11,按长度11重新找分割点,分割完后,转步骤25);
步骤25)读入语义词典和分割后句子的第一个单词,查找该词在语义词典中不同词性下的词义个数,确定单词的词性:
步骤251)如果文本中该单词的词性没有被标记或者标记有错,标记有错指的是语义词典中没有找到该单词的这种词性,在这些情况下,就以语义词典中该单词的词义数最多的词性作为它的词性;
步骤252)如果标记正确,单词就用它标记的词性;
步骤253)如果语义词典中没有该单词,就不对其进行消歧;
步骤26)由步骤25)确定词性后,利用语义词典查找该单词的同义词和的释义,即概念;
步骤27)用语义词典查找与步骤26)确定的各个概念具有直接语义关系的概念的释义,即扩展释义和扩展释义的同义词集合,不同词性的概念的扩展概念:
名词:概念本身,上位概念,下位概念,与此概念具有整体部分关系的概念。
动词:概念本身,上位概念,下位概念。
形容词:概念本身,近义概念。
副词:概念本身,反义概念。
步骤27)重复步骤25)到步骤27),直至查找完句子中的每个单词;
三、利用回溯法实现基于上下文的语义消歧:
步骤31)读入由步骤22)分割后第一个句子的第一个单词,将该单词的不同词义依次放入堆栈中;选中栈顶元素并出栈,将该栈顶元素记为W00,表示第0个单词的第0个词义,此时,score[0]=0,作为第0个单词的相关度;
步骤32)将第二个单词的不同词义依次放入堆栈中;
步骤33)选中栈顶元素并出栈,将该栈顶元素记为W10;
步骤34)计算W00和W10之间的相关度,如公式(1):
其中Gloss(rij)是概念rij的释义,对其优化后包含rij的同义词集合中的词、描述中的词和例句中的词,Syn(rij)是概念rij的同义词集合,扩展同义词集合ExSyn,扩展释义ExGloss,s1,s2是句子中两个不同的单词;
步骤35)不同概念之间重合度Gloss(s1)∩Syn(s2)、Gloss(s1)∩Syn(r2j)、Gloss(r1i)∩Syn(r2j)对相关度relatedness(s1,s2)的影响依次降低,设它们的权重分别为Wg,Wrg,Wr,并规定:
优化后的相关度计算如公式(3):
用公式(3)取代公式(1),计算不同单词之间的相关度,其中i是单词s1确定词性后的词义个数,j是单词s2确定词性后的词义个数;;
步骤36)计算W10与W00之间相关度,记为score[1]:
score[1]=score[0]+scorecube[1][0][0][0] 公式(4)
其中scorecube[1][0][0][0]是指句子中第1个单词的第0个词义与第0个单词的第0个词义的相关度;
步骤37)将第三个单词的不同词义依次放入堆栈中;
步骤38)选中栈顶元素并出栈,将其记为W20;
步骤39)计算W20与前两个单词的第0个词义W10、W00之间的相关度总和:
score[2]=score[1]+scorecube[2][0][1][0]+scorecube[2][0][0][0] 公式(5)
步骤310)对句子中剩下的单词重复步骤37)到步骤39),计算相关度总和时只考虑所求单词与其前两单词之间的相关度。这样就可以得到一个句子中所有单词的第 0个词义与其前面两个单词的第0个词义之间的相关度总和,相当于状态空间树中第一条分支上的相关度总和;
步骤311)此时,栈顶元素为最后一个单词的第1个词义,选中并出栈;
步骤312)在步骤310)得到的相关度总和基础上,通过减掉最后一个单词的第0个词义与其前两个单词的第0个词义之间的相关度,然后加上其第1个词义与前两个单词的第0个词义之间的相关度,相当于状态空间树中第二条分支上的相关度总和;
步骤313)依次对栈顶元素作类似于步骤310)及步骤311)操作,就可以得到整个状态空间树所有分支的相关度总和;
步骤314)再考察句子的连贯度,即单词之间的最大相关度,句子的连贯度计算如公式(4):
公式(6)
其中S为句子,假设句子中的单词w只跟其前面的2k个单词有语义相关性,那么称这2k个单词为w的上下文,表示为Context(w),Wi是句子S中的单词,Wj是紧接Wi前面的两个单词;
步骤315)选择相关度总和最大的那条分支,该分支上单词的词义就是经过消歧的最佳词义,到此完成分割后的第一个句子的消歧;
步骤316)读入分割后的第二个句子,转到步骤23),完成消歧,直至完成第一个句子的全部消歧;
步骤317)读入句子列表中第二个句子,转到步骤21),直至完成所有句子的消歧。
机译: 一种自动词义消歧的方法和系统
机译: 基于百科全书知识库和文字向量的中文名称的语义消歧方法
机译: 基于RDF知识库的命名实体消歧的RDF装置和方法