检验知识库三元组的方法及装置
技术领域
本发明实施例涉及知识库领域,尤其涉及一种检验知识库三元组的方法及装置。
背景技术
知识服务是指从各种显性和隐性知识资源中按照人们的需要有针对性地提炼知识、并用来解决用户问题的高级信息服务过程。知识库作为知识服务中重要的数据组织形式,其内容的准确性直接决定了知识服务的有效性,通常由若干三元组组成。
但是,构建知识库的数据来源复杂多样,仅从形式上就有结构化数据,半结构化数据和非结构化数据,加之抽取过程中可能出现错误,基于这些数据源构建的知识库中难免存在错误的信息。一类典型的错误是三元组所表达的关系错误,例如:三元组<李白,师生,杜甫>表示李白和杜甫有师生关系,但这实际上是错误的。对于这类错误,如果借助人工来检查,在效率上难以满足建设大规模知识库的需要。
因此,需要一种方式,能够快速地检验知识库中的三元组是否可信。
发明内容
本发明实施例提供一种检验知识库三元组的方法及装置,以提高检验三元组可信程度的准确性,提高检测效率,节约实际应用中人工校验的成本,提升构建高品质知识库的效率。
本发明的一个方面是提供一种检验知识库三元组的方法,包括:
获取语料库中M个用于表征第一关系的词语作为目标特征词,并获取所述目标特征词的第一权重值,所述语料库包括多个语句,各所述语句包括至少一个词语,其中,M为正整数;
根据所述第一权重值,获取知识库中关系为所述第一关系的待检验的三元组的置信度,其中,所述知识库中包括多个三元组,各三元组为有序集合,所述有序集合均包括主体、用于表征所述第一关系的关系语句及客体,所述第一关系为所述主体与所述客体之间的关系;
根据所述置信度确定所述待检验的三元组是否可信。
进一步的,所述根据所述第一权重值,获取知识库中关系为所述第一关系的待检验的三元组的置信度,包括:
获取所述待检验的三元组的所述主体和所述客体在所述语料库中所有的共现句,所述共现句为所述语料库中同时包括所述主体和所述客体的语句;
若所述共现句包括所述目标特征词,则根据如下公式获取所述目标特征词在所述共现句中与所述主体和所述客体的相对距离Dis(wi,Sub,Obj,Senk):
其中,p(wi,Senk)表示目标特征词wi在所述共现句Senk中位置,其中i=1,2…M,p(Sub,Senk)表示所述主体Sub在所述共现句Senk中位置,p(Obj,Senk)表示所述客体Obj在所述共现句Senk中位置;
根据如下公式获取所述待检验三元组的置信度Confidence:
其中,
其中,SenNum表示所述待检验三元组对应的共现句Senk的个数;
Weight(wi)表示目标特征词wi的第一权重值;
f(wi,Senk)表示目标特征词wi是否在共现句Senk中出现,若出现,f(wi,Senk)=1,若不出现,f(wi,Senk)=0。
进一步的,所述获取语料库中M个用于表征第一关系的目标特征词,并获取所述目标特征词的第一权重值,包括:
获取所述知识库中关系为所述第一关系的N个目标三元组,其中N为正整数;
获取所述目标三元组中所述主体和所述客体对应的所述语料库中的共现句,形成共现句集合;
对各所述共现句集合中的各所述共现句进行分词,获取待确定词语,并形成一个词语集合;
获取所述词语集合中每一所述待确定词语出现的第一频率;
根据所述第一频率获取各所述待确定词语的第一权重值,并获取第一权重值较高的前M个待确定词语作为所述目标特征词。
进一步的,所述获取所述词语集合中每一所述待确定词语出现的第一频率,包括:
根据如下公式获取所述待确定词语在各所述共现句集合出现频率的方差Variance:
其中,TF表示所述待确定词语在所述词语集合中出现的第二频率;TF(p)表示所述待确定词语在第p个所述目标三元组对应的共现句集合中出现的第三频率,其中p=1,2…N;
根据如下公式获取每所述待确定词语在所述词语集合中出现的第一频率TFAdj:
进一步的,所述根据所述第一频率获取各所述待确定词语的第一权重值,包括:
根据如下公式获取所述待确定词语的第一权重值Weight:
其中,rt表示一个参考三元组对应的第二关系,所述第二关系不同于所述第一关系,其中,t=1,2…Q;TFAdj(rt)表示所述待确定词语在所述第二关系为rt的参考三元组对应的词语集合中的第一频率;TFAdj(rt,max)表示在所述第二关系为rt的参考三元组对应的词语集合中第一频率最大的词语对应的第一频率数值。
进一步的,在对所示共现句进行分词之后,获取待确定词语之前,还包括:删除停用词。
进一步的,根据所述置信度确定所述待检验的三元组是否可信包括:
获取所述知识库中置信度较大的前L个三元组为正例三元组,其中L为正整数;
获取S个关系与所述第一关系不同的所述三元组为反例三元组,其中S为正整数;
获取各所述正例三元组对应的第一训练向量及各所述反例三元组对应的第二训练向量,其中,所述第一训练向量和所述第二训练向量的维度与所述目标特征词的个数均相同,且所述第一训练向量的每一维度的分量为对应的所述目标特征词在所述正例三元组对应的共现句集合中的权重累计值,所述第二训练向量的每一维度的分量为对应的所述目标特征词在所述反例三元组对应的共现句集合中的权重累计值;
根据所述第一训练向量和所述第二训练向量,采用SVM方法构造分类器;
根据所述分类器检测所述待检验的三元组是否可信。
进一步的,在获取S个关系与所述第一关系不同的所述三元组为反例三元组之后,且在获取各所述正例三元组的第一训练向量及各所述反例三元组的第二训练向量之前,还包括:
根据如下公式获取所述目标特征词wi所述权重累计值υi:
其中,Weight(wi)表示特征词wi的权重值;
SenNum表示目标三元组对应的共现句的个数;
f(wi,Senk)表示特征词wi是否在共现句Senk中出现,若出现,f(wi,Senk)=1,若不出现,f(wi,Senk)=0;
其中,
其中,Dis(wi,Sub,Obj,Senk)表示目标特征词wi在所述共现句Senk中与所述主体Sub和所述客体Obj的相对距离。
p(wi,Senk)表示目标特征词wi在所述共现句Senk中位置,其中i=1,2…M,p(Sub,Senk)表示所述主体sub在所述共现句Senk中位置,p(Obj,Senk)表示所述客体Obj在所述共现句Senk中位置。
本发明的另一个方面是提供一种检验知识库三元组的装置,包括:
目标特征词获取模块,用于获取语料库中M个用于表征第一关系的词语作为目标特征词,并获取所述目标特征词的第一权重值,所述语料库包括多个语句,各所述语句包括至少一个词语,其中,M为正整数;
置信度获取模块,用于根据所述第一权重值,获取知识库中关系为所述第一关系的待检验的三元组的置信度,其中,所述知识库中包括多个三元组,各三元组为有序集合,所述有序集合均包括主体、用于表征所述第一关系的关系语句及客体,所述第一关系为所述主体与所述客体之间的关系;
检验模块,用于根据所述置信度确定所述待检验的三元组是否可信。
进一步的,所述置信度获取模块具体用于:
获取所述待检验的三元组的所述主体和所述客体在所述语料库中所有的共现句,所述共现句为所述语料库中同时包括所述主体和所述客体的语句;
若所述共现句包括所述目标特征词,则根据如下公式获取所述目标特征词在所述共现句中与所述主体和所述客体的相对距离Dis(wi,Sub,Obj,Senk):
其中,p(wi,Senk)表示目标特征词wi在所述共现句Senk中位置,其中i=1,2…M,p(Sub,Senk)表示所述主体Sub在所述共现句Senk中位置,p(Obj,Senk)表示所述客体Obj在所述共现句Senk中位置;
根据如下公式获取所述待检验三元组的置信度Confidence:
其中,
其中,SenNum表示所述待检验三元组对应的共现句Senk的个数;
Weight(wi)表示目标特征词wi的第一权重值;
f(wi,Senk)表示目标特征词wi是否在共现句Senk中出现,若出现,f(wi,Senk)=1,若不出现,f(wi,Senk)=0。
进一步的,所述目标特征词获取模块用于:
获取所述知识库中关系为所述第一关系的N个目标三元组,其中N为正整数;
获取所述目标三元组中所述主体和所述客体对应的所述语料库中的共现句,形成共现句集合;
对各所述共现句集合中的各所述共现句进行分词,获取待确定词语,并形成一个词语集合;
获取所述词语集合中每一所述待确定词语出现的第一频率;
根据所述第一频率获取各所述待确定词语的第一权重值,并获取第一权重值较高的前M个待确定词语作为所述目标特征词。
进一步的,所述目标特征词获取模块具体用于:
根据如下公式获取所述待确定词语在各所述共现句集合出现频率的方差Variance:
其中,TF表示所述待确定词语在所述词语集合中出现的第二频率;TF(p)表示所述待确定词语在第p个所述目标三元组对应的共现句集合中出现的第三频率,其中p=1,2…N;
根据如下公式获取每所述待确定词语在所述词语集合中出现的第一频率TFAdj:
根据如下公式获取所述待确定词语的第一权重值Weight:
其中,rt表示一个参考三元组对应的第二关系,所述第二关系不同于所述第一关系,其中,t=1,2…Q;TFAdj(rt)表示所述待确定词语在所述第二关系为rt的参考三元组对应的词语集合中的第一频率;TFAdj(rt,max)表示在所述第二关系为rt的参考三元组对应的词语集合中第一频率最大的词语对应的第一频率数值。
进一步的,所述目标特征词获取模块还用于:在对所示共现句进行分词之后,获取待确定词语之前,删除停用词。
进一步的,所述检验模块具体用于:
获取所述知识库中置信度较大的前L个三元组为正例三元组,其中L为正整数;
获取S个关系与所述第一关系不同的所述三元组为反例三元组,其中S为正整数;
获取各所述正例三元组对应的第一训练向量及各所述反例三元组对应的第二训练向量,其中,所述第一训练向量和所述第二训练向量的维度与所述目标特征词的个数均相同,且所述第一训练向量的每一维度的分量为对应的所述目标特征词在所述正例三元组对应的共现句集合中的权重累计值,所述第二训练向量的每一维度的分量为对应的所述目标特征词在所述反例三元组对应的共现句集合中的权重累计值;
根据所述第一训练向量和所述第二训练向量,采用SVM装置构造分类器;
根据所述分类器检测所述待检验的三元组是否可信。
进一步的,所述检验模块还用于:
根据如下公式获取所述目标特征词wi所述权重累计值υi:
其中,Weight(wi)表示特征词wi的权重值;
SenNum表示目标三元组对应的共现句的个数;
f(wi,Senk)表示特征词wi是否在共现句Senk中出现,若出现,f(wi,Senk)=1,若不出现,f(wi,Senk)=0;
其中,
其中,Dis(wi,Sub,Obj,Senk)表示目标特征词wi在所述共现句Senk中与所述主体Sub和所述客体Obj的相对距离。
p(wi,Senk)表示目标特征词wi在所述共现句Senk中位置,其中i=1,2…M,p(Sub,Senk)表示所述主体sub在所述共现句Senk中位置,p(Obj,Senk)表示所述客体Obj在所述共现句Senk中位置。
本发明提供的检验知识库三元组的方法及装置,通过从语料库中获取用于表征第一关系的目标特征词,及各目标特征词的第一权重值,根据各目标特征词的第一权重值,获取知识库中关系为第一关系的待检验的三元组的置信度,根据置信度确定待检验的三元组是否可信,可单独或批量检验,提高了检验的效率,可以节约实际应用中人工校验的成本,大幅度提升构建高品质知识库的效率;并且通过置信度检验三元组可信程度较为准确,置信度是根据各目标特征词计算得来,不依赖于构建三元组所用的关系抽取模式和抽取模式匹配的信息,因此本方法在对不同类型知识库三元组做信息校验时通用性较强,可应用于任何知识库的三元组检验中。
附图说明
图1为本发明实施例一提供的检验知识库三元组的方法流程图;
图2为本发明实施例二提供的检验知识库三元组的方法流程图;
图3为本发明实施例四提供的检验知识库三元组的装置的结构图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
知识库作为知识服务中重要的数据组织形式,其内容的准确性直接决定了知识服务的有效性,通常由若干三元组组成,即三元组的准确性对知识库的准确性有重要的影响。其中,各三元组为有序集合,有序集合均包括主体、用于表征主体与客体之间的关系的关系语句及客体,具体的,三元组的格式可为<主体,关系语句,客体>,例如,三元组<李白,师生,杜甫>,表示李白和杜甫有师生关系。但是,构建知识库的数据来源复杂多样,加之抽取过程中可能出现错误,构建的知识库中难免存在错误的信息。其中,三元组的主体和客体间的关系错误是一类典型的错误,例如上述的三元组<李白,师生,杜甫>,李白与杜甫事实上并非师生关系。本发明实施例针对知识库中三元组的主体和客体间的关系错误,提供了一种检验知识库三元组的方法。
实施例一
图1为本发明实施例一提供的检验知识库三元组的方法流程图。如图1所示,本实施例提供一种检验知识库三元组的方法,该方法具体步骤如下:
S101、获取语料库中M个用于表征第一关系的词语作为目标特征词,并获取目标特征词的第一权重值,语料库包括多个语句,各语句包括至少一个词语,其中,M为正整数。
在本实施例中,语料库是指经科学取样和加工的大规模电子文本库,其中存放的是在语言的实际使用中真实出现过的语言材料,例如文学作品、报刊杂志的语句段落等等,语料库包括多个语句,各语句包括至少一个词语,即语句包括一个词语或句法上有关连的一组词语构成。目标特征词为表征三元组中第一关系的词语,例如,第一关系为“师生”,则目标特征词可以为“弟子”、“学生”、“学者”、“影响”、“学术”、“思想”、“学派”等等。目标特征词从语料库中获取,由于语料库是在语言的实际使用中真实出现过的语言材料的集合,因此,从语料库中获取的目标特征词在日常生活中提及第一关系时使用的更为频繁,更能够表征该第一关系。
第一权重值可以根据目标特征词占语料库中词语的数量比例来确定,也可以根据目标特征词所在语句中的位置来确定,还可以根据目标特征词在各目标特征词中所占的数量比例来确定,具体可以根据实际需要选择各种获取第一权重值的方式,在此不再赘述。
S102、根据第一权重值,获取知识库中关系为第一关系的待检验的三元组的置信度,其中,知识库中包括多个三元组,各三元组为有序集合,有序集合均包括主体、用于表征第一关系的关系语句及客体,第一关系为主体与客体之间的关系。
在本实施例中,从语料库中获取用于表征第一关系的目标特征词,及各目标特征词的第一权重值,根据各目标特征词的第一权重值,计算关系为第一关系的待检验的三元组的置信度,其中置信度也叫置信水平,是指特定个体对待特定命题真实性相信的程度,可以用来反映待检验的三元组的可信程度,通过置信度检验三元组可信程度较为准确。
S103、根据置信度确定待检验的三元组是否可信。
在本实施例中,根据置信度确定待检验的三元组是否可信,具体可以通过给定一个置信度临界值,当待检验的三元组的置信度高于置信度临界值时,认为其为可信三元组,反之,认为其为不可信三元组。当然也可以构建一个分类器,通过分类器对待检验的三元组进行分类。本实施例提供的检验知识库三元组的方法,可以单独对一个待检验的三元组进行检验,也可以进行批量检验,例如对整个知识库中关系为“师生”关系的三元组进行检验,并对检验出的不可信三元组进行删除或标记,以提高知识库的准确性。
本实施例提供的检验知识库三元组的方法,通过从语料库中获取用于表征第一关系的目标特征词,及各目标特征词的第一权重值,根据各目标特征词的第一权重值,获取知识库中关系为第一关系的待检验的三元组的置信度,根据置信度确定待检验的三元组是否可信,可单独或批量检验,提高了检验的效率,可以节约实际应用中人工校验的成本,大幅度提升构建高品质知识库的效率;并且通过置信度检验三元组可信程度较为准确,置信度是根据各目标特征词计算得来,不依赖于构建三元组所用的关系抽取模式和抽取模式匹配的信息,因此本方法在对不同类型知识库三元组做信息校验时通用性较强,可应用于任何知识库的三元组检验中。
实施例二
图2为本发明实施例二提供的检验知识库三元组的方法流程图。如图2所示,本实施例提供的检验知识库三元组的方法,具体包括以下步骤:
S201、获取知识库中关系为第一关系的N个目标三元组,其中N为正整数。
为了方便说明,本实施例中,设定第一关系为“师生”。首先从知识库中获取关系为“师生”的N个目标三元组,例如<袁枚,师生,骆绮兰>、<王安石,师生,龚原>、<苏轼,师生,朱载上>等,获取过程可为随机获取,也可以为以预定规则获取。其中目标三元组的个数N可根据实际需求进行选择,数量越大则获取的M个目标特征词越能够表征“师生”关系,且对应的第一权重值越准确,当然获取目标特征词所需的时间也相对较长。本实施例中N的个数可以为100个,在保证目标特征词更准确的基础上,获取速度也较快。
S202、获取目标三元组中主体和客体对应的语料库中的共现句,形成共现句集合。
本实施例中,共现句指在语料库中同时包括三元组的主体和客体的语句,例如对于目标三元组<袁枚,师生,骆绮兰>,语句“骆绮兰是随园女弟子中知名度较高者,也是袁枚颇为得意的女弟子之一。”中同时包括了“袁枚”及“骆绮兰”,因此该语句为目标三元组<袁枚,师生,骆绮兰>的共现句。获取每一目标三元组在语料库中的共现句,形成与每一目标三元组对应的共现句集合。
优选的,在获取目标三元组中主体和客体对应的语料库中的共现句后,形成共现句集合前,还包括共现句预处理步骤,包括:去噪处理、分句处理和筛选。
其中,去噪音处理,即首先去除语句中字符乱码;分句处理,即以句号“。”、感叹号“!”、问号“?”和分号“;”把每一共现句分割;筛选,即判断分割后的共现句是否仍同时包含该三元组的主体和客体,如果是则加入共现句集合中,否则予以删除。
共现句预处理的作用是删除过滤掉语句中字符乱码以及一些可能被错误识别为共现句的语句,例如“袁枚是清代诗人、散文家;骆绮兰,清代嘉庆间女诗人。”,虽然该句中同时包含了“袁枚”及“骆绮兰”,但事实上“袁枚”和“骆绮兰”被分号分隔在两个句子中,而这种句子并不能完整的表现出“袁枚”和“骆绮兰”的师生关系,而从这种语句中可能无法获取到准确的目标特征词,因此通过分句处理和筛选步骤对这类语句进行删除,以提高目标特征词获取的准确性。
S203、对各共现句集合中的各共现句进行分词,获取待确定词语,并形成一个词语集合。
对各共现句集合中的各共现句进行分词可采用现有的分词器,例如AnsjSeg工具、IKAnalyzer工具等等,其分词原理在此不做赘述。将由各三元组对应的共现句集合中的共现句分词得到的待确定词语组成一个词语集合,用来该词语集合从选出目标特征词。
优选的,在对共现句进行分词之后,获取待确定词语之前,还包括:删除停用词。
其中,停用词指在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词。即在本实施例中,删除对于不能表征师生关系的无用词性的词语,例如形容词、副词、助词等,仅保留动词(VERB)、名词(NOUN)和动名词(GERUND),当然也可以对保留后的词语进一步筛选,删除一些预定的动词、名词或动名词,从而得到待确定词语,并形成由待确定词语组成的词语集合,减小了词语集合中词语数量,提高了目标特征词的获取效率。其中,由于现有的分词器通常可以区分词性,因此,可以在分词器分词的同时对无用词性的词语进行删除。当然,本实施例中,词语集合并不仅限于保留动词、名词和动名词,也可根据需要保留其他词性的词语。
S204、获取词语集合中每一待确定词语出现的第一频率。
具体的,S204获取词语集合中每一待确定词语出现的第一频率,包括:
根据如下公式获取待确定词语在各共现句集合出现频率的方差Variance:
其中,TF表示待确定词语在词语集合中出现的第二频率,即待确定词语在词语集合中出现的频数与词语集合总词数的比值;TF(p)表示待确定词语在第p个目标三元组对应的共现句集合中出现的第三频率,其中p=1,2…N;
根据如下公式获取每待确定词语在词语集合中出现的第一频率TFAdj:
本实施例中,虽然可直接将待确定词语在词语集合中出现的第二频率作为后续置信度计算中所用到的目标特征词的权重值,但通过第二频率获取的目标特征词存在一定的误差,可能并不能表征师生关系。例如,对于目标三元组<利玛窦,师生,徐光启>的共现句集合中,可能存在以下情况,待确定词语“几何”出现的频率非常高,从而使得待确定词语“几何”在词语集合中出现的第二频率较高,而待确定词语“几何”实际上并不能较好的表征师生关系,例如,“几何”并不能表征目标三元组<袁枚,师生,骆绮兰>中的师生关系,同时,实际上待确定词语“几何”在目标三元组<袁枚,师生,骆绮兰>的共现句集合中也几乎没有出现。也就是说,此类在各个三元组对应的共现句集合中分布不均匀的待确定词语,可能并不能较好的表征师生关系。因此需要降低此类在各个三元组对应的共现句集合中分布不均匀的待确定词语。即,分布不均匀的待确定词语指的是在各三元组对应的各共现句集合中,出现频数相差较大的待确定词语。
本实施例中,首先通过公式(2-1)待确定词语在各共现句集合出现频率的方差Variance,对于在各个三元组对应的共现句集合中分布不均匀的待确定词语,其方差数值较大,即公式(2-2)中分母较大,得到的第一频率TFAdj相对与待确定词语在词语集合中出现的第二频率TF较小;而分布较均匀的待确定词语的方差数值相对较小,更接近于零,公式(2-2)中分母较小,更接近于1,得到的第一频率TFAdj更接近与第二频率TF;而完全均匀分布的待确定词语的方差数值为零,公式(2-2)中分母为1,第一频率TFAdj即为第二频率TF。因此通过公式(2-1)及公式(2-2)的对待确定词语频率的调整,使得在各个三元组对应的共现句集合中分布不均匀的待确定词语的频率显著降低,减小了其成为目标特征词的可能性,使得目标特征词的获取更为准确,更能表征目标三元组的关系。
S205、根据第一频率获取各待确定词语的第一权重值,并获取第一权重值较高的前M个待确定词语作为目标特征词。
第一权重值可用于反映待确定词语表征第一关系的准确程度,因此选择词语集合中第一权重值较高的前M个待确定词语作为目标特征词,即该M个目标特征词为语料库中在涉及各关系为师生关系的目标三元组主体和客体时最常用的M个词语,例如“弟子”、“学生”等词语,通过该M个目标特征词可较准确的检验待检验的三元组的是否可信。其中,M的数值可以取200。
具体的,根据第一频率获取各待确定词语的第一权重值,包括:
根据如下公式获取待确定词语的第一权重值Weight:
其中,rt表示一个参考三元组对应的第二关系,所述第二关系不同于所述第一关系,其中,t=1,2…Q;TFAdj(rt)表示所述待确定词语在所述第二关系为rt的参考三元组对应的词语集合中的第一频率;TFAdj(rt,max)表示在所述第二关系为rt的参考三元组对应的词语集合中第一频率最大的词语对应的第一频率数值。
本实施例中,公式(2-3)实际上是对第一频率的进一步调整,考虑到词语集合中可能存在一些在各个目标三元组对应的共现句集合中出现频率均较高,但并不能反映第一关系“师生”的待确定词语,例如“我们”、“他们”等,这类词语在前述的去除停用词步骤中可能并未被去除,因此需要进行调整以避免这类词语成为目标特征词。
本实施例中,通过与Q个第二关系不为师生关系的参考三元组对应的词语集合进行比较,例如第二关系为父子关系、夫妻关系、兄弟关系等等,若某一待确定词语,在不为师生关系的参考三元组对应的词语集合中出现频率也较高,则说明该待确定词语不仅仅在师生关系的共现句中常用,在其他关系的参考三元组的共现句也同样常用,例如“我们”在父子关系、夫妻关系、兄弟关系等的参考三元组的共现句中同样为常用词语,因此,待确定词语“我们”在各参考三元组对应的词语集合中的第一频率也较高,基于此,得到公式(2-3),其中分母中2的指数为,待确定词语在第二关系为rt的参考三元组对应的词语集合中的第一频率与该词语集合中第一频率最大的词语对应的第一频率数值的比值。例如,对待确定词语“我们”进行调整,首先选择父子关系、兄弟关系等等Q个第二关系不为师生关系的三元组对应的词语集合,再将待确定词语“我们”与各词语集合进行比对,其中,例如将“我们”与父子关系的参考三元组的词语集合进行比对时,“父亲”是其词语集合中第一频率最大的词语,则对于该父子关系参考三元组求得一个指数值TFAdj(rt)/TFAdj(rt,max),即将“我们”在父子关系对应的词语集合中的第一频率除以“父亲”在父子关系对应的词语集合中的第一频率,当待确定词语“我们”在父子关系参考三元组对应的词语集合中的第一频率同样很高时,TFAdj(rt)/TFAdj(rt,max)更接近1,则以2的指数为分母的分数的数值更接近1/2;而例如待确定词语“弟子”在父子关系参考三元组对应的词语集合中的第一频率较低,TFAdj(rt)/TFAdj(rt,max)更接近0,则以2的指数为分母的分数的数值更接近1。通过如上比较Q个不为师生关系的参考三元组对应的词语集合后,在公式(2-3)中将得到的各个以2的指数为分母的分数连乘,即可综合评价该待确定词语的频率,从而得到待确定词语的第一权重值Weight。此时的第一权重值较第一频率更能够反应待确定词语对于第一关系“师生”的表征能力,选取其中第一权重值较高的前M个待确定词语作为目标特征词。本实施例中,Q的数值可以选取10个。其中,在本实施例中,各参考三元组对应的词语集合及词语集合中各词语的第一频率也是分别通过S201-S204而获取。
在上述获取到M个目标特征词及对应的第一权重值的基础上,进一步的:
S206、根据第一权重值,获取知识库中关系为第一关系的待检验的三元组的置信度。
具体步骤如下:
首先,获取待检验的三元组的主体和客体在语料库中所有的共现句,共现句为语料库中同时包括主体和客体的语句;
其次,若共现句包括目标特征词,则根据如下公式获取目标特征词在共现句中与主体和客体的相对距离Dis(wi,Sub,Obj,Senk):
其中,p(wi,Senk)表示目标特征词wi在共现句Senk中位置,其中i=1,2…M,p(Sub,Senk)表示主体Sub在共现句Senk中位置,p(Obj,Senk)表示客体Obj在共现句Senk中位置。例如,主体、客体以及目标特征词在共现句中的位置,可以通过在识别它们的第一个字在共现句中分别为第几个字来衡量,当然也可以通过识别它们分别为共现句中第几个词语来衡量。
再次,根据如下公式获取待检验三元组的置信度Confidence:
其中,
其中,SenNum表示待检验三元组对应的共现句Senk的个数;
Weight(wi)表示目标特征词wi的第一权重值;
f(wi,Senk)表示目标特征词wi是否在共现句Senk中出现,若出现,f(wi,Senk)=1,若不出现,f(wi,Senk)=0。
本实施例中,由于在共现句中目标特征词距离主体和客体的相对距离较近时,说明主体和客体与该目标特征词的联系较紧密,即更能够说明在该共现句中主体和客体的关系更能够用该目标特征词来表征,因此在公式(2-4)中,相对距离越近,Dis(wi,Sub,Obj,Senk)值越小,进而公式(2-6)中,分母越小,进而使得比值更大。
公式(2-5)中,在求得累计值后,又将累计值除以待检验三元组对应的共现句的个数,是考虑到由于每一待检验三元组对应的共现句的个数可能不同,因此求得的累计值没有可比性,因此通过将该累计值除以待检验三元组对应的共现句的个数,即相当于将该累计值进行了归一化处理。
本实施例中的置信度Confidence实际为各目标特征词在待检验三元组各共现句中的考虑到相对距离的第一权重值累计值,并非统计学中传统意义上对应于置信区间的置信度,但根据本实施例中所述的置信度,同样可判断待检验三元组中主体和客体间的第一关系是否可信。
具体的,若已给定了置信度临界值,则通过待检验的三元组的置信度与置信度临界值比较来检验其是否可信,当待检验的三元组的置信度高于置信度临界值时,认为其为可信三元组,反之,认为其为不可信三元组。根据置信度确定待检验的三元组是否可信。
由于知识库的复杂性,实际应用中通常无法给出具体的置信度临界值,因此本实施例中采用构造分类器,通过分类器来确定待检验的三元组是否可信。
S207、根据置信度确定待检验的三元组是否可信。
具体步骤如下:
获取知识库中置信度较大的前L个三元组为正例三元组,其中L为正整数;
获取S个关系与第一关系不同的三元组为反例三元组,其中S为正整数;
获取各正例三元组对应的第一训练向量及各反例三元组对应的第二训练向量,其中,第一训练向量和第二训练向量的维度与目标特征词的个数均相同,且第一训练向量的每一维度的分量为对应的目标特征词在正例三元组对应的共现句集合中的权重累计值,第二训练向量的每一维度的分量为对应的目标特征词在反例三元组对应的共现句集合中的权重累计值;
根据第一训练向量和第二训练向量,采用SVM(Support Vector Machine,支持向量机)方法构造分类器;
根据分类器检测待检验的三元组是否可信。
其中,SVM方法,又称为二分类的分类模型,是建立在统计学习理论基础上的机器学习方法。通过SVM可以自动寻找出哪些对分类有较好区分能力的支持向量,由此构造出的分类器可以最大化类与类的间隔,因而有较好的适应能力和较高的分准率。其核心思想是尽最大努力使分开的两个类别有最大间隔,这样才使得分隔具有更高的可信度,而且对于未知的新样本才有很好的分类预测能力。具体如何采用SVM方法构造分类器属于现有技术,在此不再赘述。
本实施例中应用SVM方法,通过获取知识库中置信度较大的前L个三元组为正例三元组,获取各正例三元组对应的第一训练向量;获取S个关系与第一关系不同的三元组为反例三元组,获取各反例三元组对应的第二训练向量;将各第一训练向量和第二训练向量输入SVM模型中,通过机器学习构造分类器。通过SVM方法构造的分类器,可实现待检测三元组的批量检测,且检测效率较高,且检测准确性较好。
本实施例中,各第一训练向量和第二训练向量的同一维度对应相同的目标特征词,且第一训练向量的每一维度的分量为对应的目标特征词在正例三元组对应的共现句集合中的权重累计值,第二训练向量的每一维度的分量为对应的目标特征词在反例三元组对应的共现句集合中的权重累计值,由于各训练向量的每一维度均一一对应,因此具有可比较性,从而能够通过SVM方法构建分类器。其中,可选的,L和S的数值可以选择100个,在保证分类器构建的准确性的基础上,也可以使分类器构建速度更快。
其中,在获取S个关系与第一关系不同的三元组为反例三元组之后,且在获取各正例三元组的第一训练向量及各反例三元组的第二训练向量之前,还包括:
根据如下公式获取目标特征词wi权重累计值υi:
其中,Weight(wi)表示特征词wi的权重值;
SenNum表示目标三元组对应的共现句的个数;
f(wi,Senk)表示特征词wi是否在共现句Senk中出现,若出现,f(wi,Senk)=1,若不出现,f(wi,Senk)=0;
其中,
其中,Dis(wi,Sub,Obj,Senk)表示目标特征词wi在共现句Senk中与主体Sub和客体Obj的相对距离。
p(wi,Senk)表示目标特征词wi在共现句Senk中位置,其中i=1,2…M,p(Sub,Senk)表示主体sub在共现句Senk中位置,p(Obj,Senk)表示客体Obj在共现句Senk中位置。
当然,通过分类器对待检测三元组进行检验时,输入的也为与上述的第一训练向量形式相同的向量,向量的维度与目标特征词的个数均相同,且每一维度的分量为对应的目标特征词在待检测三元组对应的共现句集合中的权重累计值。
本实施例提供的检验知识库三元组的方法,通过从语料库中获取第一权重值较高的前M个待确定词语作为目标特征词,所得到的目标特征词更能够表征第一关系;根据各目标特征词的第一权重值,获取知识库中关系为第一关系的待检验的三元组的置信度,其中考虑了多种情况,所得的置信度更为准确;根据所得置信度确定待检验的三元组是否可信时,通过构建分类器,以实现待检测三元组的单独或批量检验,提高了检验的效率,可以节约实际应用中人工校验的成本,大幅度提升构建高品质知识库的效率;并且通过置信度检验三元组可信程度较为准确,置信度是根据各目标特征词计算得来,不依赖于构建三元组所用的关系抽取模式和抽取模式匹配的信息,因此本方法在对不同类型知识库三元组做信息校验时通用性较强,可应用于任何知识库的三元组检验中。
实施例三
本实施例对检验知识库三元组的方法做具体举例说明。
通过上述实施例,对于知识库中的第一关系为“师生”的三元组进行检验,在其中随机选择N=100个第一关系为“师生”的三元组,经过S201-S205后(其中M=200,Q=10),得到如表1所示的目标特征词(仅示出部分目标特征词):
表1
在上述获取到200个目标特征词及对应的第一权重值的基础上,根据S206获取知识库中第一关系为“师生”的待检验的三元组的置信度,从而得到表2。
表2
进一步的,通过选取其中置信度较大的前L个(L=100)三元组为正例三元组,并获取S个关系不为“师生”关系的三元组为反例三元组(S=100),构建分类器;并通过分类器在知识库中筛选出如表3所示的不可信三元组。
表3
实施例四
图3为本发明实施例四提供的检验知识库三元组的装置的结构图。
本发明的另一个方面是提供一种检验知识库三元组的装置,包括目标特征词获取模块301、置信度获取模块302和检验模块303。
其中,目标特征词获取模块301用于获取语料库中M个用于表征第一关系的词语作为目标特征词,并获取目标特征词的第一权重值,语料库包括多个语句,各语句包括至少一个词语,其中,M为正整数;置信度获取模块302用于根据第一权重值,获取知识库中关系为第一关系的待检验的三元组的置信度,其中,知识库中包括多个三元组,各三元组为有序集合,有序集合均包括主体、用于表征第一关系的关系语句及客体,第一关系为主体与客体之间的关系;检验模块303用于根据置信度确定待检验的三元组是否可信。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本实施例提供的检验知识库三元组的装置,通过从语料库中获取用于表征第一关系的目标特征词,及各目标特征词的第一权重值,根据各目标特征词的第一权重值,获取知识库中关系为第一关系的待检验的三元组的置信度,根据置信度确定待检验的三元组是否可信,可单独或批量检验,提高了检验的效率,可以节约实际应用中人工校验的成本,大幅度提升构建高品质知识库的效率;并且通过置信度检验三元组可信程度较为准确,置信度是根据各目标特征词计算得来,不依赖于构建三元组所用的关系抽取模式和抽取模式匹配的信息,因此本装置在对不同类型知识库三元组做信息校验时通用性较强,可应用于任何知识库的三元组检验中。
实施例五
本实施例对实施例四的检验知识库三元组的装置做进一步补充说明。主要在实施例四的基础上,对目标特征词获取模块301、置信度获取模块302及检验模块303进行进一步说明。
其中,置信度获取模块302具体用于:
获取待检验的三元组的主体和客体在语料库中所有的共现句,共现句为语料库中同时包括主体和客体的语句;
若共现句包括目标特征词,则根据如下公式获取目标特征词在共现句中与主体和客体的相对距离Dis(wi,Sub,Obj,Senk):
其中,p(wi,Senk)表示目标特征词wi在共现句Senk中位置,其中i=1,2…M,p(Sub,Senk)表示主体Sub在共现句Senk中位置,p(Obj,Senk)表示客体Obj在共现句Senk中位置;
根据如下公式获取待检验三元组的置信度Confidence:
其中,
其中,SenNum表示待检验三元组对应的共现句Senk的个数;
Weight(wi)表示目标特征词wi的第一权重值;
f(wi,Senk)表示目标特征词wi是否在共现句Senk中出现,若出现,f(wi,Senk)=1,若不出现,f(wi,Senk)=0。
进一步的,目标特征词获取模块301用于:
获取知识库中关系为第一关系的N个目标三元组,其中N为正整数;
获取目标三元组中主体和客体对应的语料库中的共现句,形成共现句集合;
对各共现句集合中的各共现句进行分词,获取待确定词语,并形成一个词语集合;
获取词语集合中每一待确定词语出现的第一频率;
根据第一频率获取各待确定词语的第一权重值,并获取第一权重值较高的前M个待确定词语作为目标特征词。
进一步的,目标特征词获取模块301具体用于:
根据如下公式获取待确定词语在各共现句集合出现频率的方差Variance:
其中,TF表示待确定词语在词语集合中出现的第二频率;TF(p)表示待确定词语在第p个目标三元组对应的共现句集合中出现的第三频率,其中p=1,2…N;
根据如下公式获取每待确定词语在词语集合中出现的第一频率TFAdj:
根据如下公式获取待确定词语的第一权重值Weight:
其中,rt表示一个参考三元组对应的第二关系,所述第二关系不同于所述第一关系,其中,t=1,2…Q;TFAdj(rt)表示所述待确定词语在所述第二关系为rt的参考三元组对应的词语集合中的第一频率;TFAdj(rt,max)表示在所述第二关系为rt的参考三元组对应的词语集合中第一频率最大的词语对应的第一频率数值。
进一步的,目标特征词获取模块301还用于:在对所示共现句进行分词之后,获取待确定词语之前,删除停用词。
进一步的,检验模块303具体用于:
获取知识库中置信度较大的前L个三元组为正例三元组,其中L为正整数;
获取S个关系与第一关系不同的三元组为反例三元组,其中S为正整数;
获取各正例三元组对应的第一训练向量及各反例三元组对应的第二训练向量,其中,第一训练向量和第二训练向量的维度与目标特征词的个数均相同,且第一训练向量的每一维度的分量为对应的目标特征词在正例三元组对应的共现句集合中的权重累计值,第二训练向量的每一维度的分量为对应的目标特征词在反例三元组对应的共现句集合中的权重累计值;
根据第一训练向量和第二训练向量,采用SVM装置构造分类器;
根据分类器检测待检验的三元组是否可信。
进一步的,检验模块303还用于:
根据如下公式获取目标特征词wi权重累计值υi:
其中,Weight(wi)表示特征词wi的权重值;
SenNum表示目标三元组对应的共现句的个数;
f(wi,Senk)表示特征词wi是否在共现句Senk中出现,若出现,f(wi,Senk)=1,若不出现,f(wi,Senk)=0;
其中,
其中,Dis(wi,Sub,Obj,Senk)表示目标特征词wi在共现句Senk中与主体Sub和客体Obj的相对距离。
p(wi,Senk)表示目标特征词wi在共现句Senk中位置,其中i=1,2…M,p(Sub,Senk)表示主体sub在共现句Senk中位置,p(Obj,Senk)表示客体Obj在共现句Senk中位置。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本实施例提供的检验知识库三元组的装置,通过从语料库中获取第一权重值较高的前M个待确定词语作为目标特征词,所得到的目标特征词更能够表征第一关系;根据各目标特征词的第一权重值,获取知识库中关系为第一关系的待检验的三元组的置信度,其中考虑了多种情况,所得的置信度更为准确;根据所得置信度确定待检验的三元组是否可信时,通过构建分类器,以实现待检测三元组的单独或批量检验,提高了检验的效率,可以节约实际应用中人工校验的成本,大幅度提升构建高品质知识库的效率;并且通过置信度检验三元组可信程度较为准确,置信度是根据各目标特征词计算得来,不依赖于构建三元组所用的关系抽取模式和抽取模式匹配的信息,因此本装置在对不同类型知识库三元组做信息校验时通用性较强,可应用于任何知识库的三元组检验中。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。