一种基于Wikipedia概念向量的中文词语相关度计算方法和装置与流程

文档序号:13236724阅读:241来源:国知局
一种基于Wikipedia概念向量的中文词语相关度计算方法和装置与流程
本发明涉及自然语言处理
技术领域
,具体涉及一种基于wikipedia概念向量的中文词语相关度计算方法和装置。
背景技术
:词语相关度是指两个词语之间的语义关联程度,其在自然语言处理领域有着广泛的应用,对信息检索、语义理解、词义消歧、文本聚类的效果具有直接影响。现有的词语相关度计算方法可分为两类:一类是基于知识库的方法,通常利用wordnet等语义本体知识库,分析词语的释义的重叠词数量或者词语在本体概念树中的路径长度、概念密度等,来评判词语的相关程度;另一类是基于统计的方法,根据词语在语料库中一定窗口内的共现频次,将词语表示成词语向量,利用词语向量的相似度来评判词语的相关程度。基于知识库的方法的效果依赖于知识库的规模和质量,而知识库的构建需要大量的人工劳动;而且随着社会发展,新词层出不穷,知识库难以全面覆盖,这制约了基于知识库方法的效果和应用范围。基于统计的方法主要依据语料库的共现关系,而对于缺乏对其它关系的考虑;而且,构建的词语向量往往十分稀疏,这导致其计算精度并不理想。随着深度学习技术的发展,词向量(wordembeddings)技术被提出,并被广泛应用于词语相关度计算。但是,现有的词向量技术往往以词语为基本对象,而忽略了词语所对应的词义概念。同一个词语可能会有多种概念,对应多种词义。现有的词向量技术以词语为基本对象,对每个词语只会生成一个词向量。这导致词向量会融合一个词语的所有概念信息,而无法准确区分每个不同的概念。如果能够为每个概念单独生成相应的概念向量(conceptembeddings),将有利于精确描述词语的词义概念,推动相关应用的发展。训练概念向量的前提是有充足的概念标注语料。如何快速有效地构建概念标注语料是一个重要问题。一旦获得了词义概念向量,对于待比较相关度的词语对,只需找到词语所对应的概念集合,便可以将词语相关度的计算转化为概念向量的相似度计算。如何确定词语的概念集合也是一个重要问题。wikipedia为解决上述问题奠定了基础。wikipedia是世界上规模最大的在线百科知识库,蕴含了丰富的语义知识,数据范围广,更新速度快,且具有良好的结构化信息。wikipedia已成为自然语言领域的一个重要知识来源。面对词语相关度计算所存在的以上技术问题,本发明专利针对中文wikipedia的特点,充分挖掘其中蕴含的概念信息,实现一种基于wikipedia概念向量的中文词语相关度计算方法和装置,力求能够在一定程度上推动这些问题的解决。技术实现要素:为解决现有技术存在的不足,本发明公开了一种基于wikipedia概念向量的中文词语相关度计算方法和装置,以更准确地计算中文词语相关度。为此,本发明提供如下技术方案:一种基于wikipedia概念向量的中文词语相关度计算方法,包括以下步骤:步骤一、由wikipediadump服务站点获取其dump生语料;并对生语料进行规范化处理,仅保留namespace属性为0的wikipedia概念文档;对于每个概念文档,只保留其正式文本及概念标注信息;将处理后的概念文档收集起来,作为wikipedia基础语料库;步骤二、对wikipedia基础语料库进行概念标注扩充,构建wikipedia概念语料库;步骤三、根据wikipedia概念语料库,训练概念向量;步骤四、对于待比较词语对,根据wikipedia查询由用户指定的不同层次的概念集合,获得其词语概念集合;步骤五、取得待比较词语对的概念集合的笛卡尔积,计算其中每个概念对所对应的概念向量的相似度;取最大的概念向量的相似度作为待比较词语对的相关度。进一步的,所述步骤一中,构建wikipedia基础语料库时,具体为:步骤1-1)访问wikipediadump服务站点,下载最新的zhwiki数据库;步骤1-2)根据zhwiki数据库依次处理<page>节点,提取ns的值为0的<page>节点,提取该节点中的title、redirect、id和text的内容,同时对text做如下处理:删除用户编辑记录和外部链接,替换特殊字符,保留概念标注信息,利用<h#n>标记段落标题;其中,#n={1,2,3...n},代表文档标题的层级,从1到n表示由高到低。步骤1-3)对文档进行繁体到简体的转换。步骤1-4)对文档进行分词处理。进一步的,所述步骤二中,构建wikipedia概念语料库时,具体为:步骤2-1)根据onesenseperdiscourse假设,对基础语料库中的每篇文档进行概念标记扩充,具体为:将基础语料库中的某一篇文档记作docl,其标题记作titlel,标识记作idl;该篇文档中的某一概念标记的热点文本记作linkl,k,目标概念记作targetl,k;docl中未加概念标记的词语记作wl,i。需要说明的是,概念标记由热点文本linkl,k和目标概念targetl,k组成,在文档中的展现方式为:[[linkl,k|targetl,k]];若targetl,k=linkl,k,展现方式变为:[[linkl,k]];热点文本在文档中仅起显示作用,并不是概念;目标概念是本发明中所指的概念,也是其所对应的wikipedia文档的标题。概念标记扩充是为符合限定条件的词语添加概念标记。步骤2-1-1)在docl中,收集<h#n>…</h#n>(#n=1,2,…,n)标签中的词语,作为docl的子标题集合,记作遍历中的元素,若headl,i=titlel,则将原文中headl,i左右加上三个中括号的概念标记,变为:[[[headl,i]]]。步骤2-1-2)在docl中,收集所有概念标记信息,构建概念标记集合,记作按照每个元素中link所包含的词语数量降序排列。需要说明的是,若target≠link,则target本身也作为一个热点文本(link),目标概念为其自身。步骤2-1-3)遍历若在docl中存在wl,j=linkl,i,则将wl,j左右添加三个中括号的概念标记,变为:[[[wl,j]]]。需要说明的是,添加概念标记时会出现相交、包含的情况。下面分别说明出现的原因和处理方法:在为w1和w2添加概念标记时,若w1与w2相交,w1添加概念标记后,w2会缺少与w1相交的部分。因此,为w2添加概念标记时,需先将w2补全,再为w2添加四个中括号的概念标记,变为[[[w1]]][[[[w2]]]]。在为w1和w2添加概念标记时,若w1包含w2,w1添加概念标记后,w2已经在概念标记内了。因此,为w2添加概念标记时,先在w1的后面插入w2,再为w2添加四个中括号的概念标记,变为[[[w1]]][[[[w2]]]]。步骤2-2)根据最大频率词义算法,对步骤2-1)处理过的基础语料库做进一步的概念标记扩充,具体为:收集经过步骤2-1)扩充概念的基础语料库中的概念标记信息元组,构建概念标记集合,记作:。概念标记信息元组包含热点文本(linki)、目标概念集合(ti)、热点文本的数量与热点文本一致但未加概念标记的词语的数量统计每个概念标记的目标概念和及其数量得到目标概念元组集合,记作:语料库中未加概念标记的词语记作wk。步骤2-2-1)遍历ls,按照公式(1)计算词语的概念标注概率pl(linki);保留结果大于50%的linki生成高频概念标注集合,记为lsh;步骤2-2-2)遍历lsh,依次对linki中ti的每个元素按照公式(2)计算目标概念的标注概率pt(targeti,j);保留标注概率大于90%的目标概念(target),生成高频目标概念集合,记为lshc={(linki,targeti,j),},将集合的各个元素按照linki中含有的词语数降序排列;步骤2-2-3)遍历lshc,若存在wk=linki,则将wk左右添加五个中括号的概念标记,变为:[[[[[wk]]]]]。需要说明的是,添加概念标记时会出现相交、包含的情况。处理方式与步骤2-1-3)的处理方式基本一致;不同之处是,为w1和w2添加概念标记时都用五个中括号,变为[[[[[w1]]]]][[[[[w2]]]]]。进一步的,所述步骤三中,训练概念向量时,具体为:步骤3-1)依次对概念标记进行处理,只保留目标概念并查找目标概念所对应的文档id,将id与目标概念之间用“_”连接;去掉概念标记左右两侧的中括号,生成概念语料库。需要说明的是,目标概念所对应的文档id由python的wikipedia库获取。步骤3-2)使用概念语料库训练概念向量。训练得到的概念向量文件包含两种数据:一是传统的词向量,二是概念向量。比如:“领域”和“13_数学”,前者是传统的标准词向量的索引,而后者是本发明专利提出的概念向量的索引。后续步骤对概念向量的查询和计算,均指对后者进行操作处理,不涉及前者。进一步的,所述步骤四中,获取待比较词语对的概念集合时,具体为:步骤4-1)获取normal、redirect、disambig、hatenotelinkitems、hatenotelinkdisambigitems各个层次的初始概念集合;步骤4-2)由用户指定概念获取层次,构建概念集合;需要说明的是,用户可指定的层次如下所示:a)normal:只查找正常页面的title;否则,返回none;b)normal_redirect:只查找正常页面的title或重定向页的redirecttitle;若查找失败,则返回none;c)normal_redirect_disambig:查找正常页面的title或重定向页的redirecttitle,并查找消歧页的disambigitems;若查找失败,则返回none;d)normal_redirect_hatenotelinkitem:查找正常页面的title或重定向页的redirecttitle,并查找页面包含的hatenotelinkitems;若查找失败,则返回none;e)normal_redirect_disambig_hatenotelinkitems:查找正常页面的title或重定向页的redirecttitle,并查找消歧页的disambigitems,并查找页面包含的hatenotelinkitems;若查找失败,则返回none;f)normal_redirect_disambig_hatenotelinkitems_hatenotelinkdisambigitems:在normal_redirect_disambig_hatenotelinkitems的基础上,再增加hatenotelinkitems所对应的可能disambigitems;若查找失败,则返回none;其中的符号释义说明如下:title:当wi所对应的wikipedia页是一个正常页面(非消歧页,非重定向页)时,其对应概念就是title;redirecttitle:当wi所对应的wikipedia页是一个重定向页时,redirecttitle是wi所对应的最终重定向页面的title;disambigitems:当wi所对应的wikipedia页是一个消歧页时,disambigitems是消歧页所包含的所有可能的概念(不计与title重复的);hatenotelinkitems:在title对应的wikipedia页面的开始部分的<hatenote>部分中,非歧义的热点文本;hatenotelinkdisambig:在title对应的wikipedia页面的开始部分的<hatenote>部分中,有歧义的热点文本;hatenotelinkdisambigitems:依次对hatenotelinkdisambig各个消歧页提取有可能的概念(不计与title重复的)。进一步的,所述步骤五中,计算各个概念对的概念向量相似度并选取最大值作为词语相关度时,具体为:步骤5-1)待比较词语对为(w1,w2),w1的概念集合和w2的概念集合根据步骤三得到的概念向量文件,查询和中各个概念的概念向量;若某一概念查找失败,则将其由概念集合中剔除;步骤5-2)根据步骤5-1)处理过的和计算它们的笛卡尔积得待计算概念集合,记作步骤5-3)由步骤5-1)和步骤5-2),按照公式(3)计算每个概念对的概念向量相似度,生成候选结果集合;其中ci和cj表示概念ci和cj的概念向量,和表示向量ci和cj的模;步骤5-4)从候选结果集中选取概念向量相似度的最大值,作为待比较词语对的相关度。一种基于wikipedia概念向量的中文词语相关度计算装置,包括:wikipedia基础语料库构建单元,用于对wikipediadump生语料进行规范化处理,仅保留namespace属性为0的wikipedia概念文档;对于每个概念文档,只保留其正式文本及概念标注信息;将处理后的概念文档收集起来,作为wikipedia基础语料库;wikipedia概念语料库构建单元,用于对wikipedia基础语料库进行概念标注扩充,构建wikipedia概念语料库;概念向量训练单元,用于使用wikipedia概念语料库,训练概念向量;概念集合提取单元,用于对待比较词语对,根据wikipedia查询由用户指定的不同层次的概念集合,获得其词语概念集合;词语相关度计算单元,用于取得待比较词语对的概念集合的笛卡尔积,计算其中每个概念对所对应的概念向量的相似度;取最大的概念向量的相似度作为待比较词语对的相关度。进一步的,所述wikipedia基础语料库构建单元还包括:概念文档提取单元,用于对wikipediadump生语料提取namespace属性为0的wikipedia概念文档;单文档规范化处理单元,用于对文档内容进行如下处理:删除用户编辑记录和外部链接,替换特殊字符,保留概念标注信息,利用<h#n>标记段落标题;其中,#n={1,2,3...n},代表文档标题的层级,从1到n表示由高到低;进一步的,所述wikipedia概念语料库构建单元还包括:单文档概念标记扩充单元,用于根据onesenseperdiscourse假设,对基础语料库中的每篇文档扩充概念标记;全文档概念标记扩充单元,用于根据最大频率词义算法,对单文档概念标记扩充单元处理过的基础语料库进一步扩充概念标记;进一步的,所述概念向量训练单元还包括:概念标记单元,用于对概念标记进行处理,只保留目标概念并查找目标概念所对应的文档id,将id与目标概念之间用“_”连接;去掉概念标记左右两侧的中括号,生成概念语料库;概念向量训练单元,用于使用概念语料库训练概念向量;进一步的,所述概念集合提取单元还包括:初始概念获取单元,用于获取normal、redirect、disambig、hatenotelinkitems、hatenotelinkdisambigitems各个层次的初始概念集合;概念层次选择单元,由用户指定概念获取层次,构建概念集合;进一步的,所述词语相关度计算单元还包括:概念向量查询单元,用于查询概念集合中各个概念的概念向量;若某一概念查找失败,则将其由概念集合中剔除;笛卡尔积计算单元,用于对概念向量查询单元处理的概念集合计算笛卡尔积;概念向量相似度计算单元,用于计算概念集合中每个概念对的概念向量相似度,生成候选结果集合;词语相关度选择单元,用于从候选结果集中选取概念向量相似度的最大值,作为待比较词语对的相关度。本发明的有益效果:1、本发明通过充分挖掘wikipedia蕴含的概念信息,进行了概念语料的构建和目标概念的查询获取,可在概念层面上进行词语相关度的计算。2、本发明充分发挥了深度学习的优势,利用词向量技术生成概念向量,能够较为准确地表达概念,避免了传统词向量无法准确区分不同概念的问题。3、本发明提出的概念索引将上下文信息与概念融合,有利于提高概念向量的准确性。4、本发明提出的基于wikipedia概念向量的中文词语相关度计算方法和装置,能够自动完成概念知识库的构建,准确选择词语的概念集合,并计算概念相似度,具有较高的词语相关度计算正确率,改善中文词语相关度的计算效果附图说明图1为根据本发明实施方式基于wikipedia概念向量的中文词语相关度计算方法的流程图;图2为根据本发明实施方式基于wikipedia概念向量的中文词语相关度计算装置的结构示意图;图3为根据本发明实施方式wikipedia基础语料库构建单元的结构示意图;图4为根据本发明实施方式wikipedia概念语料库构建单元的结构示意图;图5为根据本发明实施方式概念向量训练单元的结构示意图;图6为根据本发明实施方式概念集合提取单元的结构示意图;图7为根据本发明实施方式词语相关度计算单元的结构示意图。具体实施方式:为了使本
技术领域
的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对发明实施例作进一步的详细说明。本发明实施例基于wikipedia概念向量的中文词语相关度计算方法的流程图,如图1所示,包括以下步骤。步骤101,构建wikipedia基础语料库。由wikipediadump服务站点获取其dump生语料;并对生语料进行规范化处理,仅保留namespace属性为0的wikipedia概念文档;对于每个概念文档,只保留其正式文本及概念标注信息;将处理后的概念文档收集起来,作为wikipedia基础语料库,具体为:步骤1-1)访问wikipediadump服务站点,下载最新的zhwiki数据库;本发明实施例中,zhwiki数据库下载地址为:https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles-multistream.xml.bz2。需要说明的是,该数据库由xml结构存储,每个<page>标签都存储了wikipedia中的一个页面,其中包含唯一标识符(id)、跳转目标(redirect)、命名空间(namespace)等信息。数据库包含了文档(articles)、模板(templates)、媒体/文件的描述(media/filedescriptions)和主要元页面(primarymeta-pages)等信息,使用namespace对其进行区分,namespace的信息如表1所示。表1namespacensnamespacensmain/article0portal100wikipedia4book108file6draft118mediawiki8timedtext710template10module828help12gadget2300category14topic2600其中ns是<page>中的一个子节点,它的值代表了当前<page>节点的内容所属的namespace的类型。步骤1-2)根据zhwiki数据库依次处理<page>节点,提取ns的值为0的<page>节点,提取该节点中的title、redirect、id和text的内容,同时对text做如下处理:删除用户编辑记录和外部链接,替换特殊字符,保留概念标注信息,利用<h#n>标记段落标题;其中,#n={1,2,3...n},代表文档标题的层级,从1到n表示由高到低。本发明实施例中,以“数学”页面的处理为例,对其截取并构造部分关键信息,示例如下:基礎數學的知識與運用總是個人與團體生活中不可或缺的一環。對數學基本概念的完善,早在[[古埃及]]、[[美索不达米亚|美索不達米亞]]及[[印度历史|古印度]]內的古代數學文本便可觀見,而在古希臘那裡有更為嚴謹的處理。</text></page>经步骤1-1)和步骤1-2)处理后变为:<docid="13"title="数学"><h2>詞源</h2>基礎數學的知識與運用總是個人與團體生活中不可或缺的一環。對數學基本概念的完善,早在[[古埃及]]、[[美索不达米亚|美索不達米亞]]及[[印度历史|古印度]]內的古代數學文本便可觀見,而在古希臘那裡有更為嚴謹的處理。</doc>其中[[古埃及]]和[[印度历史|古印度]]代表概念标注信息。在前者中,“古埃及”是wikipedia中存在的概念;在后者中,“印度历史”是wikipedia中存在的概念,而“古印度”只是出现在wikipedia页面中的热点文本,并不是概念。步骤1-3)对文档进行繁体到简体的转换。本发明实施例中,以“基礎數學的知識與運用總是個人與團體生活中不可或缺的一環”的处理为例。使用opencc工具进行转换,结果为:“基础数学的知识与运用总是个人与团体生活中不可或缺的一环”。步骤1-4)对文档进行分词处理。本发明实施例中,以“基础数学的知识与运用总是个人与团体生活中不可或缺的一环”的处理为例。使用python库jieba进行分词处理,结果为:“基础数学的知识与运用总是个人与团体生活中不可或缺的一环”。步骤102,构建wikipedia概念语料库。对wikipedia基础语料库进行概念标注扩充,构建wikipedia概念语料库,具体为:步骤2-1)根据onesenseperdiscourse假设,对基础语料库中的每篇文档进行概念标记扩充,具体为:将基础语料库中的某一篇文档记作docl,其标题记作titlel,标识记作idl;该篇文档中的某一概念标记的热点文本记作linkl,k,目标概念记作targetl,k;docl中未加概念标记的词语记作wl,i。需要说明的是,概念标记由热点文本linkl,k和目标概念targetl,k组成,在文档中的展现方式为:[[linkl,k|targetl,k]];若targetl,k=linkl,k,展现方式变为:[[linkl,k]];热点文本在文档中仅起显示作用,并不是概念;目标概念是本发明中所指的概念,也是其所对应的wikipedia文档的标题。概念标记扩充是为符合限定条件的词语添加概念标记。步骤2-1-1)在docl中,收集<h#n>…</h#n>(#n=1,2,…,n)标签中的词语,作为docl的子标题集合,记作遍历中的元素,若headl,i=titlel,则将原文中headl,i左右加上三个中括号的概念标记,变为:[[[headl,i]]]。本发明实施例中,以“数学”文档的处理为例,对其截取并构造部分关键信息,示例如下:<docid="13"title="数学"><h1>数学</h1>今日,数学使用在不同的领域中包括[[工程学|工程]]等工程的范围工程学[[海上丝绸之路]][[丝绸之路世界文化遗产]][[世界]]海上丝绸之路世界文化遗产<h2>词源</h2></doc>收集文档中的标题,构建h数学={"数学","词源"}。由于标题“<h1>数学</h1>”与标题“数学”一致,因此在其内部添加三个括号的概念标记,结果如下:<docid="13"title="数学"><h1>[[[数学]]]</h1>今日,数学使用在不同的领域中包括[[工程学|工程]]等工程的范围工程学[[海上丝绸之路]][[丝绸之路世界文化遗产]][[世界]]海上丝绸之路世界文化遗产<h2>词源</h2></doc>步骤2-1-2)在docl中,收集所有概念标记信息,构建概念标记集合,记作按照每个元素中link所包含的词语数量降序排列。需要说明的是,若target≠link,则target本身也作为一个热点文本(link),目标概念为其自身。本发明实施例中,以步骤2-2-1)中发明实施例的结果进行处理为例,示例如下:<docid="13"title="数学"><h1>[[[数学]]]</h1>今日,数学使用在不同的领域中包括[[工程学|工程]]等工程的范围工程学[[海上丝绸之路]][[丝绸之路世界文化遗产]][[世界]]海上丝绸之路世界文化遗产<h2>词源</h2></doc>文档中共有五处概念标记,分别为:[[[数学]]]、[[工程学|工程]]、[[海上丝绸之路]]、[[丝绸之路世界文化遗产]]、[[世界]];按照link所含词语的数量降序排列构建概念标记集合l数学={(“丝绸之路世界文化遗产”,“丝绸之路世界文化遗产”),(“海上丝绸之路”,“海上丝绸之路”),(“数学”,“数学”),(“工程”,“工程学”),(“世界”,“世界”),(“工程学”,“工程学”)}。步骤2-1-3)遍历若在docl中存在wl,j=llinkl,i,则将wl,j左右添加三个中括号的概念标记,变为:[[[wl,j]]]。需要说明的是,添加概念标记时会出现相交、包含的情况。下面分别说明出现的原因和处理方法:在为w1和w2添加概念标记时,若w1与w2相交,w1添加概念标记后,w2会缺少与w1相交的部分。因此,为w2添加概念标记时,需先将w2补全,再为w2添加四个中括号的概念标记,变为[[[w1]]][[[[w2]]]]。在为w1和w2添加概念标记时,若w1包含w2,w1添加概念标记后,w2已经在概念标记内了。因此,为w2添加概念标记时,先在w1的后面插入w2,再为w2添加四个中括号的概念标记,变为[[[w1]]][[[[w2]]]]。本发明实施例中,以步骤2-1-1)中发明实施例的结果进行处理为例,示例如下:<docid="13"title="数学"><h1>[[[数学]]]</h1>今日,数学使用在不同的领域中包括[[工程学|工程]]等工程的范围工程学[[海上丝绸之路]][[丝绸之路世界文化遗产]][[世界]]海上丝绸之路世界文化遗产<h2>词源</h2></doc>根据步骤2-1-2)得到的概念标记集合l数学={(“丝绸之路世界文化遗产”,“丝绸之路世界文化遗产”),(“海上丝绸之路”,“海上丝绸之路”),(“数学”,“数学”),(“工程”,“工程学”),(“世界”,“世界”),(“工程学”,“工程学”)},查找属于l数学但未加概念标记的词语,对其添加标记。其中,“海上丝绸之路世界文化遗产”存在相交、包含的情况,按照l数学中元素的顺序添加概念标记;对“丝绸之路世界文化遗产”添加概念标记时,变为“海上[[[丝绸之路世界文化遗产]]]”;对“海上丝绸之路”添加概念标记时,需先将“海上”补全,然后添加标记,变为“[[[[海上丝绸之路]]]][[[丝绸之路世界文化遗产]]]”;对“世界”添加概念标记时,先插入“世界”,然后添加标记,变为“[[[[海上丝绸之路]]]][[[丝绸之路世界文化遗产]]][[[[世界]]]]”。处理结果如下:<docid="13"title="数学"><h1>[[[数学]]]</h1>今日,[[[数学]]]使用在不同的领域中包括[[工程学|工程]]等[[[工程学|工程]]]的范围[[[工程学]]][[海上丝绸之路]][[丝绸之路世界文化遗产]][[世界]][[[[海上丝绸之路]]]][[[丝绸之路世界文化遗产]]][[[[世界]]]]<h2>词源</h2></doc>步骤2-2)根据最大频率词义算法,对步骤2-1)处理过的基础语料库做进一步的概念标记扩充,具体为:收集经过步骤2-1)扩充概念的基础语料库中的概念标记信息元组,构建概念标记集合,记作:。概念标记信息元组包含热点文本(linki)、目标概念集合(ti)、热点文本的数量与热点文本一致但未加概念标记的词语的数量统计每个概念标记的目标概念和及其数量得到目标概念元组集合,记作:语料库中未加概念标记的词语记作wk。步骤2-2-1)遍历ls,按照公式(1)计算词语的概念标注概率pl(linki);保留结果大于50%的linki生成高频概念标注集合,记为lsh;本发明实施例中,以“数学”和“工程师”文档模拟作为整个语料库,对其截取部分关键原始信息,示例如下:<docid="13"title="数学"><h1>[[[数学]]]</h1>今日,[[[数学]]]使用在不同的领域中,包括[[工程学|工程]]等。</doc><docid="51481866"title="工程师">工程师则遵照工程既定原则,从而在数学和科学上,解决了一些技术问题。通常只有在专业工程考试取得合格才可被称为工程师。</doc>语料库中共有两个概念标注信息[[[数学]]]和[[工程学|工程]];统计前者在语料库中作为概念标注的次数为2次,后者为1次;统计前者在语料库中出现的次数为3次,后者为3次,生成ls={数学(t数学,2,3),工程(t工程,1,3)},t数学={(“数学”,2)},t工程={(“工程学”,1)};按照公式(1)计算概念标注概率,结果如下:保留结果大于50%的linki生成高频概念标注集合lsh={数学(t数学,2,3)}。步骤2-2-2)遍历lsh,依次对linki中ti的每个元素按照公式(2)计算目标概念的标注概率pt(targeti,j);保留标注概率大于90%的目标概念(target),生成高频目标概念集合,记为lshc={(linki,targeti,j),},将集合的各个元素按照linki中含有的词语数降序排列;本发明实施例中,以步骤2-2-1)的示例为例。遍历lsh={数学(t数学,2,3)},对t数学={(“数学”,2)}的每个元素按照公式(2)计算目标概念的标注概率,结果如下:保留标注概率大于90%的目标概念,生成高频概念集合lshc={(“数学”,“数学”)}。步骤2-2-3)遍历lshc,若存在wk=linki,则将wk左右添加五个中括号的概念标记,变为:[[[[[wk]]]]]。需要说明的是,添加概念标记时会出现相交、包含的情况。处理方式与步骤2-1-3)的处理方式基本一致;不同之处是,为w1和w2添加概念标记时都用五个中括号,变为[[[[[w1]]]]][[[[[w2]]]]]。本发明实施例中,以步骤2-2-1)的示例为例。遍历lshc={(“数学”,“数学”)},在语料库中共找到1处未加标记的“数学”,添加标记后示例变为:<docid="13"title="数学"><h1>[[[数学]]]</h1>今日,[[[数学]]]使用在不同的领域中,包括[[工程学|工程]]等。</doc><docid="51481866"title="工程师">工程师则遵照工程既定原则,从而在[[[[[数学]]]]]和科学上,解决了一些技术问题。通常只有在专业工程考试取得合格才可被称为工程师。</doc>步骤103,训练概念向量。根据wikipedia概念语料库,训练概念向量,具体为:步骤3-1)依次对概念标记进行处理,只保留目标概念并查找目标概念所对应的文档id,将id与目标概念之间用“_”连接;去掉概念标记左右两侧的中括号,生成概念语料库。需要说明的是,目标概念所对应的文档id由python的wikipedia库获取。本发明实施例中,以“今日,[[[数学]]]使用在不同的领域中,包括[[工程学|工程]]等”的处理为例。使用wikipediatool获取“数学”的文档id为13,“工程学”的文档id为2218,将id与目标概念连接并去掉中括号后变为:“今日,13_数学使用在不同的领域中,包括2218_工程学等”。步骤3-2)使用概念语料库训练概念向量。训练得到的概念向量文件包含两种数据:一是传统的词向量,二是概念向量。比如:“领域”和“13_数学”,前者是传统的标准词向量的索引,而后者是本发明专利提出的概念向量的索引。后续步骤对概念向量的查询和计算,均指对后者进行操作处理,不涉及前者。本发明实施例中使用gensim工具包中的word2vec模型训练概念向量,向量的维数是300,最低词频是100,训练算法是skip-gram,其他训练参数均使用默认值。步骤104,获取待比较词语对的概念集合。对于待比较词语对,根据wikipedia查询由用户指定的不同层次的概念集合,获得其词语概念集合,具体为:步骤4-1)获取normal、redirect、disambig、hatenotelinkitems、hatenotelinkdisambigitems各个层次的概念集合;本发明实施例中,以收集词语对(“苹果”,“电脑”)的概念集合为例。“汉朝”在wikipedia中是一个正常页面,因此normal是“苹果”,redirect和disambig都为空。页面中<hatenote>部分包含有歧义的热点文本,因此hatenotelinkdisambig为“苹果(消歧义)”,查找“苹果(消歧义)”页面中的概念,hatenotelinkdisambigitems为“苹果公司”、“披头士乐队”、“拉芘莎拉·瑛特勒素”、“苹果日报”、“苹果日报(香港)”、“苹果日报(台湾)”、“苹果(电影)”;不包含非歧义的热点文本,因此hatenotelinkitems为空。同理可得,“电脑”的各个层次概念,normal:空,redirect:“电子计算机”,disambig:空,hatenotelinkitems:“个人电脑”、“家用电脑”,hatenotelinkdisambigitems:“机械计算机”、“电子计算机”、“电子学”、“计算器”、“个人电脑”、“家用电脑”、“计算机(杂志)”、“计算器(应用程序)”。步骤4-2)由用户指定概念获取层次,构建概念集合。本发明实施例中,以收集词语对(“苹果”,“电脑”)的概念集合为例。根据步骤4-1)实施例的结果,假设用户指定的层次为:normal_redirect_disambig_hatenotelinkitems_hatenotelinkdisambigitems,因此“苹果”的概念集合为c苹果={"苹果","苹果公司","披头士乐队","拉芘莎拉·瑛特勒素","苹果日报","苹果日报(香港)","苹果日报(台湾)","苹果(电影)"},“电脑”的概念集合为c电脑={"电子计算机","个人电脑","家用电脑","机械计算机","电子学","计算器","计算机(杂志)","计算器(应用程序)"}。需要说明的是,用户可指定的层次如下所示:a)normal:只查找正常页面的title;否则,返回none;b)normal_redirect:只查找正常页面的title或重定向页的redirecttitle;若查找失败,则返回none;c)normal_redirect_disambig:查找正常页面的title或重定向页的redirecttitle,并查找消歧页的disambigitems;若查找失败,则返回none;d)normal_redirect_hatenotelinkitem:查找正常页面的title或重定向页的redirecttitle,并查找页面包含的hatenotelinkitems;若查找失败,则返回none;e)normal_redirect_disambig_hatenotelinkitems:查找正常页面的title或重定向页的redirecttitle,并查找消歧页的disambigitems,并查找页面包含的hatenotelinkitems;若查找失败,则返回none;f)normal_redirect_disambig_hatenotelinkitems_hatenotelinkdisambigitems:在normal_redirect_disambig_hatenotelinkitems的基础上,再增加hatenotelinkitems所对应的可能disambigitems;若查找失败,则返回none;上面用到的符号释义:title:当wi所对应的wikipedia页是一个正常页面(非消歧页,非重定向页)时,其对应概念就是title;redirecttitle:当wi所对应的wikipedia页是一个重定向页时,redirecttitle是wi所对应的最终重定向页面的title;disambigitems:当wi所对应的wikipedia页是一个消歧页时,disambigitems是消歧页所包含的可能的概念(不计与title重复的);hatenotelinkitems:在title对应的wikipedia页面的开始部分的<hatenote>部分中,非歧义的热点文本;hatenotelinkdisambig:在title对应的wikipedia页面的开始部分的<hatenote>部分中,有歧义的热点文本;hatenotelinkdisambigitems:依次对hatenotelinkdisambig各个消歧页提取有可能的概念(不计与title重复的);步骤105,计算各个概念对的概念向量相似度并选取最大值作为词语相关度。取得待比较词语对的概念集合的笛卡尔积,计算其中每个概念对所对应的概念向量的相似度;取最大的概念向量的相似度作为待比较词语对的相关度,具体为:步骤5-1)待比较词语对为(w1,w2),w1的概念集合和w2的概念集合根据步骤103得到的概念向量文件,查询和中各个概念的概念向量;若某一概念查找失败,则将其由概念集合中剔除。本发明实施例中,以词语对(“苹果”,“电脑”)的处理为例。由步骤4-2)得到c苹果和c电脑;以查询c苹果中“苹果”的概念向量为例,查询“苹果”的文档id为7850,概念索引为“7850_苹果”,从概念向量文件查找,得到“苹果”的概念向量;同理,查询c苹果和c电脑中各个概念的概念向量;剔除查询失败的概念后,c苹果={"苹果","苹果公司","苹果日报"},c电脑={"电子计算机","个人电脑","电子学"}。步骤5-2)根据步骤5-1)处理过的和计算它们的笛卡尔积得待计算概念集合,记作本发明实施例中,以词语对(“苹果”,“电脑”)的处理为例,由步骤5-1)得,“苹果”的概念集合c苹果={"苹果"","苹果公司"","苹果日报"},“电脑”的概念集合c电脑={"电子计算机","个人电脑","电子学"};计算c苹果和c电脑的笛卡尔积,可得c苹果,电脑={("苹果","电子计算机"),("苹果","个人电脑"),("苹果","电子学"),("苹果公司","电子计算机"),("苹果公司","个人电脑"),("苹果公司","电子学"),("苹果日报","电子计算机"),("苹果日报","个人电脑"),("苹果日报","电子学")}。步骤5-3)由步骤5-1)和步骤5-2),按照公式(3)计算每个概念对的概念向量相似度,生成候选结果集合;其中ci和cj表示概念ci和cj的概念向量,和表示向量ci和cj的模。本发明实施例中,以词语对(“苹果”,“电脑”)的处理为例。由步骤5-1)和步骤5-2)实施例中得c苹果,电脑={("苹果","电子计算机"),("苹果","个人电脑"),("苹果","电子学"),("苹果公司","电子计算机"),("苹果公司","个人电脑"),("苹果公司","电子学"),("苹果日报","电子计算机"),("苹果日报","个人电脑"),("苹果日报","电子学")}和各个概念的概念向量。计算c苹果,电脑中每个概念对的概念向量相似度,结果为:sim("苹果","电子计算机")=0.269805519448;sim("苹果","个人电脑")=0.296117064498;sim("苹果","电子学")=0.325971175002;sim("苹果公司","电子计算机")=0.434918366673;sim("苹果公司","个人电脑")=0.587246728589;sim("苹果公司","电子学")=0.354456579224;sim("苹果日报","电子计算机")=0.0955683107468;sim("苹果日报","个人电脑")=0.231387599067;sim("苹果日报","电子学")=0.101582023943;步骤5-4)从候选结果集中选取概念向量相似度的最大值,作为待比较词语对的相关度。本发明实施例中,以词语对(“苹果”,“电脑”)的处理为例。由步骤5-3)实施例得到候选结果集;sim("苹果公司","个人电脑")=0.587246728589的值最大,因此词语对(“苹果”,“电脑”)的相关度为0.587246728589。通过以上操作步骤,即可完成词语对(“苹果”,“电脑”)的相关度计算工作。相应地,本发明实施例还提供一种基于wikipedia概念向量的中文词语相关度计算装置,其结构示意图如图2所示。在该实施例中,所述装置包括:wikipedia基础语料库构建单元201,用于对wikipediadump生语料进行规范化处理,仅保留namespace属性为0的wikipedia概念文档;对于每个概念文档,只保留其正式文本及概念标注信息;将处理后的概念文档收集起来,作为wikipedia基础语料库;wikipedia概念语料库构建单元202,用于对wikipedia基础语料库进行概念标注扩充,构建wikipedia概念语料库;概念向量训练单元203,用于使用wikipedia概念语料库,训练概念向量;概念集合提取单元204,用于对待比较词语对,根据wikipedia查询由用户指定的不同层次的概念集合,获得其词语概念集合;词语相关度计算单元205,用于取得待比较词语对的概念集合的笛卡尔积,计算其中每个概念对所对应的概念向量的相似度;取最大的概念向量的相似度作为待比较词语对的相关度。图2所示装置的wikipedia基础语料库构建单元201的结构示意图如图3所示,其包括:概念文档提取单元301,用于对wikipediadump生语料提取namespace属性为0的wikipedia概念文档;单文档规范化处理单元302,用于对文档内容进行如下处理:删除用户编辑记录和外部链接,替换特殊字符,保留概念标注信息,利用<h#n>标记段落标题;其中,#n={1,2,3...n},代表文档标题的层级,从1到n表示由高到低。图2所示装置的wikipedia概念语料库构建单元202的结构示意图如图4所示,其包括:单文档概念标记扩充单元401,用于根据onesenseperdiscourse假设,对基础语料库中的每篇文档扩充概念标记;全文档概念标记扩充单元402,用于根据最大频率词义算法,对单文档概念标记扩充单元处理过的基础语料库进一步扩充概念标记。图2所示装置的概念向量训练单元203的结构示意图如图5所示,其包括:概念标记单元501,用于对概念标记进行处理,只保留目标概念并查找目标概念所对应的文档id,将id与目标概念之间用“_”连接;去掉概念标记左右两侧的中括号,生成概念语料库;概念向量训练单元502,用于使用概念语料库训练概念向。图2所示装置的概念集合提取单元204的结构示意图如图6所示,其包括:初始概念获取单元601,用于获取normal、redirect、disambig、hatenotelinkitems、hatenotelinkdisambigitems各个层次的初始概念集合;概念层次选择单元602,由用户指定概念获取层次,构建概念集合。图2所示装置的词语相关度计算单元205的结构示意图如图7所示,其包括:概念向量查询单元701,用于查询概念集合中各个概念的概念向量;若某一概念查找失败,则将其由概念集合中剔除;笛卡尔积计算单元702,用于对概念向量查询单元处理的概念集合计算笛卡尔积;概念向量相似度计算单元703,用于计算概念集合中每个概念对的概念向量相似度,生成候选结果集合;词语相关度选择单元704,用于从候选结果集中选取概念向量相似度的最大值,作为待比较词语对的相关度。可以将图2~图7所示的基于wikipedia概念向量的中文词语相关度计算装置集成到各种硬件实体中。比如,可以将基于wikipedia概念向量的中文词语相关度计算装置集成到:个人电脑、平板电脑、智能手机、工作站等设备之中。可以通过指令或指令集存储的储存方式将本发明实施方式所提出的基于wikipedia概念向量的中文词语相关度计算方法存储在各种存储介质上。这些存储介质包括但不局限于:软盘、光盘、硬盘、内存、u盘、cf卡、sm卡等。综上所述,在本发明实施方式中,由wikipediadump服务站点获取生语料,进行规范化处理,生成wikipedia基础语料库;进行概念标注扩充,构建wikipedia概念语料库;根据wikipedia概念语料库,训练概念向量;对于待比较词语对,根据wikipedia,获得其词语概念集合;计算概念集合的笛卡尔积中的每个概念对所对应的概念向量的相似度,取最大值作为待比较词语对的相关度。由此可见,应用本发明实施方式之后,实现了基于wikipedia概念向量的中文词语相关度计算。本发明实施方式通过充分挖掘wikipedia知识库的概念信息,进行了概念语料的构建和目标概念的查询获取,可在概念层面上进行词语相关度的计算;充分发挥了深度学习的优势,利用词向量技术生成概念向量,能够较为准确地表达概念,避免了传统词向量无法准确区分不同概念的问题;概念索引将上下文信息与概念融合,有利于提高概念向量的准确性。本发明提出的基于wikipedia概念向量的中文词语相关度计算方法和装置,能够自动完成概念知识库的构建,准确选择词语的概念集合,并计算概念相似度,具有较高的词语相关度计算正确率,改善中文词语相关度的计算效果。本说明书中的实施例采用递进的方式描述,彼此相同相似的部分互相参见即可。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法和装置;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,故本说明书不应理解为对本发明的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1