CN107436955A - 一种基于Wikipedia概念向量的英文词语相关度计算方法和装置 - Google Patents
一种基于Wikipedia概念向量的英文词语相关度计算方法和装置 Download PDFInfo
- Publication number
- CN107436955A CN107436955A CN201710708577.1A CN201710708577A CN107436955A CN 107436955 A CN107436955 A CN 107436955A CN 201710708577 A CN201710708577 A CN 201710708577A CN 107436955 A CN107436955 A CN 107436955A
- Authority
- CN
- China
- Prior art keywords
- concept
- wikipedia
- word
- vectors
- corpus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种基于Wikipedia概念向量的英文词语相关度计算方法和装置。方法包括:1.由Wikipedia Dump服务站点获取生语料,进行规范化处理,生成Wikipedia基础语料库;2.进行概念标注扩充,构建Wikipedia概念语料库;3.根据Wikipedia概念语料库,训练概念向量;4.对于待比较词语对,根据Wikipedia,获得其词语概念集合;5.计算概念集合的笛卡尔积中的每个概念对所对应的概念向量的相似度,取最大值作为待比较词语对的相关度。利用本发明,可以充分挖掘Wikipedia蕴含的词语概念信息,生成词语概念向量,更准确有效地计算词语相关度。
Description
技术领域
本发明涉及自然语言处理技术领域,具体涉及一种基于Wikipedia概念向量的英文词语相关度计算方法和装置。
背景技术
词语相关度是指两个词语之间的语义关联程度,其在自然语言处理领域有着广泛的应用,对信息检索、语义理解、词义消歧、文本聚类的效果具有直接影响。现有的词语相关度计算方法可分为两类:一类是基于知识库的方法,通常利用WordNet等语义本体知识库,分析词语的释义的重叠词数量或者词语在本体概念树中的路径长度、概念密度等,来评判词语的相关程度;另一类是基于统计的方法,根据词语在语料库中一定窗口内的共现频次,将词语表示成词语向量,利用词语向量的相似度来评判词语的相关程度。基于知识库的方法的效果依赖于知识库的规模和质量,而知识库的构建需要大量的人工劳动;而且随着社会发展,新词层出不穷,知识库难以全面覆盖,这制约了基于知识库方法的效果和应用范围。基于统计的方法主要依据语料库的共现关系,而对于缺乏对其它关系的考虑;而且,构建的词语向量往往十分稀疏,这导致其计算精度并不理想。
随着深度学习技术的发展,词向量(word embeddings)技术被提出,并被广泛应用于词语相关度计算。但是,现有的词向量技术往往以词语为基本对象,而忽略了词语所对应的词义概念。同一个词语可能会有多种概念,对应多种词义。现有的词向量技术以词语为基本对象,对每个词语只会生成一个词向量。这导致词向量会融合一个词语的所有概念信息,而无法准确区分每个不同的概念。如果能够为每个概念单独生成相应的概念向量(conceptembeddings),将有利于精确描述词语的词义概念,推动相关应用的发展。
训练概念向量的前提是有充足的概念标注语料。如何快速有效地构建概念标注语料是一个重要问题。一旦获得了词义概念向量,对于待比较相关度的词语对,只需找到词语所对应的概念集合,便可以将词语相关度的计算转化为概念向量的相似度计算。如何确定词语的概念集合也是一个重要问题。
Wikipedia为解决上述问题奠定了基础。Wikipedia是世界上规模最大的在线百科知识库,蕴含了丰富的语义知识,数据范围广,更新速度快,且具有良好的结构化信息。Wikipedia已成为自然语言领域的一个重要知识来源。
面对词语相关度计算所存在的以上技术问题,本发明专利针对英文Wikipedia的特点,充分挖掘其中蕴含的概念信息,实现一种基于Wikipedia概念向量的英文词语相关度计算方法和装置,力求能够在一定程度上推动这些问题的解决。
发明内容
为解决现有技术存在的不足,本发明公开了一种基于Wikipedia概念向量的英文词语相关度计算方法和装置,以更准确地计算英文词语相关度。
为此,本发明提供如下技术方案:
一种基于Wikipedia概念向量的英文词语相关度计算方法,包括以下步骤:
步骤一、由Wikipedia Dump服务站点获取其Dump生语料;并对生语料进行规范化处理,仅保留namespace属性为0的Wikipedia概念文档;对于每个概念文档,只保留其正式文本及概念标注信息;将处理后的概念文档收集起来,作为Wikipedia基础语料库;
步骤二、对Wikipedia基础语料库进行概念标注扩充,构建Wikipedia概念语料库;
步骤三、根据Wikipedia概念语料库,训练概念向量;
步骤四、对于待比较词语对,根据Wikipedia查询由用户指定的不同层次的概念集合,获得其词语概念集合;
步骤五、取得待比较词语对的概念集合的笛卡尔积,计算其中每个概念对所对应的概念向量的相似度;取最大的概念向量的相似度作为待比较词语对的相关度。
进一步的,所述步骤一中,构建Wikipedia基础语料库时,具体为:
步骤1-1)访问Wikipedia Dump服务站点,下载最新的enwiki数据库;
步骤1-2)根据enwiki数据库依次处理<page>节点,提取ns的值为0的<page>节点,提取该节点中的title、redirect、id和text的内容,同时对text做如下处理:删除用户编辑记录和外部链接,替换特殊字符,保留概念标注信息,利用<h#n>标记段落标题;其中,#n={1,2,3...n},代表文档标题的层级,从1到n表示由高到低。
进一步的,所述步骤二中,构建Wikipedia概念语料库时,具体为:
步骤2-1)对Wikipedia基础语料库进行词形还原,具体为:
将文档中的单词记作tokeni,tokeni的原形记作lemmai,tokeni的词性记作posi。进行词形还原后,原文:token1,token2,…,tokenn,变为:token1/pos1/lemma1token2/pos2/lemma2…tokenn/posn/lemman。后面的步骤中涉及词语查找的操作均使用词的原形进行查找。
步骤2-2)根据one sense per discourse假设,对基础语料库中的每篇文档进行概念标记扩充,具体为:
将基础语料库中的某一篇文档记作docl,其标题记作titlel,标识记作idl;该篇文档中的某一概念标记的热点文本记作linkl,k,目标概念记作targetl,k;docl中未加概念标记的词语记作wl,i;lemma(w)表示取词语w的原形。
需要说明的是,概念标记由热点文本linkl,k和目标概念targetl,k组成,在文档中的展现方式为:[[linkl,k|targetl,k]];若targetl,k=linkl,k,展现方式变为:[[linkl,k]];热点文本在文档中仅起显示作用,并不是概念;目标概念是本发明中所指的概念,也是其所对应的Wikipedia文档的标题。概念标记扩充是为符合限定条件的词语添加概念标记。
步骤2-2-1)在docl中,收集<h#n>…</h#n>(#n=1,2,…,n)标签中的词语,作为docl的子标题集合,记作遍历中的元素,若lemma(headl,i)=lemma(titlel),则将原文中headl,i左右加上三个中括号的概念标记,变为:[[[headl,i]]]。
步骤2-2-2)在docl中,收集所有概念标记信息,构建概念标记集合,记作按照每个元素中link所包含的单词个数降序排列。
需要说明的是,若target≠link,则target本身也作为一个热点文本(link),目标概念为其自身。
步骤2-2-3)遍历若在docl中存在lemma(wl,j)=lemma(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-3)根据最大频率词义算法,对步骤2-2)处理过的基础语料库做进一步的概念标记扩充,具体为:
收集经过步骤2-2)扩充概念的基础语料库中的概念标记信息元组,构建概念标记集合,记作:
概念标记信息元组包含热点文本(linki)、目标概念集合(Ti)、热点文本的数量与热点文本一致但未加概念标记的词语的数量统计每个概念标记的目标概念和及其数量得到目标概念元组集合,记作:Ti={(targeti,1,numi,1),(targeti,2,numi,2),…,(targeti,n,numi,n)};语料库中未加概念标记的词语记作wk。
步骤2-3-1)遍历LS,按照公式(1)计算词语的概念标注概率Pl(linki);保留结果大于50%的linki生成高频概念标注集合,记为LSH;
步骤2-3-2)遍历LSH,依次对linki中Ti的每个元素按照公式(2)计算目标概念的标注概率Pt(targeti,j);保留标注概率大于90%的目标概念(target),生成高频目标概念集合,记为LSHC={(linki,targeti,j),…},将集合的各个元素按照linki中含有的单词数降序排列;
步骤2-3-3)遍历LSHC,若存在lemma(wk)=lemma(linki),则将wk左右添加五个中括号的概念标记,变为:[[[[[wk]]]]]。
需要说明的是,添加概念标记时会出现相交、包含的情况。处理方式与步骤2-2-3)的处理方式基本一致;不同之处是,为w1和w2添加概念标记时都用五个中括号,变为[[[[[w1]]]]][[[[[w2]]]]]。
进一步的,所述步骤三中,训练概念向量时,具体为:
步骤3-1)对Wikipedia概念语料库进行处理,除去概念标记内词语的lemma信息,其他词语的token信息;
步骤3-2)依次对概念标记进行处理,只保留目标概念并查找目标概念所对应的文档ID,将ID与目标概念之间用“_”连接;去掉概念标记左右两侧的中括号,生成概念语料库。
需要说明的是,目标概念所对应的文档ID由Python的Wikipedia库获取。
步骤3-3)使用概念语料库训练概念向量。
训练得到的概念向量文件包含两种数据:一是传统的词向量,二是概念向量。比如:states和5585381_states_(_polity_),前者是传统的标准词向量的索引,而后者是本发明专利提出的概念向量的索引。后续步骤对概念向量的查询和计算,均指对后者进行操作处理,不涉及前者。
进一步的,所述步骤四中,获取待比较词语对的概念集合时,具体为:
步骤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的概念向量,和表示向量和的模;
步骤5-4)从候选结果集中选取概念向量相似度的最大值,作为待比较词语对的相关度。
一种基于Wikipedia概念向量的英文词语相关度计算装置,包括:
Wikipedia基础语料库构建单元,用于对Wikipedia Dump生语料进行规范化处理,仅保留namespace属性为0的Wikipedia概念文档;对于每个概念文档,只保留其正式文本及概念标注信息;将处理后的概念文档收集起来,作为Wikipedia基础语料库;
Wikipedia概念语料库构建单元,用于对Wikipedia基础语料库进行概念标注扩充,构建Wikipedia概念语料库;
概念向量训练单元,用于使用Wikipedia概念语料库,训练概念向量;
概念集合提取单元,用于对待比较词语对,根据Wikipedia查询由用户指定的不同层次的概念集合,获得其词语概念集合;
词语相关度计算单元,用于取得待比较词语对的概念集合的笛卡尔积,计算其中每个概念对所对应的概念向量的相似度;取最大的概念向量的相似度作为待比较词语对的相关度。
进一步的,所述Wikipedia基础语料库构建单元还包括:
概念文档提取单元,用于对Wikipedia Dump生语料提取namespace属性为0的Wikipedia概念文档;
单文档规范化处理单元,用于对文档内容进行如下处理:删除用户编辑记录和外部链接,替换特殊字符,保留概念标注信息,利用<h#n>标记段落标题;其中,#n={1,2,3...n},代表文档标题的层级,从1到n表示由高到低;
进一步的,所述Wikipedia概念语料库构建单元还包括:
词形还原单元,用于对Wikipedia基础语料库进行词形还原;
单文档概念标记扩充单元,用于根据one sense per discourse假设,对基础语料库中的每篇文档扩充概念标记;
全文档概念标记扩充单元,用于根据最大频率词义算法,对单文档概念标记扩充单元处理过的基础语料库进一步扩充概念标记;
进一步的,所述概念向量训练单元还包括:
信息清除单元,用于对Wikipedia概念语料库进行处理,除去概念标记内词语的lemma信息,其他词语的token信息;
概念标记单元,用于对概念标记进行处理,只保留目标概念并查找目标概念所对应的文档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基础语料库。
由Wikipedia Dump服务站点获取其Dump生语料;并对生语料进行规范化处理,仅保留namespace属性为0的Wikipedia概念文档;对于每个概念文档,只保留其正式文本及概念标注信息;将处理后的概念文档收集起来,作为Wikipedia基础语料库,具体为:
步骤1-1)访问Wikipedia Dump服务站点,下载最新的enwiki数据库;
本发明实施例中,enwiki数据库下载地址为:https://dumps.wikimedia.org/ enwiki/latest/enwiki-latest-pages-articles-multistream.xml.bz2。
需要说明的是,该数据库由XML结构存储,每个<page>标签都存储了Wikipedia中的一个页面,其中包含唯一标识符(id)、跳转目标(redirect)、命名空间(namespace)等信息。数据库包含了文档(Articles)、模板(templates)、媒体/文件的描述(media/filedescriptions)和主要元页面(primary meta-pages)等信息,使用namespace对其进行区分,namespace的信息如表1所示。
表1
namespace | ns | namespace | ns |
Main/Article | 0 | Portal | 100 |
Wikipedia | 4 | Book | 108 |
File | 6 | Draft | 118 |
MediaWiki | 8 | TimedText | 710 |
Template | 10 | Module | 828 |
Help | 12 | Gadget | 2300 |
Category | 14 | Topic | 2600 |
其中ns是<page>中的一个子节点,它的值代表了当前<page>节点的内容所属的namespace的类型。
步骤1-2)根据enwiki数据库依次处理<page>节点,提取ns的值为0的<page>节点,提取该节点中的title、redirect、id和text的内容,同时对text做如下处理:删除用户编辑记录和外部链接,替换特殊字符,保留概念标注信息,利用<h#n>标记段落标题;其中,#n={1,2,3...n},代表文档标题的层级,从1到n表示由高到低。
本发明实施例中,以Anarchism页面的处理为例,对其截取部分关键原始信息,示例如下:
经步骤1-1)和步骤1-2)处理后变为:
<doc id="12"title="Anarchism">
<h1>Anarchism</h1>
Anarchism is a[[political philosophy]]that advocates[[self-governance|self-governed]]societies based on voluntary institutions.These are oftendescribed as[[stateless society|stateless societies]],although severalauthors have defined them more specifically as institutions based on non-[[Hierarchy|hierarchical]][[Free association(communism and anarchism)|freeassociations]].
</doc>
其中[[political philosophy]]和[[self-governance|self-governed]]代表概念标注信息。在前者中,political philosophy是Wikipedia中存在的概念;在后者中,self-governance是Wikipedia中存在的概念,而self-governed只是出现在Wikipedia页面中的热点文本,并不是概念。
步骤102,构建Wikipedia概念语料库。
对Wikipedia基础语料库进行概念标注扩充,构建Wikipedia概念语料库,具体为:
步骤2-1)对Wikipedia基础语料库进行词形还原,具体为:
将文档中的单词记作tokeni,tokeni的原形记作lemmai,tokeni的词性记作posi。进行词形还原后,原文:token1,token2,…,tokenn,变为:token1/pos1/lemma1token2/pos2/lemma2…tokenn/posn/lemman。后面的步骤中涉及词语查找的操作均使用词的原形进行查找。
本发明实施例中,以“Anarchism is a[[political philosophy]]thatadvocates[[self-governance|self-governed]]societies based on voluntaryinstitutions.”的处理为例。词形还原工具采用由CLiPS(Computational Linguistics&Psycholinguistics)提供的pattern.en工具包。进行词形还原后,变为:“Anarchism/NNP/anarchism is/VBZ/be a/DT/a[[political/JJ/political philosophy/NN/philosophy]]that/WDT/that advocates/VBZ/advocate[[self-governance/IN/self-governance|self-governed/JJ/self-governed]]societies/NNS/society based/VBN/base on/IN/onvoluntary/JJ/voluntary institutions/NNS/institution././.”。
步骤2-2)根据one sense per discourse假设,对基础语料库中的每篇文档进行概念标记扩充,具体为:
将基础语料库中的某一篇文档记作docl,其标题记作titlel,标识记作idl;该篇文档中的某一概念标记的热点文本记作linkl,k,目标概念记作targetl,k;docl中未加概念标记的词语记作wl,i;lemma(w)表示取词语w的原形。
需要说明的是,概念标记由热点文本linkl,k和目标概念targetl,k组成,在文档中的展现方式为:[[linkl,k|targetl,k]];若targetl,k=linkl,k,展现方式变为:[[linkl,k]];热点文本在文档中仅起显示作用,并不是概念;目标概念是本发明中所指的概念,也是其所对应的Wikipedia文档的标题。概念标记扩充是为符合限定条件的词语添加概念标记。
步骤2-2-1)在docl中,收集<h#n>…</h#n>(#n=1,2,…,n)标签中的词语,作为docl的子标题集合,记作遍历中的元素,若lemma(headl,i)=lemma(titlel),则将原文中headl,i左右加上三个中括号的概念标记,变为:[[[headl,i]]]。
本发明实施例中,以Anarchism文档的处理为例,对其截取部分关键原始信息,示例如下:
<doc id="12"title="Anarchism">
<h1>Anarchism/NNP/anarchism</h1>
Anarchism/NNP/anarchism is/VBZ/be a/DT/a
[[Hierarchy/NNP/hierarchy|hierarchical/JJ/hierarchical]]
Hierarchy/NNP/hierarchy hierarchical/JJ/hierarchical
[[political/JJ/political philosophy/NN/philosophy]][[philosophy/NN/philosophy]]
[[philosophy/NN/philosophy society/NN/society]]
political/JJ/political philosophy/NN/philosophy society/NN/society
<h2>History/NN/history</h2>
</doc>
收集文档中标题的词原形,构建HAnarchism={"anarchism","history"}。计算标题Anarchism的词原形为anarchism。由于标题“<h1>Anarchism/NNP/anarchism</h1>”的词原形与标题Anarchism的词原形一致,因此在其内部添加三个括号的概念标记,结果如下:
<doc id="12"title="Anarchism">
<h1>[[[Anarchism/NNP/anarchism]]]</h1>
Anarchism/NNP/anarchism is/VBZ/be a/DT/a
[[Hierarchy/NNP/hierarchy|hierarchical/JJ/hierarchical]]
Hierarchy/NNP/hierarchy hierarchical/JJ/hierarchical
[[political/JJ/political philosophy/NN/philosophy]][[philosophy/NN/philosophy]]
[[philosophy/NN/philosophy society/NN/society]]
political/JJ/political philosophy/NN/philosophy society/NN/society
<h2>History/NN/history</h2>
</doc>
步骤2-2-2)在docl中,收集所有概念标记信息,构建概念标记集合,记作按照每个元素中link所包含的单词个数降序排列。
需要说明的是,若target≠link,则target本身也作为一个热点文本(link),目标概念为其自身。
本发明实施例中,以步骤2-2-1)中发明实施例的结果进行处理为例,示例如下:
<doc id="12"title="Anarchism">
<h1>[[[Anarchism/NNP/anarchism]]]</h1>
Anarchism/NNP/anarchism is/VBZ/be a/DT/a
[[Hierarchy/NNP/hierarchy|hierarchical/JJ/hierarchical]]
Hierarchy/NNP/hierarchy hierarchical/JJ/hierarchical
[[political/JJ/political philosophy/NN/philosophy]][[philosophy/NN/philosophy]]
[[philosophy/NN/philosophy society/NN/society]]
political/JJ/political philosophy/NN/philosophy society/NN/society
<h2>History/NN/history</h2>
</doc>
文档中共有五处概念标记,分别为:[[[Anarchism/NNP/anarchism]]]、[[political/JJ/political philosophy/NN/philosophy]]、[[Hierarchy/NNP/hierarchy|hierarchical/JJ/hierarchical]]、[[philosophy/NN/philosophy]]、[[philosophy/NN/philosophy society/NN/society]];按照link所含单词的数量降序排列构建概念标记集合LAnarchism={(“political philosophy”,“politicalphilosophy”),(“philosophysociety”,“philosophy society”),(“anarchism”,“anarchism”),(“hierarchical”,“hierarchy”),(“hierarchy”,“hierarchy”),(“philosophy”,“philosophy”)}。
步骤2-2-3)遍历若在docl中存在lemma(wl,j)=lemma(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-1)中发明实施例的结果进行处理为例,示例如下:
<doc id="12"title="Anarchism">
<h1>[[[Anarchism/NNP/anarchism]]]</h1>
Anarchism/NNP/anarchism is/VBZ/be a/DT/a
[[Hierarchy/NNP/hierarchy|hierarchical/JJ/hierarchical]]
Hierarchy/NNP/hierarchy hierarchical/JJ/hierarchical
[[political/JJ/political philosophy/NN/philosophy]][[philosophy/NN/philosophy]]
[[philosophy/NN/philosophy society/NN/society]]
political/JJ/political philosophy/NN/philosophy society/NN/society
<h2>History/NN/history</h2>
</doc>
根据步骤2-2-2)得到的概念标记集合LAnarchism={(“political philosophy”,“political philosophy”),(“philosophy society”,“philosophy society”),(“anarchism”,“anarchism”),(“hierarchical”,“hierarchy”),(“hierarchy”,“hierarchy”),(“philosophy”,“philosophy”)},查找属于LAnarchism但未加概念标记的词语,对其添加标记。
其中,“political/JJ/political philosophy/NN/philosophy society/NN/society”存在相交、包含的情况,按照LAnarchism中元素的顺序添加概念标记;对“politicalphilosophy”添加概念标记时,变为“[[[political/JJ/political philosophy/NN/philosophy]]]society/NN/society”;对“philosophy society”添加概念标记时,需先将“society/NN/society”补全,然后添加标记,变为“[[[political/JJ/politicalphilosophy/NN/philosophy]]][[[[philosophy/NN/philosophy society/NN/society]]]]”;对“philosophy”添加概念标记时,先插入“philosophy/NN/philosophy”,然后添加标记,变为“[[[political/JJ/political philosophy/NN/philosophy]]][[[[philosophy/NN/philosophy]]]][[[[philosophy/NN/philosophy society/NN/society]]]]”。
处理结果如下:
<doc id="12"title="Anarchism">
<h1>[[[Anarchism/NNP/anarchism]]]</h1>
[[[Anarchism/NNP/anarchism]]]is/VBZ/be a/DT/a
[[Hierarchy/NNP/hierarchy|hierarchical/JJ/hierarchical]]
[[[Hierarchy/NNP/hierarchy]]][[Hierarchy/NNP/hierarchy|hierarchical/JJ/hierarchical]]
[[political/JJ/political philosophy/NN/philosophy]][[philosophy/NN/philosophy]]
[[philosophy/NN/philosophy society/NN/society]]
[[[political/JJ/political philosophy/NN/philosophy]]][[[[philosophy/NN/philosophy]]]][[[[philosophy/NN/philosophy society/NN/society]]]]
<h2>History/NN/history</h2>
</doc>
步骤2-3)根据最大频率词义算法,对步骤2-2)处理过的基础语料库做进一步的概念标记扩充,具体为:
收集经过步骤2-2)扩充概念的基础语料库中的概念标记信息元组,构建概念标记集合,记作:
概念标记信息元组包含热点文本(linki)、目标概念集合(Ti)、热点文本的数量与热点文本一致但未加概念标记的词语的数量统计每个概念标记的目标概念和及其数量得到目标概念元组集合,记作:Ti={(targeti,1,numi,1),(targeti,2,numi,2),…,(targeti,n,numi,n)};语料库中未加概念标记的词语记作wk。
步骤2-3-1)遍历LS,按照公式(1)计算词语的概念标注概率Pl(linki);保留结果大于50%的linki生成高频概念标注集合,记为LSH;
本发明实施例中,以Anarchism和Autism文档模拟作为整个语料库,对其截取部分关键原始信息,示例如下:
<doc id="12"title="Anarchism">
<h1>[[[Anarchism/NNP/anarchism]]]</h1>
[[[Anarchism/NNP/anarchism]]]is/VBZ/be a/DT/a[[political/JJ/political]]that/WDT/that advocates/VBZ/advocate././.
</doc>
<doc id="25"title="Autism">
Anarchism/NNP/anarchism is/VBZ/be a/DT/a at/IN/at apparent/JJ/apparent political/JJ/political and/CC/and usually/RB/usually political/JJ/political././.
</doc>
语料库中共有两个概念标注信息[[[Anarchism/NNP/anarchism]]]和[[political/JJ/political]];统计前者在语料库中作为概念标注的次数为2次,后者为1次;统计前者在语料库中出现的次数为3次,后者为3次,生成LS={anarchism(Tanarchism,2,3),political(Tpolitical,1,3)},Tanarchism={(“anarchism”,2)},Tpolitical={(“political”,1)};按照公式(1)计算概念标注概率,结果如下:
保留结果大于50%的linki生成高频概念标注集合LSH={anarchism(Tanarchism,2,3)}。
步骤2-3-2)遍历LSH,依次对linki中Ti的每个元素按照公式(2)计算目标概念的标注概率Pt(targeti,j);保留标注概率大于90%的目标概念(target),生成高频目标概念集合,记为LSHC={(linki,targeti,j),…},将集合的各个元素按照linki中含有的单词数降序排列;
本发明实施例中,以步骤2-3-1)的示例为例。遍历LSH={anarchism(Tanarchism,2,3)},对anarchism(Tanarchism,2,3)中Tanarchism的每个元素按照公式(2)计算目标概念的标注概率,结果如下:
生成高频概念集合LSHC={(“anarchism”,“anarchism”)}。
步骤2-3-3)遍历LSHC,若存在lemma(wk)=lemma(linki),则将wk左右添加五个中括号的概念标记,变为:[[[[[wk]]]]]。
需要说明的是,添加概念标记时会出现相交、包含的情况。处理方式与步骤2-2-3)的处理方式基本一致;不同之处是,为w1和w2添加概念标记时都用五个中括号,变为[[[[[w1]]]]][[[[[w2]]]]]。
本发明实施例中,以步骤2-3-1)的示例为例。遍历LSHC={(“anarchism”,“anarchism”)},在语料库中共找到1处未加标记的anarchism,添加标记后示例变为:
<doc id="12"title="Anarchism">
<h1>[[[Anarchism/NNP/anarchism]]]</h1>
[[[Anarchism/NNP/anarchism]]]is/VBZ/be a/DT/a[[political/JJ/political]]that/WDT/that advocates/VBZ/advocate././.
</doc>
<doc id="25"title="Autism">
[[[[[Anarchism/NNP/anarchism]]]]]is/VBZ/be a/DT/a at/IN/at apparent/JJ/apparent political/JJ/political and/CC/and usually/RB/usually political/JJ/political././.
</doc>
步骤103,训练概念向量。
根据Wikipedia概念语料库,训练概念向量,具体为:
步骤3-1)对Wikipedia概念语料库进行处理,除去概念标记内词语的lemma信息,其他词语的token信息;
本发明实施例中,以“Although/although he/he did/do not/not accord/accord the/the[[[states/state(/(/(polity/polity)/)/)|state/state]]]with/with[[[morality/morality]]]legitimacy/legitimacy”的处理为例,经处理后变为:“although he do not accord the[[[states(polity)]]]with[[[morality]]]legitimacy”
步骤3-2)依次对概念标记进行处理,只保留目标概念并查找目标概念所对应的文档ID,将ID与目标概念之间用“_”连接;去掉概念标记左右两侧的中括号,生成概念语料库。
需要说明的是,目标概念所对应的文档ID由Python的Wikipedia库获取。
本发明实施例中,以步骤3-1)的示例处理结果“although he do not accord the[[[states(polity)]]]with[[[morality]]]legitimacy”的处理为例。使用WikipediaTool获取states(polity)的文档ID为5585381,morality的文档ID为43254,将ID与目标概念连接并去掉中括号后变为:“although he do not accord the 5585381_states_(_polity_)with 43254_morality legitimacy”。
步骤3-3)使用概念语料库训练概念向量。
训练得到的概念向量文件包含两种数据:一是传统的词向量,二是概念向量。比如:states和5585381_states_(_polity_),前者是传统的标准词向量的索引,而后者是本发明专利提出的概念向量的索引。后续步骤对概念向量的查询和计算,均指对后者进行操作处理,不涉及前者。
本发明实施例中使用gensim工具包中的word2vec模型训练概念向量,向量的维数是300,最低词频是100,训练算法是Skip-gram,其他训练参数均使用默认值。
步骤104,获取待比较词语对的概念集合。
对于待比较词语对,根据Wikipedia查询由用户指定的不同层次的概念集合,获得其词语概念集合,具体为:
步骤4-1)获取Normal、Redirect、Disambig、HatenoteLinkItems、HatenoteLinkDisambigItems各个层次的概念集合;
本发明实施例中,以收集词语对(weapon,helmet)的概念集合为例。weapon在Wikipedia中是一个正常页面,因此Normal是Weapon,Redirect和Disambig都为空,页面中<hatenote>部分有非歧义的热点文本,因此HatenoteLinkItems为Military technology、Weapons(album)、Weapons(film)、Weaponry(radio program),还包含有歧义的热点文本,因此HatenoteLinkDisambig为Weapon(disambiguation)。查找Weapon(disambiguation)消歧页中的概念,得到HatenoteLinkDisambigItems为Weapon(band)、Weapon(album)、Weapon(EP)、Weapon(song)、Recurring elements in the Final Fantasy series、Weapon(novel)、Weapon(biology)、Weapon-class destroyer。同理可得,helmet的各个层次概念,Normal:Helmet,Redirect、Disambig和HatenoteLinkItems都为空,HatenoteLinkDisambigItems:Helmet(band)、Helmet(heraldry)、Helmet pigeon、TheHelmet、Impatiens glandulifera、Golden Helmet(Poland)、Silver Helmet(Poland)、Bronze Helmet(Poland)、Helsinki Metropolitan Area Libraries、Helmet,Virginia、Helmet Airport、Hemet,California。
步骤4-2)由用户指定概念获取层次,构建概念集合。
本发明实施例中,以收集词语对(weapon,helmet)的概念集合为例。根据步骤4-1)实施例的结果,假设用户指定的层次为:Normal_Redirect_Disambig_HatenoteLinkItems_HatenoteL inkDisambigItems,因此weapon的概念集合为Cweapon={Weapon,Militarytechnology,Weapon s(album),Weapons(film),Weaponry(radio program),Weapon(band),Weapon(album),We apon(EP),Weapon(song),Recurring elements in the FinalFantasy series,Weapon(novel),Weapon(biology),Weapon-class destroyer},helmet的概念集合为Chelmet={Helmet,Helmet(b and),Helmet(heraldry),Helmet pigeon,TheHelmet,Impatiens glandulifera,Golden Helmet(Poland),Silver Helmet(Poland),Bronze Helmet(Poland),Helsinki Metropolitan Area Libr aries,"Helmet,Virginia",Helmet Airport,"Hemet,California"}。
需要说明的是,用户可指定的层次如下所示:
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所得的概念向量文件,查询和中各个概念的概念向量;若某一概念查找失败,则将其由概念集合中剔除。
本发明实施例中,以词语对(weapon,helmet)的处理为例。由步骤4-2)得到Cweapon和Chelmet;以查询Cweapon中“Military technology”的概念向量为例,查询“Militarytechnology”的文档ID为90815,概念索引为“90815_Military_technology”,从概念向量文件查找,得到“Military technology”的概念向量;同理,查询Cweapon和Chelmet中各个概念的概念向量;剔除查询失败的概念后,Cweapon={"Weapon","Military technology"},Chelmet={"Helmet","Helmet(band)","Helmet(heraldry)","Hemet,California"}。
步骤5-2)根据步骤5-1)处理过的和计算它们的笛卡尔积得待计算概念集合,记作
本发明实施例中,以词语对(weapon,helmet)的处理为例,由步骤5-1)得,weapon的概念集合Cweapon={"Weapon","Military technology"},helmet的概念集合Chelmet={"Helmet","Helmet(band)","Helmet(heraldry)","Hemet,California"};计算Cweapon和Chelmet的笛卡尔积,可得Cweapon,helmet={("Weapon","Helmet"),("Weapon","Helmet(band)"),("Weapon","Helmet(heraldry)"),("Weapon","Hemet,California"),("Military technology","Helmet"),("Military technology","Helmet(band)"),("Military technology","Helmet(heraldry)"),("Military technology","Hemet,California")}。
步骤5-3)由步骤5-1)和步骤5-2),按照公式(3)计算每个概念对的概念向量相似度,生成候选结果集合;
其中和表示概念ci和cj的概念向量,和表示向量和的模。
本发明实施例中,以词语对(weapon,helmet)的处理为例。由步骤5-1)和步骤5-2)实施例中得Cweapon,helmet={("Weapon","Helmet"),("Weapon","Helmet(band)"),("Weapon","Helmet(heraldry)"),("Weapon","Hemet,California"),("Militarytechnology","Helmet"),("Military technology","Helmet(band)"),("Militarytechnology","Helmet(heraldry)"),("Military technology","Hemet,California")}和各个概念的概念向量。
计算Cweapon,helmet中每个概念对的概念向量相似度,结果为:
sim(“Weapon”,”Helmet”)=0.317226596513;
sim(“Weapon”,”Helmet(band)”)=0.045303735829;
sim(“Weapon”,”Helmet(heraldry)”)=0.216137243074;
sim(“Weapon”,”Helmet,California”)=0.0304531646435;
sim(“Military technology”,”Helmet”)=0.216070853914;
sim(“Military technology”,”Helmet(band)”)=0.0535498762692;
sim(“Military technology”,”Helmet(heraldry)”)=0.184528133313;
sim(“Military technology”,”Helmet,California”)=0.047828805838;
步骤5-4)从候选结果集中选取概念向量相似度的最大值,作为待比较词语对的相关度。
本发明实施例中,以词语对(weapon,helmet)的处理为例。由步骤5-3)实施例得到候选结果集;sim(“Weapon”,”Helmet”)=0.317226596513的值最大,因此词语对(weapon,helmet)的相关度为0.317226596513。
通过以上操作步骤,即可完成词语对(weapon,helmet)的相关度计算工作。
相应地,本发明实施例还提供一种基于Wikipedia概念向量的英文词语相关度计算装置,其结构示意图如图2所示。
在该实施例中,所述装置包括:
Wikipedia基础语料库构建单元201,用于对Wikipedia Dump生语料进行规范化处理,仅保留namespace属性为0的Wikipedia概念文档;对于每个概念文档,只保留其正式文本及概念标注信息;将处理后的概念文档收集起来,作为Wikipedia基础语料库;
Wikipedia概念语料库构建单元202,用于对Wikipedia基础语料库进行概念标注扩充,构建Wikipedia概念语料库;
概念向量训练单元203,用于使用Wikipedia概念语料库,训练概念向量;
概念集合提取单元204,用于对待比较词语对,根据Wikipedia查询由用户指定的不同层次的概念集合,获得其词语概念集合;
词语相关度计算单元205,用于取得待比较词语对的概念集合的笛卡尔积,计算其中每个概念对所对应的概念向量的相似度;取最大的概念向量的相似度作为待比较词语对的相关度。
图2所示装置的Wikipedia基础语料库构建单元201的结构示意图如图3所示,其包括:
概念文档提取单元301,用于对Wikipedia Dump生语料提取namespace属性为0的Wikipedia概念文档;
单文档规范化处理单元302,用于对文档内容进行如下处理:删除用户编辑记录和外部链接,替换特殊字符,保留概念标注信息,利用<h#n>标记段落标题;其中,#n={1,2,3...n},代表文档标题的层级,从1到n表示由高到低。
图2所示装置的Wikipedia概念语料库构建单元202的结构示意图如图4所示,其包括:
词形还原单元401,用于对Wikipedia基础语料库进行词形还原;
单文档概念标记扩充单元402,用于根据one sense per discourse假设,对基础语料库中的每篇文档扩充概念标记;
全文档概念标记扩充单元403,用于根据最大频率词义算法,对单文档概念标记扩充单元处理过的基础语料库进一步扩充概念标记。
图2所示装置的概念向量训练单元203的结构示意图如图5所示,其包括:
信息清除单元501,用于对Wikipedia概念语料库进行处理,除去概念标记内词语的lemma信息,其他词语的token信息;
概念标记单元502,用于对概念标记进行处理,只保留目标概念并查找目标概念所对应的文档ID,将ID与目标概念之间用“_”连接;去掉概念标记左右两侧的中括号,生成概念语料库;
概念向量训练单元503,用于使用概念语料库训练概念向。
图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卡等。
综上所述,在本发明实施方式中,由Wikipedia Dump服务站点获取生语料,进行规范化处理,生成Wikipedia基础语料库;进行概念标注扩充,构建Wikipedia概念语料库;根据Wikipedia概念语料库,训练概念向量;对于待比较词语对,根据Wikipedia,获得其词语概念集合;计算概念集合的笛卡尔积中的每个概念对所对应的概念向量的相似度,取最大值作为待比较词语对的相关度。由此可见,应用本发明实施方式之后,实现了基于Wikipedia概念向量的英文词语相关度计算。本发明实施方式通过充分挖掘Wikipedia知识库的概念信息,进行了概念语料的构建和目标概念的查询获取,可在概念层面上进行词语相关度的计算;充分发挥了深度学习的优势,利用词向量技术生成概念向量,能够较为准确地表达概念,避免了传统词向量无法准确区分不同概念的问题;将普通词语转换为词原形后再训练概念向量,有利于提高概念向量的准确性。本发明提出的基于Wikipedia概念向量的英文词语相关度计算方法和装置,能够自动完成概念知识库的构建,准确选择词语的概念集合,并计算概念相似度,具有较高的词语相关度计算正确率,改善英文词语相关度的计算效果。
本说明书中的实施例采用递进的方式描述,彼此相同相似的部分互相参见即可。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法和装置;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,故本说明书不应理解为对本发明的限制。
Claims (8)
1.一种基于Wikipedia概念向量的英文词语相关度计算方法,在特征在于,该方法包括以下步骤:
步骤一、由Wikipedia Dump服务站点获取其Dump生语料;并对生语料进行规范化处理,仅保留namespace属性为0的Wikipedia概念文档;对于每个概念文档,只保留其正式文本及概念标注信息;将处理后的概念文档收集起来,作为Wikipedia基础语料库;
步骤二、对Wikipedia基础语料库进行概念标注扩充,构建Wikipedia概念语料库;
步骤三、根据Wikipedia概念语料库,训练概念向量;
步骤四、对于待比较词语对,根据Wikipedia查询由用户指定的不同层次的概念集合,获得其词语概念集合;
步骤五、取得待比较词语对的概念集合的笛卡尔积,计算其中每个概念对所对应的概念向量的相似度;取最大的概念向量的相似度作为待比较词语对的相关度。
2.根据权利要求1所述的基于Wikipedia概念向量的英文词语相关度计算方法,其特征在于,所述步骤一中,构建Wikipedia基础语料库时,具体为:
步骤1-1)访问Wikipedia Dump服务站点,下载最新的enwiki数据库;
步骤1-2)根据enwiki数据库依次处理<page>节点,提取ns的值为0的<page>节点,提取该节点中的title、redirect、id和text的内容,同时对text做如下处理:删除用户编辑记录和外部链接,替换特殊字符,保留概念标注信息,利用<h#n>标记段落标题;其中,#n={1,2,3...n},代表文档标题的层级,从1到n表示由高到低。
3.根据权利要求1所述的基于Wikipedia概念向量的英文词语相关度计算方法,其特征在于,所述步骤二中,构建Wikipedia概念语料库时,具体为:
步骤2-1)对Wikipedia基础语料库进行词形还原;
步骤2-2)根据one sense per discourse假设,对基础语料库中的每篇文档进行概念标记扩充;
步骤2-3)根据最大频率词义算法,对步骤2-2)处理过的基础语料库做进一步的概念标记扩充。
4.根据权利要求1所述的基于Wikipedia概念向量的英文词语相关度计算方法,其特征在于,所述步骤三中,训练概念向量时,具体为:
步骤3-1)对Wikipedia概念语料库进行处理,除去概念标记内词语的lemma信息,其他词语的token信息;
步骤3-2)依次对概念标记进行处理,只保留目标概念并查找目标概念所对应的文档ID,将ID与目标概念之间用“_”连接;去掉概念标记左右两侧的中括号,生成概念语料库;
步骤3-3)使用概念语料库训练概念向量。
5.根据权利要求1所述的基于Wikipedia概念向量的英文词语相关度计算方法,其特征在于,所述步骤四中,获取待比较词语对的概念集合时,具体为:
步骤4-1)获取Normal、Redirect、Disambig、HatenoteLinkItems、HatenoteLinkDisambigItems各个层次的初始概念集合;
步骤4-2)由用户指定概念获取层次,构建概念集合;
需要说明的是,用户可指定的层次如下所示:
g)Normal:只查找正常页面的Title;否则,返回None;
h)Normal_Redirect:只查找正常页面的Title或重定向页的RedirectTitle;若查找失败,则返回None;
i)Normal_Redirect_Disambig:查找正常页面的Title或重定向页的RedirectTitle,并查找消歧页的DisambigItems;若查找失败,则返回None;
j)Normal_Redirect_HatenoteLinkItem:查找正常页面的Title或重定向页的RedirectTitle,并查找页面包含的HatenoteLinkItems;若查找失败,则返回None;
k)Normal_Redirect_Disambig_HatenoteLinkItems:查找正常页面的Title或重定向页的RedirectTitle,并查找消歧页的DisambigItems,并查找页面包含的HatenoteLinkItems;若查找失败,则返回None;
l)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重复的)。
6.根据权利要求1所述的基于Wikipedia概念向量的英文词语相关度计算方法,其特征在于,所述步骤五中,计算各个概念对的概念向量相似度并选取最大值作为词语相关度时,具体为:
步骤5-1)待比较词语对为(w1,w2),w1的概念集合和w2的概念集合根据步骤三所得的概念向量文件,查询和中各个概念的概念向量;若某一概念查找失败,则将其由概念集合中剔除;
步骤5-2)根据步骤5-1)处理过的和计算它们的笛卡尔积得待计算概念集合,记作
步骤5-3)由步骤5-1)和步骤5-2),按照公式(3)计算每个概念对的概念向量相似度,生成候选结果集合;
<mrow>
<mi>s</mi>
<mi>i</mi>
<mi>m</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
<mo>,</mo>
<msub>
<mi>c</mi>
<mi>j</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfrac>
<mrow>
<msub>
<mover>
<mi>c</mi>
<mo>&RightArrow;</mo>
</mover>
<mi>i</mi>
</msub>
<mo>&CenterDot;</mo>
<msub>
<mover>
<mi>c</mi>
<mo>&RightArrow;</mo>
</mover>
<mi>j</mi>
</msub>
</mrow>
<mrow>
<mrow>
<mo>|</mo>
<msub>
<mover>
<mi>c</mi>
<mo>&RightArrow;</mo>
</mover>
<mi>i</mi>
</msub>
<mo>|</mo>
</mrow>
<mo>&CenterDot;</mo>
<mrow>
<mo>|</mo>
<msub>
<mover>
<mi>c</mi>
<mo>&RightArrow;</mo>
</mover>
<mi>j</mi>
</msub>
<mo>|</mo>
</mrow>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</mrow>
其中和表示概念ci和cj的概念向量,和表示向量和的模;
步骤5-4)从候选结果集中选取概念向量相似度的最大值,作为待比较词语对的相关度。
7.一种基于Wikipedia概念向量的英文词语相关度计算装置,其特征在于,该装置包括Wikipedia基础语料库构建单元、Wikipedia概念语料库构建单元、概念向量训练单元、概念集合提取单元、词语相关度计算单元,其中:
Wikipedia基础语料库构建单元,用于对Wikipedia Dump生语料进行规范化处理,仅保留namespace属性为0的Wikipedia概念文档;对于每个概念文档,只保留其正式文本及概念标注信息;将处理后的概念文档收集起来,作为Wikipedia基础语料库;
Wikipedia概念语料库构建单元,用于对Wikipedia基础语料库进行概念标注扩充,构建Wikipedia概念语料库;
概念向量训练单元,用于使用Wikipedia概念语料库训练概念向量;
概念集合提取单元,用于对待比较词语对,根据Wikipedia查询由用户指定的不同层次的概念集合,获得其词语概念集合;
词语相关度计算单元,用于取得待比较词语对的概念集合的笛卡尔积,计算其中每个概念对所对应的概念向量的相似度;取最大的概念向量的相似度作为待比较词语对的相关度。
8.根据权利要求7所述的基于Wikipedia概念向量的英文词语相关度计算装置,其特征在于,所述Wikipedia基础语料库构建单元还包括:
概念文档提取单元,用于对Wikipedia Dump生语料提取namespace属性为0的Wikipedia概念文档;
单文档规范化处理单元,用于对文档内容进行如下处理:删除用户编辑记录和外部链接,替换特殊字符,保留概念标注信息,利用<h#n>标记段落标题;其中,#n={1,2,3...n},代表文档标题的层级,从1到n表示由高到低;
根据权利要求7所述的基于Wikipedia概念向量的英文词语相关度计算装置,其特征在于,所述Wikipedia概念语料库构建单元还包括:
词形还原单元,用于对Wikipedia基础语料库进行词形还原;
单文档概念标记扩充单元,用于根据one sense per discourse假设,对基础语料库中的每篇文档扩充概念标记;
全文档概念标记扩充单元,用于根据最大频率词义算法,对单文档概念扩充单元处理过的基础语料库进一步扩充概念标记;
根据权利要求7所述的基于Wikipedia概念向量的英文词语相关度计算装置,其特征在于,所述概念向量训练单元还包括:
信息清除单元,用于对Wikipedia概念语料库进行处理,除去概念标记内词语的lemma信息,其他词语的token信息;
概念标记单元,用于对概念标记进行处理,只保留目标概念并查找目标概念所对应的文档ID,将ID与目标概念之间用“_”连接;去掉概念标记左右两侧的中括号,生成概念语料库;
概念向量训练单元,用于使用概念语料库训练概念向量;
根据权利要求7所述的基于Wikipedia概念向量的英文词语相关度计算装置,其特征在于,所述概念集合提取单元还包括:
初始概念获取单元,用于获取Normal、Redirect、Disambig、HatenoteLinkItems、HatenoteLinkDisambigItems各个层次的初始概念集合;
概念层次选择单元,由用户指定概念获取层次,构建概念集合;
根据权利要求7所述的基于Wikipedia概念向量的英文词语相关度计算装置,其特征在于,所述词语相关度计算单元还包括:
概念向量查询单元,用于查询概念集合中各个概念的概念向量;若某一概念查找失败,则将其由概念集合中剔除;
笛卡尔积计算单元,用于对概念向量查询单元处理的概念集合计算笛卡尔积;
概念向量相似度计算单元,用于计算概念集合中每个概念对的概念向量相似度,生成候选结果集合;
词语相关度选择单元,用于从候选结果集中选取概念向量相似度的最大值,作为待比较词语对的相关度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710708577.1A CN107436955B (zh) | 2017-08-17 | 2017-08-17 | 一种基于Wikipedia概念向量的英文词语相关度计算方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710708577.1A CN107436955B (zh) | 2017-08-17 | 2017-08-17 | 一种基于Wikipedia概念向量的英文词语相关度计算方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107436955A true CN107436955A (zh) | 2017-12-05 |
CN107436955B CN107436955B (zh) | 2022-02-25 |
Family
ID=60460042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710708577.1A Active CN107436955B (zh) | 2017-08-17 | 2017-08-17 | 一种基于Wikipedia概念向量的英文词语相关度计算方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107436955B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132928A (zh) * | 2017-12-22 | 2018-06-08 | 山东师范大学 | 基于Wikipedia链接结构的英文概念向量生成方法和装置 |
CN108153853A (zh) * | 2017-12-22 | 2018-06-12 | 齐鲁工业大学 | 基于Wikipedia链接结构的中文概念向量生成方法和装置 |
CN108460021A (zh) * | 2018-03-16 | 2018-08-28 | 安徽大学 | 一种提取论文标题中的问题方法对的方法 |
CN109325230A (zh) * | 2018-09-21 | 2019-02-12 | 广西师范大学 | 一种基于维基百科双向链接的词语语义相关度判断方法 |
CN110059318A (zh) * | 2019-04-18 | 2019-07-26 | 广西师范大学 | 基于维基百科与WordNet的论述题自动评卷方法 |
CN111027315A (zh) * | 2019-11-18 | 2020-04-17 | 曲阜师范大学 | 一种基于Word2Vec模型的WordNet中词语相似度计算方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360383A (zh) * | 2011-10-15 | 2012-02-22 | 西安交通大学 | 一种面向文本的领域术语与术语关系抽取方法 |
CN103678499A (zh) * | 2013-11-19 | 2014-03-26 | 肖冬梅 | 一种基于多源异构专利数据语义集成的数据挖掘方法 |
CN104133868A (zh) * | 2014-07-21 | 2014-11-05 | 厦门大学 | 一种用于垂直爬虫数据分类整合的策略 |
CN105279264A (zh) * | 2015-10-26 | 2016-01-27 | 深圳市智搜信息技术有限公司 | 一种文档的语义相关度计算方法 |
CN106372122A (zh) * | 2016-08-23 | 2017-02-01 | 温州大学瓯江学院 | 一种基于维基语义匹配的文档分类方法及系统 |
US20170161619A1 (en) * | 2015-12-08 | 2017-06-08 | International Business Machines Corporation | Concept-Based Navigation |
-
2017
- 2017-08-17 CN CN201710708577.1A patent/CN107436955B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360383A (zh) * | 2011-10-15 | 2012-02-22 | 西安交通大学 | 一种面向文本的领域术语与术语关系抽取方法 |
CN103678499A (zh) * | 2013-11-19 | 2014-03-26 | 肖冬梅 | 一种基于多源异构专利数据语义集成的数据挖掘方法 |
CN104133868A (zh) * | 2014-07-21 | 2014-11-05 | 厦门大学 | 一种用于垂直爬虫数据分类整合的策略 |
CN105279264A (zh) * | 2015-10-26 | 2016-01-27 | 深圳市智搜信息技术有限公司 | 一种文档的语义相关度计算方法 |
US20170161619A1 (en) * | 2015-12-08 | 2017-06-08 | International Business Machines Corporation | Concept-Based Navigation |
CN106372122A (zh) * | 2016-08-23 | 2017-02-01 | 温州大学瓯江学院 | 一种基于维基语义匹配的文档分类方法及系统 |
Non-Patent Citations (5)
Title |
---|
MENGJIA FAN: "Word Similarity Computation Based on HowNet", 《2015 12TH INTERNATIONAL CONFERENCE ON FUZZY SYSTEMS AND KNOWLEDGE DISCOVERY (FSKD)》 * |
WILLIAM A.GATE 等: "One Sense per Discourse", 《HLT" 91:PROCEEDINGS OF THE WORKSHOP ON SPEECH AND NATURAL LANGUAGE》 * |
YUTENG ZHANG 等: "Chinese Word Similarity Computation based on Automatically Acquired Knowledge", 《PROCEEDINGS OF THE INTERNATIONAL CONFERENCE OF INFORMATION SCIENCE AND MANAGEMENT ENGINEERING》 * |
布凡: "文本信息度量研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
鹿文鹏: "基于依存和领域知识的词义消歧方法研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132928A (zh) * | 2017-12-22 | 2018-06-08 | 山东师范大学 | 基于Wikipedia链接结构的英文概念向量生成方法和装置 |
CN108153853A (zh) * | 2017-12-22 | 2018-06-12 | 齐鲁工业大学 | 基于Wikipedia链接结构的中文概念向量生成方法和装置 |
CN108132928B (zh) * | 2017-12-22 | 2021-10-15 | 山东师范大学 | 基于Wikipedia链接结构的英文概念向量生成方法和装置 |
CN108153853B (zh) * | 2017-12-22 | 2022-02-01 | 齐鲁工业大学 | 基于Wikipedia链接结构的中文概念向量生成方法和装置 |
CN108460021A (zh) * | 2018-03-16 | 2018-08-28 | 安徽大学 | 一种提取论文标题中的问题方法对的方法 |
CN108460021B (zh) * | 2018-03-16 | 2021-10-12 | 安徽大学 | 一种提取论文标题中的问题方法对的方法 |
CN109325230A (zh) * | 2018-09-21 | 2019-02-12 | 广西师范大学 | 一种基于维基百科双向链接的词语语义相关度判断方法 |
CN110059318A (zh) * | 2019-04-18 | 2019-07-26 | 广西师范大学 | 基于维基百科与WordNet的论述题自动评卷方法 |
CN110059318B (zh) * | 2019-04-18 | 2023-08-25 | 海道(深圳)教育科技有限责任公司 | 基于维基百科与WordNet的论述题自动评卷方法 |
CN111027315A (zh) * | 2019-11-18 | 2020-04-17 | 曲阜师范大学 | 一种基于Word2Vec模型的WordNet中词语相似度计算方法 |
CN111027315B (zh) * | 2019-11-18 | 2023-06-09 | 曲阜师范大学 | 一种基于Word2Vec模型的WordNet中词语相似度计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107436955B (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107436955A (zh) | 一种基于Wikipedia概念向量的英文词语相关度计算方法和装置 | |
CN106649260B (zh) | 基于评论文本挖掘的产品特征结构树构建方法 | |
Arasu et al. | Extracting structured data from web pages | |
CN104199857B (zh) | 一种基于多标签分类的税务文档层次分类方法 | |
CN111190900B (zh) | 一种云计算模式下json数据可视化优化方法 | |
US20150310073A1 (en) | Finding patterns in a knowledge base to compose table answers | |
CN106844658A (zh) | 一种中文文本知识图谱自动构建方法及系统 | |
CN103927358A (zh) | 文本检索方法及系统 | |
CN103425687A (zh) | 一种基于关键词的检索方法和系统 | |
CN106649666A (zh) | 一种左右递归新词发现方法 | |
JP2009110513A (ja) | ワードの類似性を用いたオントロジーの自動生成 | |
CN105677638B (zh) | Web信息抽取方法 | |
CN106569993A (zh) | 一种挖掘领域术语间上下位关系的方法及装置 | |
CN109902142B (zh) | 一种基于编辑距离的字符串模糊匹配和查询方法 | |
CN104484380A (zh) | 个性化搜索方法及装置 | |
CN102253930A (zh) | 一种文本翻译的方法及装置 | |
CN105608232A (zh) | 一种基于图形数据库的bug知识建模方法 | |
Sasidhar et al. | A survey on named entity recognition in Indian languages with particular reference to Telugu | |
CN112148885A (zh) | 一种基于知识图谱的智能搜索方法及系统 | |
Wang et al. | Neural related work summarization with a joint context-driven attention mechanism | |
CN107590119B (zh) | 人物属性信息抽取方法及装置 | |
CN108153851B (zh) | 一种基于规则和语义的通用论坛主题帖页面信息抽取方法 | |
Geng et al. | Autobib: Automatic extraction of bibliographic information on the web | |
CN107491524A (zh) | 一种基于Wikipedia概念向量的中文词语相关度计算方法和装置 | |
CN110717014B (zh) | 一种本体知识库动态构建方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |