一种面向任务的非结构化信息智能问答系统构建方法与流程

文档序号:17762931发布日期:2019-05-24 21:52阅读:194来源:国知局
一种面向任务的非结构化信息智能问答系统构建方法与流程
本发明涉及中文自然语言处理技术和信息搜索
技术领域
,具体涉及一种面向任务的非结构化信息智能问答系统构建方法。
背景技术
:现在全球各类信息资源的自由共享使得多源异构信息源源不断的生成,其数量巨大、内容复杂多样,且信息质量良莠不齐。在这样复杂环境下信息空间呈现出诸多的不确定性,信息的查询还是通过传统的关键字查询信息,较为复杂的需求往往没有办法在一次查询中完成,需要经过几轮查询才能获取到关键信息。对能够准确理解自然语言问句的问答系统的需求越来越迫切,通用的问答系统所面临的问题远远没有解决,学术界和产业界都仍在探索阶段。基于布尔模型的搜索引擎技术在民用领域已经发展得非常成熟,例如百度、谷歌的通用搜索引擎已被广泛应用。得益于维基百科、百度百科等大规模的知识库,大型搜索引擎公司已经可以基于知识图谱或qa对直接回答一部分问题,完成了问答系统的部分功能,但是该技术需要事先构建领域内的知识图谱和问答语料才能发挥出作用。然而,绝大部分数据是非结构化的异构信息,碎片化的数据流整合到通用的知识库需要时间,如果可以直接针对某类问题从海量的语料中抽取出期望答案对于信息搜索具有实际意义。目前通过自然语言处理的技术从非结构化信息中提取期望答案的技术研究较少。已有的智能问答研究多数是基于知识图谱的结构化问题回答,将非结构化文本进行开放式信息抽取生成知识图谱,没有深入基于非结构化文本的问答系统研究。技术实现要素:针对信息搜索领域所存在的问题和不足,本发明提供了一种面向任务的非结构化信息智能问答系统构建方法,包括如下步骤:步骤1、构建后台索引:对非结构化的文本按单句和段落进行切分,段落级索引的字段包括段落id、段落内容、段落所在文章中的位置、段落所在文章id;句子级索引的字段包括句子id、句子内容、句子所在段落位置、句子所在段落id、该段落在文章中的位置、句子所在文章id;对句子和段落分别建立二级全文索引,为用户查询提供检索支持;步骤2、对用户问题请求的相关操作分别采用hanlp和stanfordnlp工具包进行中文分词和词性标注,可以得到问题请求的词语集合以及各词的类型,例如是否为实体名词等。在系统构建之前,为了对用户的请求进行任务分类需提前构建提示词表,用于对用户问题请求进行基于词语规则的初归类,只要用户的请求中出现了词表中的词汇,同时句法分析结果符合此类别要求,则将问题请求归为该类问题。系统根据词表判断用户请求可能的任务类型后,再对用户的问题请求通过stanfordnlp工具包进行句法分析以获取句法特征,匹配期望答案类型,生成查询请求表达式,包含了查询的关键词以及期望答案的类型;步骤3、对于每一项任务,配置任务拓展词典以提高任务查询的查全率,词典包含了用户请求中常见词的同义词、近义词、领域相关词汇以及词权重配置。根据问句的任务类型、分词和词性标注结果,生成查询请求表达式,使用任务拓展词典对查询请求的关键词进行拓展与组合,分别转换成句子级和段落级索引查找条件和兜底查询条件,依据不同的任务调整查询关键词的权重和排序要求;步骤4、优先在句子级索引中查找,如果没有查询到结果或者结果数过少,则将查询请求在段落级索引中再次查找,如果还是没有足够的结果数,则使用兜底查询条件进行二次查找,最终生成候选结果集;步骤5、将候选结果集按照任务对应的排序策略进行个性化排序,默认按相关度得分进行排序,并归一化相关度得分值,得分在0至1之间。取相关度得分最高的三个结果作为下一步的候选答案;如果候选结果相关度差距小于设定的阈值(阈值取0.1),则按照时间排序,取距离当前时间最近的三个结果为下一步的候选答案;步骤6、将候选答案按标点符号进行短句切分,统计检索关键词所在位置,包括实体词和属性词,基于任务的期望答案进行命名实体识别,统计关键词与期望答案类型相符的短语之间距离,依据设定窗口大小过滤期望答案类型短语与检索关键词之间距离过大的结果,窗口大小默认可设为2;步骤7、找到距离属性词最近的且符合期望答案类型的位置标记为可能的问题答案,并输出结果。步骤2中,用户的请求期望答案类型定义为三类:天气型,时间型,数字型;每一类用户请求都有对应的提示词集合,例如,天气类对应的提示词有:天气、下雨、下雪、温度等;数字型对应的提示词有:多长、多高、多少、长度等。提示词表是根据用户请求中分词结果集合高频词统计得出,也可以手动对词表进行扩充。如果用户问题请求的分词和句法分析结果中包括了提示词表中的词则将该问题分入该类别,句法分析得到的句法特征包括句法构成树及句法依赖图,具体做法是设置实体名词之前或之后在特定窗口长度包含词的词性、实体类型作为中心词的特征标准,窗口长度可设置为2或3。识别问句中两个实体名词为中心词,中心词在句法构成树中最短路径包含的词性标签及其长度和在句法依赖图中的依赖路径及其长度,句法符合两个实体名词的中心词在句法构成树中最短路径包含的词性标签,即将此用户的问题请求进行归类处理。步骤3中,优先对句子级索引进行查询,如果查不到或者查询到结果个数不满三个再去查询段落级索引;句子级索引查询条件必须用逻辑表达式连接各查询关键词,步骤2中得到的分词结果需根据提示词表进行拓展,各查询关键词之间用与连接,提示词之间用或连接;对于兜底查询条件,各查询关键词之间用或连接,提示词之间也使用或连接,关键词设置两倍于普通词语的权重;排序策略必须根据任务的要求进行调整,能够设置两个以上排序字段,并设置优先级。步骤4中,首先根据句子查询条件去查询,必须包含所有的关键词,返回的查询结果数量多于三个则直接返回结果;如果查询的结果小于三个则需要从段落级索引中进行查询补齐结果数量;如果在句子级和段落级索引都没有查找到结果,则启用兜底查询条件进行查找。步骤5中,统计关键词e在步骤1原始的非结构化文本中出现的频次,记为tfe,n代表海量新闻语料中文档的数量,dfe代表包含实体e的文档个数,计算该关键词的词频-逆文本频率指数,记为tf-idf,则e的tf-idf值tfidfe由以下公式计算得到:将tfidfe归一化为0~1之间的数值作为该项特征;对于多关键词的查询语句,采用基于tf-idf的复合评分计算方法计算其分值score(q,d),由以下公式计算得到该值:其中,coord(q,d)为查询语句q在文档d中出现的频率,查询语句q由多个查询词t组成;querynorm(q)为归一化的参数,与文档的相关度无关;tf(tind)为词t在文档d中出现的频率,idf(t)为词t在整个文档集合(海量新闻语料)中的逆文档频率;t.getboost为词t的加权值,默认值为1.0;norm(t,d)为长度相关的加权因子。步骤6中,对于步骤5已经查找到的候选答案,按答案中出现的逗号、句号、分号进行分割,对短句使用stanfordnlp工具包进行命名实体识别,识别出句中的人名、时间、数字、地名,并标注与答案类型相符的词语位置,如果没有与期望答案类型相符的词语则直接过滤这个短句,统计关键词与期望答案类型相符的短语之间距离,设定窗口大小,过滤期望答案类型短语与检索关键词之间距离过大的结果。窗口大小可设为2,过滤非名词动词的修饰词后进行窗口计算(属性关键词与期望答案类型相符的词语越近,认为其是正确答案的可能性就越大)。本发明与现有技术相比,显著优点为:1)无需构建知识图谱,仅需提供任务类型匹配规则和查询组成方式即可使用;2)返回搜索结果更加精确,减少了人工筛选关键信息的工作;3)针对任务里天气型,时间型,数字型的信息请求提供了一种高效便捷的问答机制。附图说明下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。图1是本发明信息索引和信息搜索的流程图。具体实施方式下面结合附图及实施例对本发明做进一步说明。本发明的技术方案步骤如下:步骤(1)、构建后台索引:对非结构化的文本按单句和段落进行切分,段落级索引的字段包括段落id、段落内容、段落所在文章中的位置、段落所在文章id;句子级索引的字段包括句子id、句子内容、句子所在段落位置、句子所在段落id、该段落在文章中的位置、句子所在文章id;对句子和段落分别建立二级全文索引,为用户查询提供检索支持;步骤(2)、对用户问题请求的相关操作分别采用hanlp和stanfordnlp工具包进行中文分词和词性标注,可以得到问题请求的词语集合以及各词的类型,例如是否为实体名词等。在系统构建之前,为了对用户的请求进行任务分类需提前构建提示词表,用于对用户问题请求进行基于词语规则的初归类,只要用户的请求中出现了词表中的词汇,同时句法分析结果符合此类别要求,则将问题请求归为该类问题。系统根据提示词表判断用户请求可能的任务类型后,再对用户的问题请求通过ltp工具包进行句法分析以获取句法特征,匹配期望答案类型,生成查询请求表达式,包含了查询的关键词以及期望答案的类型;步骤(3)、对于每一项任务,配置任务拓展词典以提高任务查询的查全率,词典包含了用户请求中常见词的同义词、近义词、领域相关词汇以及词权重配置。根据问句的任务类型、分词和词性标注结果,生成查询请求表达式,使用任务拓展词典对查询请求的关键词进行拓展与组合,分别转换成句子级和段落级索引查找条件和兜底查询条件,依据不同的任务调整查询关键词的权重和排序要求;步骤(4)、优先在句子级索引中查找,如果没有查询到结果或者结果数过少,则将查询请求在段落级索引中再次查找,如果还是没有足够的结果数,则使用兜底查询条件进行二次查找,最终生成候选结果集;步骤(5)、将候选结果集按照任务对应的排序策略进行个性化排序,默认按相关度得分进行排序,并归一化相关度得分值,得分在0至1之间。取相关度得分最高的三个结果作为下一步的候选答案;如果候选结果相关度差距小于设定的阈值(阈值取0.1),则按照时间排序,取距离当前时间最近的三个结果为下一步的候选答案;步骤(6)、将候选答案按标点符号进行短句切分,统计检索关键词所在位置,包括实体词和属性词,基于任务的期望答案进行命名实体识别,统计关键词与期望答案类型相符的短语之间距离,依据设定窗口大小过滤期望答案类型短语与检索关键词之间距离过大的结果,窗口大小默认可设为2;步骤(7)、找到距离属性词最近的且符合期望答案类型的位置标记为可能的问题答案,并输出结果。本发明步骤(2)中,用户的请求期望答案类型定义为三类:天气型,时间型,数字型;每一类用户请求都有对应的提示词集合,例如,天气类对应的提示词有:天气、下雨、下雪、温度等;数字型对应的提示词有:多长、多高、多少、长度等。提示词表是根据用户请求中分词结果集合高频词统计得出,也可以手动对词表进行扩充。如果用户问题请求的分词和句法分析结果中包括了提示词表中的词则将该问题分入该类别,句法分析得到的句法特征包括句法构成树及句法依赖图,具体做法是设置实体名词之前或之后在特定窗口长度包含词的词性、实体类型作为中心词的特征标准,窗口长度可设置为2或3。识别问句中两个实体名词为中心词,中心词在句法构成树中最短路径包含的词性标签及其长度和在句法依赖图中的依赖路径及其长度,句法符合两个实体名词的中心词在句法构成树中最短路径包含的词性标签,即将此用户的问题请求进行归类处理。本发明步骤(3)中,优先对句子级索引进行查询,如果查不到或者查询到结果个数不满三个再去查询段落级索引;句子级索引查询条件必须用逻辑表达式连接各查询关键词,步骤2中得到的分词结果需根据提示词列表进行拓展,各查询关键词之间用与连接,提示词之间用或连接;对于兜底查询条件,各查询关键词之间用或连接,提示词之间也使用或连接,关键词设置两倍于普通词语的权重;排序策略必须根据任务的要求进行调整,能够设置两个以上排序字段,并设置优先级。本发明步骤(4)中,首先根据句子查询条件去查询,必须包含所有的关键词,返回的查询结果数量多于三个则直接返回结果;如果查询的结果小于三个则需要从段落级索引中进行查询补齐结果数量;如果在句子级和段落级索引都没有查找到结果,则启用兜底查询条件进行查找。本发明步骤(5)中,统计关键词e在原始的非结构化文本中出现的频次,记为tfe,n代表海量新闻语料中文档的数量,dfe代表包含实体e的文档个数,计算该关键词的词频-逆文本频率指数,记为tf-idf,则e的tf-idf值tfidfe由以下公式计算得到:将tfidfe归一化为0~1之间的数值作为该项特征;对于多关键词的查询语句,采用基于tf-idf的复合评分计算方法,由以下公式计算得到该值:其中,coord(q,d)为查询语句q在文档d中出现的频率,查询语句q由多个查询词t组成;querynorm(q)为归一化的参数,与文档的相关度无关;tf(tind)为词t在文档d中出现的频率,idf(t)为词t在整个文档集合中的逆文档频率;t.getboost为词t的加权值,默认值为1.0;norm(t,d)为长度相关的加权因子。本发明步骤(6)中,对于上一步已经查找到的候选答案,按答案中出现的逗号、句号、分号进行分割,对短句使用stanfordnlp工具包进行命名实体识别,识别出句中的人名、时间、数字、地名,并标注与答案类型相符的词语位置,如果没有与期望答案类型相符的词语则直接过滤这个短句,统计关键词与期望答案类型相符的短语之间距离,设定窗口大小,过滤期望答案类型短语与检索关键词之间距离过大的结果。窗口大小可设为2,过滤非名词动词的修饰词后进行窗口计算(属性关键词与期望答案类型相符的词语越近,认为其是正确答案的可能性就越大)。实施例结合图1,本发明实现了面向任务的非结构化信息智能问答系统,以任务类型“地理信息导航”为例,假设用户此时在系统中输入问题:“岛屿a的面积有多大?”,用户期望的答案是一个确定的数字,如果以传统的检索模式,用户需要依次点开结果链接,在段落中寻找答案。本发明的具体求解步骤如下:步骤1:对文本进行预处理,分别按单句和段落进行切分,对文本采用lucene或solr搜索引擎建立索引数据,句子索引字段的定义如表1所示。表1字段名字段含义senid句子idsencontent句子内容seninparalocation该句子在段落中的位置(属于其所在段落的第几句)senparaid该局所在段落idparaindoclocation所在段落在文章中的位置sendocid句子所在文章id段落索引字段的定义如表2所示:表2步骤2:对用户的问题进行分词和句法分析,将问句中的有效成分提取出来,对问句进行任务类型识别和查询请求生成策略匹配;采用hanlp工具对用户的问句进行分词和词性识别,使用stanfordnlp对该问句进行句法解析,若句式和关键词词性都和任务类型特征匹配则可以按模板生成查询请求;分词结果为:(岛屿a面积多大)。词性识别结果为:(岛屿a/nr的/deg面积/nn有/ve多大/ad)。定义数字型问题需包含的提示词表为{面积、体积、长度、宽度、高度、深度},因该问题的分词结果中包含提示词且句法符合两个实体的中心词在句法构成树中最短路径包含的词性标签,所以将该问题归类为数字型问题。在这一步骤可以确定问题类别为数字型,中心实体为“岛屿a”,提示词为“面积”,根据拓展词表还可以进一步拓展提示词,“面积”的拓展词有“占地”;步骤3:根据问句的任务类型、分词结果、以及查询请求生成策略生成该问题的查询请求,依据不同的任务调整查询关键词的权重和排序要求。在这里假设任务的背景为“地理信息导航”,根据上述结果填写查询请求表达式:<检索任务><任务属性>……<任务类型>地理信息导航</任务类型></任务属性><信息需求列表><需求描述><id>xxms001</id><问题类别>数字型</问题类别><中心实体>岛屿a</中心实体><提示词>面积</提示词><拓展词>占地</拓展词><排序策略>相关度+时间</排序策略></需求描述></目标信息列表></检索任务>步骤4:将该查询请求xml解析为搜索引擎的查询语句分别在句子级索引和段落级索引里查询。句子级查询语句为:q=sencontent:(岛屿a)andsencontent:(面积or占地)sort=(scoredesc,sendocidasc)段落级查询语句为:q=paracontent:(岛屿a)andsencontent:(面积or占地)sort=(scoredesc,paradocidasc)步骤5:将候选结果集默认按照相关度得分进行过滤与排序,若该问题匹配了任务类型则按照该任务的排序策略进行过滤与排序。在本例中,任务类型为前出打击,对应的排序策略为相关度倒序,在相关度得分非常接近时,排序策略为时间倒序。这里设定查找到的第一条结果为:“岛屿a地理位置为东经123度至124度34分、北纬25度40分至26度,由岛屿a、黄尾岛、赤尾岛、南小岛、北小岛、大南小岛、大北小岛和飞濑岛等,其中岛屿a的面积为4.3平方公里,是群岛中最大的岛屿。”步骤6:将候选答案按标点符号进行短句切分,统计关键词所在位置,包括实体词和属性词等,基于任务的期望答案进行分词和词性标注,实现命名实体识别。上述查找到的句子按逗号分隔为六个短句,逐个遍历这六个短句,既满足句中“岛屿a”“面积”关键词,又存在数字类型的短语“4.3平方公里”,因此该短句会加入到候选列表中。当结果数过少时,系统进行二次遍历,相比第一次遍历较为严格(仅仅把符合限制条件的短句加入到结果列表中),第二遍遍历放宽了限制,把包含了最多关键词的短句识别出来,把该句子放入到结果列表当中,并标注出短句的序列位置。步骤7:找到距离属性词最近的且符合期望答案类型的位置标记为可能的问题答案,并输出结果。本例中,属性词为“面积”,期望答案类型为数字,则将“4.3平方公里”标记为最终的答案输出。由上可知,本发明可以为任务提供一种简单准确的信息检索方式,操作简单,运用灵活,可满足对天气型,时间型,数字型等最常见的信息需求,改善了原来现有信息系统必须人工整理信息入库,无法充分利用非结构化数据的问题。本发明提供了一种面向任务的非结构化信息智能问答系统构建方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1