一种自然语言理解方法及基于该方法的旅游问答系统技术方案

技术编号:11899606 阅读:148 留言:0更新日期:2015-08-19 11:16
本发明专利技术公开了一种自然语言理解方法及基于该方法的旅游问答系统,通过将提问与语法库中的问题匹配,根据问题对应的函数与参数值从知识库中抽取答案,提供的语法库不仅涵盖了领域范围内的绝大多数问题,还通过非领域知识库提供超出领域范围的问题,并通过读取缓存中历史问题相关数据使得获取的答案符合用户提问时的情境,除了提供精确答案外还提供存在的相关联的答案;该方法用于旅游问答系统时,不仅能涵盖旅游领域99%以上的问题,还可以抽取超出旅游领域问题的答案,提供存在的相关联的答案,通过测试准确率达到95%以上。

【技术实现步骤摘要】
一种自然语言理解方法及基于该方法的旅游问答系统
本专利技术涉及一种语言理解的处理方法,尤其是涉及一种自然语言理解方法及基于该方法的旅游问答系统。
技术介绍
基于自然语言理解方法的问答系统可以理解用户以自然语言提出的问题,并给出相应的答案。这类系统不同于信息检索系统,它的回答不是可能答案列表而是准确和人性化的,机器智能化程度较高。根据问答系统所处理的领域范围可以分为开放领域的问答系统与专业领域的问答系统。开放领域问答系统是以非结构化的Internet资源为基础的问答系统;专业领域问答系统是基于结构化的涵盖一个或多个专业领域的知识库的专家问答系统。自然语言理解是通过分析问题并计算问题与答句之间的语义距离,然后再按照语义相近行来提取答案的。一般过程为问题分析、语义匹配、答案抽取。问题分析通常采用各种自然语言处理技术对问题进行词法分析、句法分析、语义分析以及命名实体的识别处理,确定问题所关心的对象、所关注的事实和问题的类型,为语义匹配与答案抽取奠定基础。语义匹配是采用特有算法或规则对问题与答案进行语义距离计算,根据语义距离筛选出最佳答案,并得到抽取答案的路径或规则。答案抽取是根据语义匹配结果从知识库中按照答案抽取路径或规则抽取回答问题的答案。现有的基于自然语言理解的问答处理存在的问题是:第一、答案是完全根据问题与答案语义匹配结果来获取,例如专利201310190366.5《一种自然语言的语义解析方法及装置》,如果问题分析错误必然会影响结果的准确性,给出的结果答非所问。第二、专业领域问答系统只提供该领域范围内的知识库,例如专利200810233734.9《基于本体推理的旅游问答系统答案抽取方法》只提供了旅游本体知识库,不能够回答超出范围的问题,或是在提问不清楚的情况下不能够得到答案,用户体验差。第三、答案模式是一问一答,一般都不考虑用户历史提问内容,即只能是回答针对问题本身提出的问题,因此得到的答案有时并不是用户期望的结果。
技术实现思路
本专利技术所要解决的技术问题是提供一种回答问题准确性高、涵盖范围广的自然语言理解方法及基于该方法的旅游问答系统。本专利技术解决上述技术问题所采用的技术方案为:一种自然语言理解方法,包括构建数据库,理解问题和提取答案,具体步骤为:1)构建用于存储领域范围内数据的知识库、用于存储字词集合和问题模板的语法库和用于存储非领域范围内问题与答案的非领域知识库,具体为:1.1构建知识库,将领域内的不同对象的描述数据存储到非结构化数据库mongodb中,每一个对象对应一张表,数据是作为对象的属性值即表的字段值;1.2构建语法库,将问题模板与字词集合存储到语法库,所述的字词集合包括关键字、领域内专业词语和普通字词,在问题模板中的问题小类索引与关键字之间建立映射;1.3构建非领域知识库,将常问问题与答案存储到非领域知识库中,其中,问题与答案之间具有映射关系;2)对收到的原始问题先进行问题理解,具体步骤为:2.1先将问题与语法库中的领域内专业词语匹配,提取问题中的专业词语,再将剩余部分与普通字词匹配,通过上述的匹配将问题拆分为一组词语;2.2将拆分得到的词语与语法库中的关键字匹配,确定问题的关键字;2.3通过关键字与语法库中问题模板的问题小类索引之间的映射,得到问题所对应的问题分类,判断该问题分类是否是唯一问题分类,是唯一问题分类则作为待匹配问题分类进入步骤2.6,多于一个问题分类进入下一步骤,没有问题分类则进入步骤3.2;2.4判断是否为第一次提问,不是第一次提问进入下一步骤,是第一次提问,则选择第一个问题分类作为待匹配问题分类进入步骤2.6;2.5读取缓存中的数据,获得历史问题的类别、关键字、提问对象和经纬度,将它们作为条件对当前问题增加限定,过滤问题分类后再判断是否得到唯一问题分类,是唯一问题分类则作为待匹配问题分类进入下一步骤,不是唯一问题分类选择第一个问题分类作为待匹配问题分类进入下一步骤;2.6提取待匹配问题分类中的所有问题模板作为待匹配问题模板;2.7将步骤2.1得到的所有词语,逐个与语法库中的字词集合进行匹配,如果词语与字词集合匹配,用匹配得到的字词集合的名字替换该词语,如无匹配则词语不替换,最终得到新的问题;2.8将新的问题与步骤2.6中的待匹配问题模板进行匹配,为每个待匹配问题模板计分,计分规则为:问题与问题模板之间完全匹配的情况得分为0分,问题与问题模板之间有一个字不匹配得分为-1分,两个字不匹配得分为-2分,依次类推,按得分排序,选择得分最高的问题模板作为匹配结果;2.9在缓存中记录用户提问的类别、关键字、当前提问的对象名称和经纬度以及原始问题;3)提取答案:3.1根据步骤2.8中得到的匹配结果获取对应的提取答案的函数与参数,然后依据函数确定获取答案的路径和规则,再根据路径和规则以及参数从知识库中提取答案作为原始问题的答案;3.2从非领域知识库中提取答案:3.2.1计算原始问题与非领域知识库中的问题的相似度;3.2.2判断是否得到匹配的问题;如果只有一个相似度值大于0的问题,则进入步骤3.2.3;如果相似度值大于0的问题多于一个,取相似度最大的问题作为匹配问题,再进入步骤3.2.3;如果相似度值都为0则进入步骤3.3;3.2.3根据匹配得到的问题及步骤1.3得到的问题与答案的映射获取对应的答案作为原始问题的答案;3.3得不到问题的答案,给出提示不能回答问题。构建语法库的具体步骤为:1.2.1首先收集领域内的问题样例,按照问题内容对样例分类,除去样例中多余的修饰词汇,提取关键字,得到精简的问题样例,将关键字与精简的样例记录到文档中,提取领域内的特有词语作为领域内专业词语;然后编写语法:先将表示相同意思的字放在同一个集合中,对每个字集合命名,再将表示相同意思的词语放在同一个集合中,对每个词语集合命名,然后建立当前领域的通用术语集合,最后进行语句定义;1.2.2为每一个问题模板设置函数与参数,由函数限定从知识库提取该问题模板的答案所对应的路径和规则,包括提取答案的表名,表中需要提取的字段名以及限制条件;根据参数从原始问题中获取参数的值来确定提取答案的具体限制条件;1.2.3对问题模板按照提问内容相关性划分问题信息点,将领域范围内问题分为多个大类,每个大类再继续划分为多个小类,对每一个小类问题建立索引,在关键字与问题小类索引之间建立映射,通过映射将关键字对应到问题小类。步骤1.2.1中语句定义的内容包括:用于说明该问题提问内容的名称,给出一个样例来举例说明该问题的注释;将表示问题的字词集合名称组合成为一个问题模板。步骤1.2.2中所述的函数的格式为:问题模板的答案=[表名,字段名,限制条件],限制条件的格式为:字段名:+参数,参数为字词集合名称,所述的参数的值是字词集合名称所替换的原始问题中的字或词语。构建非领域知识库是通过机器学习完成的,具体步骤为:收集训练问题样本,不断的提问与获取答案,使用回答频率高的答案作为训练问题样本的答案,存储问题与答案到非领域知识库中。步骤3.2.1中计算原始问题与非领域知识库中的问题的相似度的具体过程为:令X=(x1,x2,...xi...,xn)T为对原始问题按常用字典中的习惯拆分得到的字词向量,T表示向量转置,定义xi的取值规则为则原始问题向量X=本文档来自技高网
...
一种自然语言理解方法及基于该方法的旅游问答系统

【技术保护点】
一种自然语言理解方法,包括构建数据库,理解问题和提取答案,其特征在于具体步骤为:1)构建用于存储领域范围内数据的知识库、用于存储字词集合和问题模板的语法库和用于存储非领域范围内问题与答案的非领域知识库,具体为:1.1构建知识库,将领域内的不同对象的描述数据存储到非结构化数据库mongodb中,每一个对象对应一张表,数据是作为对象的属性值即表的字段值;1.2构建语法库,将问题模板与字词集合存储到语法库,所述的字词集合包括关键字、领域内专业词语和普通字词,在问题模板中的问题小类索引与关键字之间建立映射;1.3构建非领域知识库,将常问问题与答案存储到非领域知识库中,其中,问题与答案之间具有映射关系;2)对收到的原始问题先进行问题理解,具体步骤为:2.1先将问题与语法库中的领域内专业词语匹配,提取问题中的专业词语,再将剩余部分与普通字词匹配,通过上述的匹配将问题拆分为一组词语;2.2将拆分得到的词语与语法库中的关键字匹配,确定问题的关键字;2.3通过关键字与语法库中问题模板的问题小类索引之间的映射,得到问题所对应的问题分类,判断该问题分类是否是唯一问题分类,是唯一问题分类则作为待匹配问题分类进入步骤2.6,多于一个问题分类进入下一步骤,没有问题分类则进入步骤3.2;2.4判断是否为第一次提问,不是第一次提问进入下一步骤,是第一次提问,则选择第一个问题分类作为待匹配问题分类进入步骤2.6;2.5读取缓存中的数据,获得历史问题的类别、关键字、提问对象和经纬度,将它们作为条件对当前问题增加限定,过滤问题分类后再判断是否得到唯一问题分类,是唯一问题分类则作为待匹配问题分类进入下一步骤,不是唯一问题分类选择第一个问题分类作为待匹配问题分类进入下一步骤;2.6提取待匹配问题分类中的所有问题模板作为待匹配问题模板;2.7将步骤2.1得到的所有词语,逐个与语法库中的字词集合进行匹配,如果词语与字词集合匹配,用匹配得到的字词集合的名字替换该词语,如无匹配则词语不替换,最终得到新的问题;2.8将新的问题与步骤2.6中的待匹配问题模板进行匹配,为每个待匹配问题模板计分,计分规则为:问题与问题模板之间完全匹配的情况得分为0分,问题与问题模板之间有一个字不匹配得分为‑1分,两个字不匹配得分为‑2分,依次类推,按得分排序,选择得分最高的问题模板作为匹配结果;2.9在缓存中记录用户提问的类别、关键字、当前提问的对象名称和经纬度以及原始问题;3)提取答案:3.1根据步骤2.8中得到的匹配结果获取对应的提取答案的函数与参数,然后依据函数确定获取答案的路径和规则,再根据路径和规则以及参数从知识库中提取答案作为原始问题的答案;3.2从非领域知识库中提取答案:3.2.1计算原始问题与非领域知识库中的问题的相似度;3.2.2判断是否得到匹配的问题;如果只有一个相似度值大于0的问题,则进入步骤3.2.3;如果相似度值大于0的问题多于一个,取相似度最大的问题作为匹配问题,再进入步骤3.2.3;如果相似度值都为0则进入步骤3.3;3.2.3根据匹配得到的问题及步骤1.3得到的问题与答案的映射获取对应的答案作为原始问题的答案;3.3得不到问题的答案,给出提示不能回答问题。...

【技术特征摘要】
1.一种自然语言理解方法,包括构建数据库,理解问题和提取答案,其特征在于具体步骤为:1)构建用于存储领域范围内数据的知识库、用于存储字词集合和问题模板的语法库和用于存储非领域范围内问题与答案的非领域知识库,具体为:1.1构建知识库,将领域内的不同对象的描述数据存储到非结构化数据库mongodb中,每一个对象对应一张表,数据是作为对象的属性值即表的字段值;1.2构建语法库,将问题模板与字词集合存储到语法库,所述的字词集合包括关键字、领域内专业词语和普通字词,在问题模板中的问题小类索引与关键字之间建立映射,具体步骤为:1.2.1首先收集领域内的问题样例,按照问题内容对样例分类,除去样例中多余的修饰词汇,提取关键字,得到精简的问题样例,将关键字与精简的问题样例记录到文档中,提取领域内的特有词语作为领域内专业词语;然后编写语法:先将表示相同意思的字放在同一个集合中,对每个字集合命名,再将表示相同意思的词语放在同一个集合中,对每个词语集合命名,然后建立当前领域的通用术语集合,最后进行语句定义;1.2.2为每一个问题模板设置函数与参数,由函数限定从知识库提取该问题模板的答案所对应的路径和规则,包括提取答案的表名,表中需要提取的字段名以及限制条件;根据参数从原始问题中获取参数的值来确定提取答案的具体限制条件,所述的函数的格式为:问题模板的答案=[表名,字段名,限制条件],限制条件的格式为:字段名:+参数,参数为字词集合名称,所述的参数的值是字词集合名称所替换的原始问题中的字或词语;1.2.3对问题模板按照提问内容相关性划分问题信息点,将领域范围内问题分为多个大类,每个大类再继续划分为多个小类,对每一个小类问题建立索引,在关键字与问题小类索引之间建立映射,通过映射将关键字对应到问题小类;1.3构建非领域知识库,将常问问题与答案存储到非领域知识库中,其中,问题与答案之间具有映射关系;2)对收到的原始问题先进行问题理解,具体步骤为:2.1先将问题与语法库中的领域内专业词语匹配,提取问题中的专业词语,再将剩余部分与普通字词匹配,通过上述的匹配将问题拆分为一组词语;2.2将拆分得到的词语与语法库中的关键字匹配,确定问题的关键字;2.3通过关键字与语法库中问题模板的问题小类索引之间的映射,得到问题所对应的问题分类,判断该问题分类是否是唯一问题分类,是唯一问题分类则作为待匹配问题分类进入步骤2.6,多于一个问题分类进入下一步骤,没有问题分类则进入步骤3.2;2.4判断是否为第一次提问,不是第一次提问进入下一步骤,是第一次提问,则选择第一个问题分类作为待匹配问题分类进入步骤2.6;2.5读取缓存中的数据,获得历史问题的类别、关键字、提问对象和经纬度,将它们作为条件对当前问题增加限定,过滤问题分类后再判断是否得到唯一问题分类,是唯一问题分类则作为待匹配问题分类进入下一步骤,不是唯一问题分类选择第一个问题分类作为待匹配问题分类进入下一步骤;2.6提取待匹配问题分类中的所有问题模板作为待匹配问题模板;2.7将步骤2.1得到的所有词语,逐个与语法库中的字词集合进行匹配,如果词语与字词集合匹配,用匹配得到的字词集合的名字替换该词语,如无匹配则词语不替换,最终得到新的问题;2.8将新的问题与步骤2.6中的待匹配问题模板进行匹配,为每个待匹配问题模板计分,计分规则为:问题与问题模板之间完全匹配的情况得分为0分,问题与问题模板之间有一个字不匹配得分为-1分,两个字不匹配得分为-2分,依次类推,按得分排序,选择得分最高的问题模板作为匹配结果;2.9在缓存中记录用户提问的类别、关键字、当前提问的对象名称和经纬度以及原始问题;3)提取答案:3.1根据步骤2.8中得到的匹配结果从对应的问题模板获取对应的提取答案的函数与参数,然后依据函数确定获取答案的路径和规则,再根据路径和规则以及参数从知识库中提取答案作为原始问题的答案;3.2从非领域知识库中提取答案:3.2.1计算原始问题与非领域知识库中的问题的相似度;3.2.2判断是否得到匹配的问题;如果只有一个相似度值大于0的问题,则进入步骤3.2.3;如果相似度值大于0的问题多于一个,取相似度最大的问题作为匹配...

【专利技术属性】
技术研发人员:李明王靖波娄旭芳
申请(专利权)人:宁波薄言信息技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1