CN107436955B - 一种基于Wikipedia概念向量的英文词语相关度计算方法和装置 - Google Patents
一种基于Wikipedia概念向量的英文词语相关度计算方法和装置 Download PDFInfo
- Publication number
- CN107436955B CN107436955B CN201710708577.1A CN201710708577A CN107436955B CN 107436955 B CN107436955 B CN 107436955B CN 201710708577 A CN201710708577 A CN 201710708577A CN 107436955 B CN107436955 B CN 107436955B
- Authority
- CN
- China
- Prior art keywords
- concept
- wikipedia
- page
- word
- 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.)
- Active
Links
Images
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)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (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]]]。
需要说明的是,若target≠link,则target本身也作为一个热点文本(link),目标概念为其自身。
需要说明的是,添加概念标记时会出现相交、包含的情况。下面分别说明出现的原因和处理方法:
在为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-3)由步骤5-1)和步骤5-2),按照公式(3)计算每个概念对的概念向量相似度,生成候选结果集合;
步骤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表示由高到低。
步骤102,构建Wikipedia概念语料库。
对Wikipedia基础语料库进行概念标注扩充,构建Wikipedia概念语料库,具体为:
步骤2-1)对Wikipedia基础语料库进行词形还原,具体为:
将文档中的单词记作tokeni,tokeni的原形记作lemmai,tokeni的词性记作posi。进行词形还原后,原文:token1,token2,...,tokenn,变为:token1/pos1/lemma1token2/pos2/lemma2…tokenn/posn/lemman。后面的步骤中涉及词语查找的操作均使用词的原形进行查找。
本发明实施例中,词形还原工具采用由CLiPS(Computational Linguistics&Psycholinguistics)提供的pattern.en工具包。
步骤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]]]。
需要说明的是,若target≠link,则target本身也作为一个热点文本(link),目标概念为其自身。
需要说明的是,添加概念标记时会出现相交、包含的情况。下面分别说明出现的原因和处理方法:
在为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]]]]]。
步骤103,训练概念向量。
根据Wikipedia概念语料库,训练概念向量,具体为:
步骤3-1)对Wikipedia概念语料库进行处理,除去概念标记内词语的lemma信息,其他词语的token信息;
步骤3-2)依次对概念标记进行处理,只保留目标概念并查找目标概念所对应的文档ID,将ID与目标概念之间用“_”连接;去掉概念标记左右两侧的中括号,生成概念语料库。
需要说明的是,目标概念所对应的文档ID由Python的Wikipedia库获取。
步骤3-3)使用概念语料库训练概念向量。
训练得到的概念向量文件包含两种数据:一是传统的词向量,二是概念向量。比如:states和5585381_states_(_polity_),前者是传统的标准词向量的索引,而后者是本发明专利提出的概念向量的索引。后续步骤对概念向量的查询和计算,均指对后者进行操作处理,不涉及前者。
本发明实施例中使用gensim工具包中的word2vec模型训练概念向量,向量的维数是300,最低词频是100,训练算法是Skip-gram,其他训练参数均使用默认值。
步骤104,获取待比较词语对的概念集合。
对于待比较词语对,根据Wikipedia查询由用户指定的不同层次的概念集合,获得其词语概念集合,具体为:
步骤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重复的);
步骤105,计算各个概念对的概念向量相似度并选取最大值作为词语相关度。
取得待比较词语对的概念集合的笛卡尔积,计算其中每个概念对所对应的概念向量的相似度;取最大的概念向量的相似度作为待比较词语对的相关度,具体为:
步骤5-3)由步骤5-1)和步骤5-2),按照公式(3)计算每个概念对的概念向量相似度,生成候选结果集合;
步骤5-4)从候选结果集中选取概念向量相似度的最大值,作为待比较词语对的相关度。
相应地,本发明实施例还提供一种基于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 (5)
1.一种基于Wikipedia概念向量的英文词语相关度计算方法,在特征在于,该方法包括以下步骤:
步骤一、由Wikipedia Dump服务站点获取其Dump生语料;并对生语料进行规范化处理,仅保留namespace属性为0的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基础语料库进行概念标注扩充,构建Wikipedia概念语料库;具体为:
步骤2-1)对Wikipedia基础语料库进行词形还原,具体为:
将文档中的单词记作tokeni,tokeni的原形记作lemmai,tokeni的词性记作posi;进行词形还原后,原文:token1,token2,...,tokenn,变为:token1/pos1/lemma1 token2/pos2/lemma2…tokenn/posn/lemman;后面的步骤中涉及词语查找的操作均使用词的原形进行查找;
步骤2-2)根据one sense per discourse假设,对基础语料库中的每篇文档进行概念标记扩充,具体为:
将基础语料库中的某一篇文档记作docl,其标题记作titlel,标识记作idl;该篇文档中的某一概念标记的热点文本记作linkl,k,目标概念记作targetl,k;docl中未加概念标记的词语记作wl,i;lemma(w)表示取词语w的原形;
步骤2-2-1)在docl中,收集<h#n>...</h#n>(#n=1,2,...,n)标签中的词语,作为docl的子标题集合,记作遍历中的元素,若lemma(headl,i)=lemma(titlel),则将原文中headl,i左右加上三个中括号的概念标记,变为:[[[headl,i]]];
步骤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]]]]];
步骤三、根据Wikipedia概念语料库,训练概念向量;
步骤四、对于待比较词语对,根据Wikipedia查询由用户指定的不同层次的概念集合,获得其词语概念集合;
步骤五、取得待比较词语对的概念集合的笛卡尔积,计算其中每个概念对所对应的概念向量的相似度;取最大的概念向量的相似度作为待比较词语对的相关度。
2.根据权利要求1所述的基于Wikipedia概念向量的英文词语相关度计算方法,其特征在于,所述步骤三中,训练概念向量时,具体为:
步骤3-1)对Wikipedia概念语料库进行处理,除去概念标记内词语的lemma信息,其他词语的token信息;
步骤3-2)依次对概念标记进行处理,只保留目标概念并查找目标概念所对应的文档ID,将ID与目标概念之间用“_”连接;去掉概念标记左右两侧的中括号,生成概念语料库;
步骤3-3)使用概念语料库训练概念向量。
3.根据权利要求1所述的基于Wikipedia概念向量的英文词语相关度计算方法,其特征在于,所述步骤四中,获取待比较词语对的概念集合时,具体为:
步骤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重复的。
4.根据权利要求1所述的基于Wikipedia概念向量的英文词语相关度计算方法,其特征在于,所述步骤五中,计算各个概念对的概念向量相似度并选取最大值作为词语相关度时,具体为:
步骤5-3)由步骤5-1)和步骤5-2),按照公式(3)计算每个概念对的概念向量相似度,生成候选结果集合;
步骤5-4)从候选结果集中选取概念向量相似度的最大值,作为待比较词语对的相关度。
5.一种基于Wikipedia概念向量的英文词语相关度计算装置,其特征在于,该装置包括Wikipedia基础语料库构建单元、Wikipedia概念语料库构建单元、概念向量训练单元、概念集合提取单元、词语相关度计算单元,分别实现权利要求1-4任意一项所述的一种基于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 CN107436955A (zh) | 2017-12-05 |
CN107436955B true 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) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132928B (zh) * | 2017-12-22 | 2021-10-15 | 山东师范大学 | 基于Wikipedia链接结构的英文概念向量生成方法和装置 |
CN108153853B (zh) * | 2017-12-22 | 2022-02-01 | 齐鲁工业大学 | 基于Wikipedia链接结构的中文概念向量生成方法和装置 |
CN108460021B (zh) * | 2018-03-16 | 2021-10-12 | 安徽大学 | 一种提取论文标题中的问题方法对的方法 |
CN109325230B (zh) * | 2018-09-21 | 2021-06-15 | 广西师范大学 | 一种基于维基百科双向链接的词语语义相关度判断方法 |
CN110059318B (zh) * | 2019-04-18 | 2023-08-25 | 海道(深圳)教育科技有限责任公司 | 基于维基百科与WordNet的论述题自动评卷方法 |
CN111027315B (zh) * | 2019-11-18 | 2023-06-09 | 曲阜师范大学 | 一种基于Word2Vec模型的WordNet中词语相似度计算方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279264A (zh) * | 2015-10-26 | 2016-01-27 | 深圳市智搜信息技术有限公司 | 一种文档的语义相关度计算方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360383B (zh) * | 2011-10-15 | 2013-07-31 | 西安交通大学 | 一种面向文本的领域术语与术语关系抽取方法 |
CN103678499A (zh) * | 2013-11-19 | 2014-03-26 | 肖冬梅 | 一种基于多源异构专利数据语义集成的数据挖掘方法 |
CN104133868B (zh) * | 2014-07-21 | 2018-01-05 | 厦门大学 | 一种用于垂直爬虫数据分类整合的策略 |
US20170161619A1 (en) * | 2015-12-08 | 2017-06-08 | International Business Machines Corporation | Concept-Based Navigation |
CN106372122B (zh) * | 2016-08-23 | 2018-04-10 | 温州大学瓯江学院 | 一种基于维基语义匹配的文档分类方法及系统 |
-
2017
- 2017-08-17 CN CN201710708577.1A patent/CN107436955B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279264A (zh) * | 2015-10-26 | 2016-01-27 | 深圳市智搜信息技术有限公司 | 一种文档的语义相关度计算方法 |
Non-Patent Citations (2)
Title |
---|
One Sense per Discourse;William A.Gate 等;《HLT" 91:Proceedings of the workshop on Speech and Natural Language》;19920229;233-237 * |
基于依存和领域知识的词义消歧方法研究;鹿文鹏;《中国博士学位论文全文数据库 信息科技辑》;20150415(第04期);I138-99 * |
Also Published As
Publication number | Publication date |
---|---|
CN107436955A (zh) | 2017-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107436955B (zh) | 一种基于Wikipedia概念向量的英文词语相关度计算方法和装置 | |
CN111143479B (zh) | 基于dbscan聚类算法的知识图谱关系抽取与rest服务可视化融合方法 | |
Lu et al. | Annotating search results from web databases | |
CN111190900B (zh) | 一种云计算模式下json数据可视化优化方法 | |
CN101464905B (zh) | 一种网页信息抽取的系统及方法 | |
CN111177591B (zh) | 面向可视化需求的基于知识图谱的Web数据优化方法 | |
CN101515287B (zh) | 一种用于复杂页面的包装器自动生成方法 | |
WO2018000272A1 (zh) | 一种语料生成装置和方法 | |
CN108363725B (zh) | 一种用户评论观点提取和观点标签生成的方法 | |
CN105205699A (zh) | 基于酒店点评的用户标签和酒店标签匹配方法及装置 | |
CN108427714A (zh) | 基于机器学习的房源重复记录识别方法及系统 | |
CN103049435A (zh) | 文本细粒度情感分析方法及装置 | |
CN105677638B (zh) | Web信息抽取方法 | |
CN113962293B (zh) | 一种基于LightGBM分类与表示学习的姓名消歧方法和系统 | |
CN107590119B (zh) | 人物属性信息抽取方法及装置 | |
CN111143574A (zh) | 一种基于少数民族文化知识图谱的查询及可视化系统构建方法 | |
CN112257386B (zh) | 一种文景转换中场景空间关系信息布局生成的方法 | |
CN107491524B (zh) | 一种基于Wikipedia概念向量的中文词语相关度计算方法和装置 | |
CN111444713A (zh) | 新闻事件内实体关系抽取方法及装置 | |
CN115982390B (zh) | 一种产业链构建和迭代扩充开发方法 | |
CN103761312B (zh) | 一种多记录网页的信息抽取系统及方法 | |
CN111046662A (zh) | 分词模型的训练方法、装置、系统和存储介质 | |
Gentile et al. | Self training wrapper induction with linked data | |
Pu et al. | A vision-based approach for deep web form extraction | |
Wu et al. | Clustering results of image searches by annotations and visual features |
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 |