基于CN-DBpedia的实体识别与链接系统和方法与流程

文档序号:15347084发布日期:2018-09-04 22:53阅读:540来源:国知局

本发明属于数据业务技术领域,具体涉及一种基于cn-dbpedia的实体识别与链接系统和方法。



背景技术:

大数据时代的到来,为人工智能的飞速发展带来前所未有的数据红利。在大数据的“喂养”下,人工智能技术获得了前所未有的长足进步。其进展突出体现在以知识图谱为代表的知识工程以及深度学习为代表的机器学习等相关领域。随着深度学习对于大数据的红利消耗殆尽,深度学习模型效果的天花板日益迫近。另一方面大量知识图谱不断涌现,这些蕴含人类大量先验知识的宝库却尚未被深度学习有效利用。融合知识图谱与深度学习,已然成为进一步提升深度学习模型效果的重要思路之一。而在知识图谱技术中,最为基础且重要的是实体的识别与实体链接技术。

实体识别技术是指识别文本中的实体,实体链接是指将识别的实体链接到知识库中。现有的实体识别技术中,主要分为监督学习、半监督学习和无监督学习三类。其中监督学习是占主导地位的,包括隐含马尔可夫模型、决策树、最大熵模型、支持向量机、条件随机场以及神经网络。支持半监督学习的主要技术叫做拔靴法,即利用少量训练样本由多次重复抽样,重新建立起足以代表母体样本分布之新样本。无监督学习的一种典型方法是聚类。比如说,基于上下文相似度将命名实体进行聚类。实体链接的方法主要分为监督学习和无监督学习两类。其中监督学习是占主导地位的,包括二元分类建模、排序学习方法、概率模型以及图模型。无监督学习方法主要包括向量空间模型以及基于信息检索的模型。

现有的技术中,首先,主要是针对英文,英文知识图谱比中文的健全,多很多实体关系,少了很多噪音。其次,其所识别的实体一般限于命名实体,同时很多英文实体具有明显特征比如说大写、缩写等。



技术实现要素:

本发明提供一种针对中文短文本的基于中文通用百科知识图谱cn-dbpedia的实体识别与链接系统和方法。本发明能解决短文本上下文信息少的实体链接问题。

本发明的技术方案具体介绍如下。

本发明提供一种基于cn-dbpedia的实体识别与链接系统,其包括实体链接模块和实体识别模块;其中:

所述实体链接模块,用于检测出输入文本序列中所有可能的实体,并根据实体知识与上下文语义计算出每个位置出现每个实体的概率;

实体链接模块包括同义词匹配单元和实体链接单元;同义词匹配单元利用cn-dbpedia的同义词词库匹配文本中所有可能表示实体的子段,即实体同义词,并生成所有的候选实体;实体链接单元根据候选实体的本身特征以及与输入文本序列的匹配度,为每一个实体同义词对应每个实体的可能性进行计算,完成初步的实体链接;

所述实体识别模块,对序列做出概率最大的划分并最终判决出划分中的实体;

实体识别模块包括分词器、词概率计算单元和实体判别单元;分词器利用词概率单元计算每个子段成词概率,然后求出概率最大的划分;实体判别单元计算分词子段是实体的概率并输出实体判别结果,词概率计算单元根据实体判别单元的返回结果对普通词语与实体词语的成词概率分别进行计算,最后将经过划分的文本序列以及其中识别的实体结果输出,实体链接到cn-dbpedia中。

本发明还提供一种基于cn-dbpedia的实体识别与链接方法,具体步骤如下:实体链接的步骤:首先同义词匹配单元利用cn-dbpedia的同义词库匹配文本中所有可能表示实体的子段,即实体同义词,并生成所有的候选实体;然后实体链接单元根据候选实体的本身特征以及与输入文本序列的匹配度,为每一个实体同义词对应每个实体的可能性进行计算,完成初步的实体链接;

实体识别的步骤:分词器利用词语概率单元计算每个子段成词概率,然后求出概率最大的划分;实体判别单元计算分词子段是实体的概率并输出实体判别结果;词概率计算单元根据实体判别模块的返回结果对普通词语与实体词语的成词概率分别进行计算,最后将经过划分的文本序列以及其中识别的实体结果输出,实体链接到cn-dbpedia中。

本发明中,实体链接的步骤具体如下:

定义cn-dbpedia中的实体集e={ei},实体同义词表a={(ai,ei)},同时定义a(a)={ei|(a,ei)∈a};输入文本序列s=s1,s2...sn,其中每个元素si为一个中文字符,si,j=sisi+1...sj表示序列s从i至j的子段,

对于输入序列s,检测出所有候选实体同义词以及其对应候选实体c(s)={(m,ek)|m=(i,j)and(si,j,ek)∈a},计算每个候选实体e在特定位置m实体同义词的条件概率:

其中t为实体的目录标签,即概念;pop(e)为实体e的普及度,由实体被浏览和引用的次数计算;第一项分母对于同一个m相同,简写成正规化项z;ct(s,m)=s1,i-1sj+1,|s|为m=(i,j)的上下文;又有

p(t|ct(s,m))=σw(p(t|w)*p(w|ct(s,m)))

其中p(w|ct(s,m))为词w出现在m上下文的概率,则有

为词w对m的影响函数,则有分母对于同一个m为定值,简写成正规化项d;

又由知识库的目录关系,计算出

w(e,t)为实体e与概念t的权值;

由贝叶斯定理计算出

同理,算出条件概率p(t|w)

n(t,w)为词w在概念t下的出现次数,即词w在概念t下所有实体描述里出现次数。因此,结合上述所有公式,算出每个候选实体e在特定位置m实体同义词的条件概率:

本发明中,实体识别的步骤中,融合分词算法对句子生成包括实体名在内的所有可能成词情况进行概率最大的划分;利用实体识别算法筛选掉非实体词,最后对判定成实体的词语进行概率的计算。

本发明中,实体识别的步骤中,进行概率最大的划分采用结巴分词算法,具体如下:

对于输入文本序列s的一个划分w=w1w2...wk,如下计算概率:

其中词概率是以词频为分数的softmax,

求一个概率最大的划分:

wbest=argmaxwlogp(w|s)

本发明中,利用动态规划方法选择概率最大的划分;

其令f(i)表示序列s1,i最佳划分的概率,转移方程为

f(i)=maxf(j-1)*p(sj,i-1),1<j<i。

本发明中,,实体识别算法为基于机器学习的实体识别算法;其训练判别器时,针对当前划分方案划分出来的实体同义词,抽取以下特征:

实体名长度、实体名逆文档频率、实体名词频、实体名对应概率最大实体的普及度、实体名对应概率最大实体的概率和实体名对应概率最大实体的在知识库里属性数量。

本发明中,最后对判定成实体的词语进行概率的计算,概率计算公式如下:

其中e为实体名表;pop(e)为实体e的普及度,m=(i,j)为w的位置标记,即sm=w;t(w)为词性函数,若w为名词t为正否则为负,具体值为超参数;为实体名与词语总分数的比率;k和l为超参数。

和现有技术相比,本发明的有益效果在于:

1、实体链接模块概念化计算。针对短文本这一严格的实体链接环境,本技术以实体的概念为媒介,构建了实体与词语的语义关系,从而能在极少的上下文中挖掘到与实体的关系。

2、实体识别模块。针对中文这一相对较难的实体识别语言环境,本技术创新地将基于机器学习的实体识别算法与非监督的分词算法巧妙地融合在一起。分词算法是的实体识别从全局性的角度考虑实体名划分的合理性,以达到更好的实体识别效果;而实体识别算法扩展了分词的词表空间,并且以更加合理的算法计算实体词的成词概率。

3、高度耦合的实体链接与实体识别模块。与传统的先识别再链接的低耦合模块不同,本技术提出的先链接再识别的方案,使得实体识别时充分利用到了文本的语义信息,从而进行更好的分词与实体识别。

附图说明

图1是基于cn-dbpedia的短文本实体识别与链接的具体流程图。

图2是网页信息抽取装置的详细架构图。

具体实施方式

下面结合附图和实施例对本发明的技术方案进行详细阐述。

实施例1

本发明提出了一种基于cn-dbpedia的短文本实体识别与链接的系统和方法。本发明提出的技术方案框架如图1所示,其包括实体链接模块和实体识别模块。实体链接模块包括同义词匹配单元和实体链接单元;实体识别模块包括分词器、词概率计算单元和实体判别单元。本发明首先同义词匹配单元对于输入的文本序列利用cn-dbpedia的同义词库进行候选实体识别,即识别序列中所有可能的实体同义词。然后对实体同义词所对应各实体的概率进行计算。最后,文本序列以及被识别的候选实体以及概率将输入到实体识别模块,实体识别模块的分词器对序列做出概率最大的划分并最终判别出划分中的实体。下面进行详细阐述。

1.实体链接模块

该模块的主要功能是检测出输入文本序列中所有可能的实体,并根据实体知识与上下文语义计算出每个位置出现每个实体的概率。先定义符号如下。

定义cn-dbpedia中的实体集e={ei},实体同义词表a={(ai,ei)},同时定义a(a)={ei|(a,ei)∈a}。输入文本序列s=s1,s2...sn,其中每个元素si为一个中文字符,si,j=sisi+1...sj表示序列s从i至j的子段。

对于输入序列s,检测出所有候选实体同义词以及其对应候选实体c(s)={(m,ek)|m=(i,j)and(si,j,ek)∈a}。计算每个候选实体e在特定位置m实体同义词的条件概率:

其中t为实体的目录标签,即概念。pop(e)为实体e的普及度,由实体被浏览和引用的次数计算。第一项分母对于同一个m相同,简写成正规化项z。ct(s,m)=s1,i-1sj+1,|s|为m=(i,j)的上下文。上下文可设定窗口范围。窗口大小是一个可以预先设定的超参数,如可以设m的上下文范围为前后7个词:ct7(s,m)=si-7,i-1sj+1,j+7。又有

p(t|ct(s,m))=σw(p(t|w)*p(w|ct(s,m)))

其中p(w|ct(s,m))为词w出现在m上下文的概率,则有

为词w对m的影响函数,w和m的距离越远,对其的影响越小,则有分母对于同一个m为定值,简写成正规化项d。

接下来只要计算出p(e|t)与p(t|w)即可计算出ps(e|m)。由知识库的目录关系,可很容易地计算出

w(e,t)为实体e与概念t的权值。由贝叶斯定理可计算

同理,可以算出条件概率p(t|w)

n(t,w)为词w在概念t下的出现次数,即词w在概念t下所有实体描述里出现次数。结合上述所有公式,可算出条件概率

对于一个文本序列中识别的实体同义词,算出其对应的各个实体的条件概率,取概率最高的实体即为实体链接的答案。

2实体识别模块

实体链接模块计算了所有候选实体的概率,但是这个概率的计算没有考虑到整个输入序列的划分,这对于需要分词的中文实体识别任务来说是一个很大的问题。具体来说,很有可能一个概率很高的实体因为其实体同义词在序列中所占的子段使得其他部分变得不合理,比如“刘若英语水平怎么样”,实体同义词“刘若英”对应的歌手实体“刘若英”的概率是最高的,但是考虑到整句的划分之后将该子段链接到实体“刘若英”却是错的。

考虑到先利用分词算法对序列进行分词,再进行实体的识别与链接。这样的解决方案也存在一些问题。首先,分词算法没有考虑到实体词库,特别是对于cn-dbpedia这种庞大的实体数量上千万的知识库,很多实体词会被错分。而将实体词库暴力地加入分词词典则会造成程序运行占用资源过大而且无法准确地针对实体的属性进行调整分词策略,因为实体相对于普通词来说有着更多的信息,在处理时需要更为周全的考量。

因此,对于中文的实体识别与链接问题,应该融合进分词算法一同进行。分词算法初步模型来自jieba分词,如下所述。

对于输入文本序列s的一个划分w=w1w2...wk,可如下计算概率。

其中词概率是以词频为分数的softmax。

目标则是求一个概率最大的划分即可。

wbest=argmaxwlogp(w|s)

可通过动态规划选择最优的切分方案。令f(i)表示序列s1,i最佳划分的概率,转移方程为

f(i)=maxf(j-1)*p(sj,i-1),1<j<i

对于基于实体的划分模型,还需要实现另外两个额外的目标:判断词wi是否为一个实体;如果wi指的是一个实体,则需要一个更复杂算法计算概率p(wi)。

第一个问题看似一个假问题:直接取匹配同义词库的词判定为实体即可。考虑到两个问题。第一,cn-dbpedia的实体量庞大,涉及到不少噪音实体,如果只要匹配同义词库的词均当作实体,则一句话大部分词都会当作实体,包括一些动词形容词,因为这些词均在知识库里有解释。第二,实体的界限实际上是一个模棱两可的概念,实体识别的任务有许多细的划分的,有的任务是识别所有名词性实体,还有命名实体识别(ner),而ner也有不同的标准,时间这样的命名实体的是否需要识别。另外,有些实体识别任务可能要求识别偏领域方面的实体词而不用识别太过于通用或者常见的词。

综上所述,实体判别单元是需要一个判别器来筛选掉非实体词的,并且还能够根据需要调整判别策略。这里采用机器学习的方法来训练判别器。

首先描述实体判别模型的特征提取。针对当前划分方案划分出来的潜在实体名(实体同义词),抽取以下特征。

1)实体名长度

2)实体名逆文档频率

3)实体名词频

4)实体名对应概率最大实体的普及度

5)实体名对应概率最大实体的概率

6)实体名对应概率最大实体的在知识库里属性数量

然后利用上述特征,在训练数据上训练出一个线性模型对实体名进行真假的判别。

对于对判定成实体的词语,需要考虑到实体的属性进行概率的计算,概率计算公式如下

其中e为实体名表;pop(e)为实体e的普及度,m=(i,j)为w的位置标记,即sm=w;t(w)为词性函数,若w为名词t为正否则为负,具体值为超参数;为实体名与词语总分数的比率;k和l为超参数。

本发明的主要步骤如下:

步骤一:实体链接的步骤。本发明训练了一个打分模型对当前识别的实体名和上下文与所有可能的实体匹配的可能性进行一个打分,取分数最高的实体作为链接的结果。

步骤二:实体识别的步骤。首先,利用cn-dbpedia的同义词库匹配文本中所有可能的实体名。然后,对句子生成包括实体名在内的所有可能成词情况构造有向无环图(dag),利用动态规划方法选择概率最高的实体分词方案。

实体识别与实体链接的统一解决方案。与之前大多数只单独针对实体链接或者实体识别任务的方法不同,本技术以使用角度出发,提出了一个同时解决两个问题的方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1