首页> 中国专利> 中文自然语言问句语义化的知识库自动问答方法

中文自然语言问句语义化的知识库自动问答方法

摘要

本发明公开了一种中文自然语言问句语义化的知识库自动问答方法,包括以下步骤:对用户输入的事实型问题进行中文自然语言处理,实现分词、词性标注、命名实体识别和扩展,生成语义依存树;使用泛化模板和语义解析技术获得问句中的时间、空间、事实主体、事实客体等组成成分,然后进行语义化处理,提取问句中所有事件相关的组成元素属性及其取值,生成多个“属性—取值”对,其中待回答的元素以疑问词代替,形成复杂事实三元组集合;待回答部分所在三元组联合其他相关事实三元组形成一个带条件约束的知识库查询,到知识库中进行基于相似度计算的查询匹配,从知识库中抽取结果,得到最终答案。本发明实现了对知识库的快速准确的查询应答。

著录项

  • 公开/公告号CN105701253A

    专利类型发明专利

  • 公开/公告日2016-06-22

    原文格式PDF

  • 申请/专利权人 南京大学;

    申请/专利号CN201610125710.6

  • 发明设计人 胡伟;姜成樾;程龚;瞿裕忠;

    申请日2016-03-04

  • 分类号G06F17/30(20060101);

  • 代理机构苏州威世朋知识产权代理事务所(普通合伙);

  • 代理人杨林洁

  • 地址 210093 江苏省南京市汉口路22号

  • 入库时间 2023-12-18 15:45:39

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-26

    授权

    授权

  • 2016-07-20

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20160304

    实质审查的生效

  • 2016-06-22

    公开

    公开

说明书

技术领域

本发明涉及语义网、自然语言处理和自动问答技术,尤其涉及一种中文自然语言问句语义化的知识库自动问答方法,具体是一种基于模板提取的中文自然语言问句语义化的知识库自动问答方法,特别是一种通过将中文自然语言问句进行模板提取的语义化转换成知识库查询来实现面向事实型问题的知识库自动问答方法。

背景技术

语义网(SemanticWeb)是万维网的一个重要发展方向,为万维网上的知识表示、推理、交换和复用提供了基础。语义网使用一组“属性—取值”来描述其中的实体(entity),单个“属性—取值”对可以表示为<pi,vi>,其中pi表示某个属性,vi表示pi的某个取值。实体可以描述为一个或多个此种值对的集合。例如万维网发明人TimBerners-Lee先生,其姓名在语义网数据源DBpedia中被表示为<name,"TimBerners-Lee">。通常,一个语义网实体描述包含数十条乃至上百条这样的“属性—取值”,且一个属性也可以有多个不同取值。随着语义网快速发展,语义网技术在各个不同领域都有了不同程度的研究和应用。

自然语言处理(naturallanguageprocessing)是研究人与计算机交互的语言问题的一门学科。处理自然语言的关键是要让计算机“理解”自然语言,自然语言处理的关键技术包括自然语句的分词、词性标注、命名实体识别、指代消解、句法依存分析等。

问答技术(questionanswering),是信息检索技术的一种高级形式,它能用准确、简洁的自然语言回答用户的自然语言问题。自动问答系统能够自动分析问题并给出相应的候选答案,传统的自动问答系统主要由问题分析、信息检索和答案生成等模块构成。

传统的自动问答主要是面向文本集合进行的,包括分析问题中的关键词,将关键词提交到搜索引擎,从文本库中检索相关文档,获取返回结果中确信度最高的前若干文档,再从中生成答案。但是随着语义网技术的发展与逐渐普及,知识图谱(knowledgegraph)、链接数据(linkeddata)等信息组织程度较高的结构化知识库兴起,例如DBpedia和Freebase,使得新式基于结构化知识库实现自动问答成为可能。

相当规模的文档集合在经过语义解析之后,采用结构化的知识表示形式(常见表示为“实体—属性—取值”的三元组结构),形成了包含大量三元组的知识库。在这种知识库的基础上进行自动问答,比传统基于文本的自动问答更为高效、准确。如果用户能够使用查询对知识库进行提问,无疑能够精准快速地获得答案。但是在实际运用自动问答技术时,大部分用户并不能够实现这种“专业”的提问方式,而往往只会使用人类自然语言的形式进行提问,因此基于自然语言问句的知识库问答具有重要价值。在基于知识库的自动问答过程中,用户输入中文自然语言问句后,传统方法对问句仅采取简单处理得到关键词,生成的查询结构化程度不高,不能实现对知识库数据准确高效的查询。

发明内容

本发明面向三元组结构的知识库(下文简称为“知识库”),提出了一种通过将用户输入的中文自然语言问句进行基于模板提取的语义化,将中文自然语言问句转换成结构化查询,实现面向知识库的事实型问题的自动问答方法。

事实型问题可以分为简单事实型问题和复杂事实型问题。简单事实,即在知识库中直接表示为单个三元组的形式,例如“法国的首都是巴黎”是个简单事实,在知识库中表示为<"法国","首都","巴黎">。而复杂事实通常在自然语句中包含有时间或地点状语描述,更包含有参与者主体或客体以及事实相关的行为动作,例如“1950年,艾伦图灵在英国曼彻斯特大学提出了图灵测试”,又如“诺贝尔于1896年逝世”,其在知识库中有更为复杂的表示形式,类似空白节点(blanknode),下文将详述,此类复杂事实语句多出现于新闻讯息类文本中。本发明以复杂事实型问题为例,但方法也同样适用于简单事实型问题。

本发明的目的是:在知识库的自动问答过程中,使用语义网和自然语言处理技术对中文自然语言问句进行结构化转换,从而实现对知识库的快速准确的查询应答。

本发明的技术方案是:用户输入一个事实型问题,询问其中的部分事实内容(比如询问事实相关的时间、地点或主、客体等任一内容),首先使用自然语言处理工具对问句进行分析处理,提取出相应的关键词,再使用基于统计学习得到的泛化模板和语义解析技术识别出问句中的时间及空间(至少包含一个)、事实主体及事实客体(至少包含一个)等组成元素,待回答的部分以疑问词代替,形成复杂事实三元组集合。待回答部分所在三元组联合其他相关事实三元组形成一个带条件约束的知识库查询,到知识库中进行基于相似度计算的查询匹配,从相似度最高的候选结果中抽取待回答成分,得到最终答案。

中文自然语言问句语义化的知识库自动问答方法包括以下步骤:

1.用户输入一个事实型问题,通过自然语言处理的分词、词性标注、命名实体识别等技术提取问句中的关键词并基于共指实体进行扩展,自然语言问句转化为带标注的语义依存树;

2.基于较大规模统计学习得到一组问句匹配模板,包括依存树的节点模板、依存树的结构正则模板(对于不同的问题类型可能有不同的结构正则模板)以及中间结果模板,通过问句和模板的匹配,实现各类词性识别、问句主干内容提取,最终得到可用于构造查询三元组集合的中间结果;

3.使用典型的时空约束类事实型问题模板,提取问句中事实的“时间”、“地点”、“事实主体”、“事实客体”、“事实行为动作”等组成元素,实现对中间结果的语义化,进而生成多个“实体—属性—取值”元组。对得到的复杂事实三元组集合进行知识库查询,该集合可以视为一个带有其他三元组条件约束的知识库查询,在实际对知识库的查询过程中,进行基于相似度计算的查询匹配,从相似度最高者中抽取待回答的元素取值,替换疑问词生成问句所问的最终答案。

本发明的有益效果是:(1)定义了一组基于统计学习的泛化模板,能够适用于中文自然语言问句的解析和元素匹配,最大限度地标注句子成分。(2)使用语义网和自然语言处理技术处理事实型中文自然语言问句,为问句构建出一个逻辑清晰的结构化语义模型,比单一自然语言处理后得到的依存树内容更加精细具体,更易于机器的理解和处理。(3)基于模板提取和事实型问句的语义模型,得到带条件约束的知识库查询,在知识库中更容易查到准确的答案。

附图说明

图1是本发明的整体处理流程图;

图2是本发明定义的时空约束类事实型问题的语义化模型。

具体的实施方式

本发明公开了一种基于模板提取的中文自然语言问句语义化的知识库自动问答方法,包括以下步骤:首先对用户输入的事实型问题进行中文自然语言处理,实现分词、词性标注、命名实体识别和扩展,生成语义依存树;接下来使用基于统计学习得到的泛化模板和语义解析技术获得问句中的时间、空间、事实主体、事实客体等组成成分,然后进行语义化处理,提取问句中所有事件相关的组成元素属性及其取值,生成多个“属性—取值”对,其中待回答的元素以疑问词代替,形成复杂事实三元组集合;最后,待回答部分所在三元组联合其他相关事实三元组形成一个带条件约束的知识库查询,到知识库中进行基于相似度计算的查询匹配,从知识库中抽取结果,得到最终答案。

本发明的完整流程如图1所示,包括3个部分:根据用户输入的事实型问题进行中文自然语言处理实现关键词提取和共指扩展得到语义依存树,根据所得到的依存树运用事先定义的一组模板对语义依存树进行匹配得到更为详细的词性标注、主干内容提取以及中间结果生成,最后使用时空约束类事实型问题的语义模型构造带条件约束的结构化查询对知识库进行基于相似度计算的查询匹配,得到查询结果并从中抽取答案。

具体的实施方式分别说明如下:

1.根据用户输入的事实型问题进行中文自然语言处理实现关键词提取和共指扩展得到语义依存树

对于输入的一个中文事实型问题,首先对问句进行自然语言处理,使用开源工具包(例如美国斯坦福大学的NLPParser、中国复旦大学的FudanNLP)对问句进行分词、词性标注、命名实体识别和关键词抽取。

在这个过程中,为了提高关键词抽取的准确率,在开源工具对句子处理完毕后,加入一些实体词表(包括提取自原始文本库文档引号内容的特殊名词词表、取自中文Wikipedia的名词词条词表、地名词表、人名词表等)对句子进行二次校验,将原本开源中文自然语言处理工具包解析句子时可能产生的切分错误(主要是开源工具包无法识别的一些特殊实体名、长实体名、人名、地名等)加以解决,尽可能提高分词的准确度。

在上述分词基础上,生成问句的语义依存树。

在提取出问句的关键词后,考虑到目标文本库中不一定包含完全一致的词,所以对这些关键词进行相应的共指扩展,主要是关键词的同义词/近义词扩展。加入提取自中文Wikipedia的同义词表、词林,以及一些人工整理的同义词、近义词词表内容。

2.根据所得到的语义依存树运用事先定义的一组模板对依存树进行匹配得到更为具体的词性标注、主干内容提取以及中间结果生成

事先定义一组基于较大规模统计学习得到的问句匹配模板,包括依存树的节点模板、依存树的结构正则模板以及中间结果表达形式模板,通过问句对于模板的匹配,实现各类词性标注识别、问句主干内容提取,最终得到可用于查询的结构化三元组集合。

将这组模板运用到问句的依存树上的匹配过程如下:

(1)树节点模板能够解析出问句中所有相关节点的信息(起到强化语义标注的作用,明确疑问代词、命名实体名词、谓词等多种语句成分)。定义各类别的正则表达式,用于强化识别如人名、地名、时间、实体名等。再根据上述自然语言处理过程中涉及的命名实体识别和扩展词表的标注,详细标注依存树节点类别。

在综合了上述各类别可用于标注词语类型的(包括正则表达式和扩展词表等方法)方法之后,用以下树节点模板来存储每个树节点的结构和内容:

树节点模板用来精确识别满足给定条件的节点,系统针对问题进行自然语言处理之后,在对依存树中节点进行遍历的过程中,实现对每个节点内容的强化标注,以一种更加详细的方式说明各个节点的词语内容的类型。

在此基础上,各个节点的内容能够分门别类地归到树节点模板的分类之下,作为第二步树结构正则模板匹配的基础。

(2)树结构正则模板能够解析问句依存树的节点路径匹配语法树路径得到有效的问句结构,提取最有用的内容,一般为问句主干内容以及关键修饰词。在针对事实型问题的模板提取流程中,第一步节点模板匹配能够解析出时间、地名的名词内容,而时间、地点状语对事实语句结构主干并不产生其他影响,这里选择在进行依存树结构正则模板匹配之前,作适当处理,提取出时间、地点名词,并移除可能存在的时间、地点状语中的介词(如“在”、“于”等)。

具体地,根据句法树的根节点到叶子节点的路径,来定义树结构的正则模板,用于正则匹配语法树的路径,提取有用的字段。通常,同种问答类型的问句结构节点有其共性,比如典型的事实型问题中常带有带介词的时间或地点状语以及主客体行为动作,在节点解析和结构提取上具有一致性。这个特点让树节点模板有了一定的泛化能力,即可以通过一个树节点模板匹配一类共性节点(即某些类似的句型或类似的主题问句具有相同或相似的树结构正则模板)。

首先将树以根节点为起点进行路径化,得到一系列根节点到叶子节点的依存路径。这些路径匹配使用类似于正则表达式的形式。不同于正则表达式的地方在于,正则表达式的平凡项都是字符匹配,而系统中树结构正则模板的平凡项都是树节点模板,这样一个模板就可以匹配具有相同特征但是节点内容不同的树的生成路径。

正则模板支持正则操作有:连接("ab"),并列("a|b"或"[ab]"),Kleene重复(贪婪模式"a*"和非贪婪模式"a*?"),普通重复(贪婪模式"a+"和非贪婪模式"a+?"),可选("a?")以及位置匹配(开始位置"^"和结束位置"$")。

模板的任务是识别出特定的子结构并且从这些子结构中提取有用的部分,需要能够提取匹配部分的特定位置的节点,因此支持基于括号的匿名捕获组,捕获组内容使用整型序号进行访问。因此,匹配结果可以轻松的通过“正则模板名称捕获组编号”(捕获组,把正则表达式的子表达式匹配内容,以数字编号方便引用,以表达式中“(”出现的顺序依次编号,一般的,0表示整个表达式)访问得到。

另外,每棵树都能生成数条路径,在所有路径匹配完成后,需要将其组成树结构。由于不同的路径会共用一部分节点,在将路径匹配结果整合的时候,需要确保同一节点匹配的结果也相同,即不同匹配路径下的对应节点要对齐。所以每一棵树结构的正则模板都加上了“CONSTRAINTS”字段,用以约束不同的路径之间匹配结果的节点对齐,同上文一样,匹配结果通过“正则模板名称捕获组编号”获得。该字段只需要表达对应节点匹配内容等或不等,因此表述为“(=正则模板名称捕获组编号...)”或“(!=正则模板名称捕获组编号...)”。

依上文所述,相同求解类别的问题或相似句式的问题具有相同或相似的树结构正则模板,因此在实际问题解析的过程中可以根据实际需要定义对应适用的泛化模板。由于中文语言表达的复杂性特征,此类模板构造的数目还是相对较多(适用于不同中文表达句式的模板)。

这里针对典型的时空约束类事实型问题,给出定义的模板样式。依存树匹配模板的一个示例流程如下所示:

例:“1950年,艾伦图灵在哪里提出图灵测试?”

根据自然语言分词,初步得到的问句语义依存树结果为:

“艾伦图灵”、“图灵测试”是经过实体词表识别处理的命名实体,认定该字符串连续不可分割。

这里注意,提取出与求解部分不影响的时间或地点状语部分之后,模板得到的根树路径为“提出→艾伦图灵”、“提出→在→哪里”和“提出→图灵测试”。之后的模板匹配过程如下:

以上,即为依存树节点、正则结构模板的定义以及一个时空约束类事实型问句示例的树节点、正则结构的模板解析流程。

对于时空约束类事实型问题的求解,求解不同事实元素,可以类似构造其他对应模板,替换求解疑问代词,模板其余的基本格式内容几乎一致。

(3)中间结果表达形式模板用于表示以上两个模板提取后得到的中间结果,是初始问句的问答解决方案。基于中间结果,再运用事先定义的时空约束类事实型语义化模型,生成相应的实体关系三元组,能够用于下一步的结构化查询。

例如“法国的首都是什么?”问句得到的中间结果生成的三元组为<"法国","首都",什么>;“1950年,艾伦图灵在哪里提出图灵测试?”的中间结果生成的三元组集合为Q:{<Q,"时间","1950年">,<Q,"地点",哪里>,<Q,"主体","艾伦图灵">,<Q,"客体","图灵测试">,<"艾伦图灵","提出","图灵测试">}。

3.使用时空约束类事实型问题的语义化模型整理中间结果,构造带条件约束的结构化查询对知识库进行基于相似度计算的查询匹配,得到查询结果并从中抽取答案

一般的,一个复杂事实可以解析出多个组成元素,最具描述特征的是事实相关的时间、地点,事实相关的主体、客体,以及主体对客体做出的行为动作。时空约束类事实模型根据依存树节点模板得到的时间名词、地点名词,正则结构模板得到的主体、客体、动作行为(主体→客体),精确提取句子中包括产生事实的{时间,地点,主体,客体,行为动作}多个组成元素。部分元素若无取值则表示为空(NULL),包含空值的三元组可根据需要生成或不生成。

使用语义网技术,将句子所表示的事实描述为语义网技术中空白节点。所谓空白节点,表示无法用一个具体明确的URI标识的节点。在此情境下,空白节点表示一个事实的陈述(statement),本身没有一个具体的值可以描述它,但是可以用时间、地点、主客体等属性及其取值来拓展描述其外延。

在提取出事件语句的各个组成元素及其取值之后,以组成元素为属性,元素值为具体字面值,分别对每个句子生成多个“实体—属性—取值”三元组。具体地,三元组表示形式T=<s,p,o>,s表示该三元组描述内容的主语,p为谓语,o为宾语。以事件语句表达的事件Q为中心主语,则整个事件(时间、地点、主体、客体、行为动作)即可表示为

Q:{Tt,Tl,Ts,To,Tact},Tt=<Q,time,tValue>,Tl=<Q,location,lValue>,Ts=<Q,subject,sValue>,To=<Q,object,oValue>,Tact=<sValue,actValue,oValue>。

上述三元组集合所表达的内容可用一种可视化方式呈现,如图2所示(注:当事实句子中只有事实主体时,客体与主体合并,客体取值与主体取值合并,行为动作形成自环)。特殊地,一个事实语句中,如无客体情形,例如“诺贝尔于1896年逝世”,则将客体与主体合并,行为动作形成主体自环。

对得到的问句三元组集合进行知识库查询匹配。该集合可以视为一个带有其他三元组条件约束的三元组查询,对于问句事实三元组集合,待求解回答元素所在的三元组的取值以疑问词代替。在实际对知识库的查询过程中,忽略事实中心节点Q的字面值与知识库中事实描述结构类似的事实中心节点的字面值相似度,对每个三元组中除Q以外的其他字面值为变量值的元进行相似度计算(即时间、地点、主体、客体等固定属性名必须严格匹配,属性取值则进行相似度计算匹配),以著名的Jaro-Winkler字符距离公式(加入同义词扩展词表,认为同义词相似度为1)度量(每个包含多个字面值变量的元相似度计算的三元组中再进行内部元的相似度加权平均,有n个字面值变量的元则相似度计算权重为1/n,例如Tact三元组中每个字面值可变元的相似度计算权重为1/3)得到每一组事实组成元素三元组的相似度,得到5个相似度值为{St,Sl,Ss,So,Sact}。

对于问句三元组集合和每一个候选三元组集合,令每个三元组的相似度权重为{Wt,Wl,Ws,Wo,Wact},这里设定对于判断两个事实三元组集合是否表达同一事实,其中的组成元素所产生的判定作用是等价的,因此对其5个权重等价赋值皆为1/5=0.2,但也保留了根据实际情况灵活调整的可能性。于是对于问句事实和一个候选答句的最终相似度S计算即为:

S=WtSt+WlSl+WsSs+WoSo+WactSact.

特殊地,有可能出现只有时间元素或地点元素其一,以及只有事实主体的情形,因此又令:

Wt+Wl=0.4,Ws+Wo=0.4。

且在此特殊情形下,取值为空的元素相似度权重为0,该事实三元组不纳入相似度计算过程。

基于上述相似度计算公式,计算得到问句事实三元组集合与知识库中每个候选事实三元组集合的最终相似度后,对其进行降序排列,取相似度值最大者为最符合问题的三元组集合(若存在多个相似度与最高相似度非常近似的情形,即差值小于0.05,则认为它们都是符合条件的),从中提取待回答部分,以对应内容代替原问句待求解三元组中的疑问词,即为能够给出的最终答案(由于是基于相似度计算,因此最终答案不一定完全符合实际事实,因为知识库中可能没有相关的信息知识)。

本发明不同于文本问答方法,而是以基于模板提取的中文自然语言语义化方法,针对事实型问题,实现了中文自然语言问句到结构化查询的转换,又以基于相似度计算的查询匹配的方式实现基于知识库的自动问答,能够给出比文本答案整句更为细粒度的待求解部分的答案抽取。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号