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

文档序号:8528151阅读:424来源:国知局
一种自然语言理解方法及基于该方法的旅游问答系统的制作方法
【技术领域】
[0001] 本发明涉及一种语言理解的处理方法,尤其是涉及一种自然语言理解方法及基于 该方法的旅游问答系统。
【背景技术】
[0002] 基于自然语言理解方法的问答系统可以理解用户以自然语言提出的问题,并给出 相应的答案。这类系统不同于信息检索系统,它的回答不是可能答案列表而是准确和人性 化的,机器智能化程度较高。根据问答系统所处理的领域范围可以分为开放领域的问答系 统与专业领域的问答系统。开放领域问答系统是以非结构化的Internet资源为基础的问 答系统;专业领域问答系统是基于结构化的涵盖一个或多个专业领域的知识库的专家问答 系统。
[0003]自然语言理解是通过分析问题并计算问题与答句之间的语义距离,然后再按照语 义相近行来提取答案的。一般过程为问题分析、语义匹配、答案抽取。问题分析通常采用各 种自然语言处理技术对问题进行词法分析、句法分析、语义分析以及命名实体的识别处理, 确定问题所关心的对象、所关注的事实和问题的类型,为语义匹配与答案抽取奠定基础。语 义匹配是采用特有算法或规则对问题与答案进行语义距离计算,根据语义距离筛选出最佳 答案,并得到抽取答案的路径或规则。答案抽取是根据语义匹配结果从知识库中按照答案 抽取路径或规则抽取回答问题的答案。
[0004] 现有的基于自然语言理解的问答处理存在的问题是:第一、答案是完全根据问题 与答案语义匹配结果来获取,例如专利201310190366. 5《一种自然语言的语义解析方法及 装置》,如果问题分析错误必然会影响结果的准确性,给出的结果答非所问。第二、专业领域 问答系统只提供该领域范围内的知识库,例如专利200810233734. 9《基于本体推理的旅游 问答系统答案抽取方法》只提供了旅游本体知识库,不能够回答超出范围的问题,或是在提 问不清楚的情况下不能够得到答案,用户体验差。第三、答案模式是一问一答,一般都不考 虑用户历史提问内容,即只能是回答针对问题本身提出的问题,因此得到的答案有时并不 是用户期望的结果。

【发明内容】

[0005] 本发明所要解决的技术问题是提供一种回答问题准确性高、涵盖范围广的自然语 言理解方法及基于该方法的旅游问答系统。
[0006] 本发明解决上述技术问题所采用的技术方案为:一种自然语言理解方法,包括构 建数据库,理解问题和提取答案,具体步骤为:
[0007] 1)构建用于存储领域范围内数据的知识库、用于存储字词集合和问题模板的语法 库和用于存储非领域范围内问题与答案的非领域知识库,具体为:
[0008] 1. 1构建知识库,将领域内的不同对象的描述数据存储到非结构化数据库 mongodb中,每一个对象对应一张表,数据是作为对象的属性值即表的字段值;
[0009] 1. 2构建语法库,将问题模板与字词集合存储到语法库,所述的字词集合包括关 键字、领域内专业词语和普通字词,在问题模板中的问题小类索引与关键字之间建立映 射;
[0010] 1. 3构建非领域知识库,将常问问题与答案存储到非领域知识库中,其中,问题与 答案之间具有映射关系;
[0011] 2)对收到的原始问题先进行问题理解,具体步骤为:
[0012] 2. 1先将问题与语法库中的领域内专业词语匹配,提取问题中的专业词语,再将 剩余部分与普通字词匹配,通过上述的匹配将问题拆分为一组词语;
[0013] 2. 2将拆分得到的词语与语法库中的关键字匹配,确定问题的关键字;
[0014] 2. 3通过关键字与语法库中问题模板的问题小类索引之间的映射,得到问题所对 应的问题分类,判断该问题分类是否是唯一问题分类,是唯一问题分类则作为待匹配问题 分类进入步骤2. 6,多于一个问题分类进入下一步骤,没有问题分类则进入步骤3. 2 ;
[0015] 2. 4判断是否为第一次提问,不是第一次提问进入下一步骤,是第一次提问,则选 择第一个问题分类作为待匹配问题分类进入步骤2. 6 ;
[0016] 2. 5读取缓存中的数据,获得历史问题的类别、关键字、提问对象和经炜度,将它 们作为条件对当前问题增加限定,过滤问题分类后再判断是否得到唯一问题分类,是唯一 问题分类则作为待匹配问题分类进入下一步骤,不是唯一问题分类选择第一个问题分类作 为待匹配问题分类进入下一步骤;
[0017] 2. 6提取待匹配问题分类中的所有问题模板作为待匹配问题模板;
[0018] 2. 7将步骤2. 1得到的所有词语,逐个与语法库中的字词集合进行匹配,如果词 语与字词集合匹配,用匹配得到的字词集合的名字替换该词语,如无匹配则词语不替换,最 终得到新的问题;
[0019] 2. 8将新的问题与步骤2. 6中的待匹配问题模板进行匹配,为每个待匹配问题模 板计分,计分规则为:问题与问题模板之间完全匹配的情况得分为〇分,问题与问题模板之 间有一个字不匹配得分为-1分,两个字不匹配得分为-2分,依次类推,按得分排序,选择得 分最高的问题模板作为匹配结果;
[0020] 2.9在缓存中记录用户提问的类别、关键字、当前提问的对象名称和经炜度以及 原始问题;
[0021] 3)提取答案:
[0022] 3. 1根据步骤2. 8中得到的匹配结果获取对应的提取答案的函数与参数,然后依 据函数确定获取答案的路径和规则,再根据路径和规则以及参数从知识库中提取答案作为 原始问题的答案;
[0023] 3. 2从非领域知识库中提取答案:
[0024] 3. 2. 1计算原始问题与非领域知识库中的问题的相似度;
[0025] 3. 2. 2判断是否得到匹配的问题;如果只有一个相似度值大于0的问题,则进入 步骤3. 2. 3 ;如果相似度值大于0的问题多于一个,取相似度最大的问题作为匹配问题,再 进入步骤3. 2. 3 ;如果相似度值都为0则进入步骤3. 3 ;
[0026] 3. 2. 3根据匹配得到的问题及步骤1. 3得到的问题与答案的映射获取对应的答 案作为原始问题的答案;
[0027] 3.3得不到问题的答案,给出提示不能回答问题。
[0028] 构建语法库的具体步骤为:
[0029] 1.2. 1首先收集领域内的问题样例,按照问题内容对样例分类,除去样例中多余 的修饰词汇,提取关键字,得到精简的问题样例,将关键字与精简的样例记录到文档中,提 取领域内的特有词语作为领域内专业词语;然后编写语法:先将表示相同意思的字放在同 一个集合中,对每个字集合命名,再将表示相同意思的词语放在同一个集合中,对每个词语 集合命名,然后建立当前领域的通用术语集合,最后进行语句定义;
[0030] 1. 2. 2为每一个问题模板设置函数与参数,由函数限定从知识库提取该问题模板 的答案所对应的路径和规则,包括提取答案的表名,表中需要提取的字段名以及限制条件; 根据参数从原始问题中获取参数的值来确定提取答案的具体限制条件;
[0031] 1. 2. 3对问题模板按照提问内容相关性划分问题信息点,将领域范围内问题分为 多个大类,每个大类再继续划分为多个小类,对每一个小类问题建立索引,在关键字与问题 小类索引之间建立映射,通过映射将关键字对应到问题小类。
[0032] 步骤1. 2. 1中语句定义的内容包括:用于说明该问题提问内容的名称,给出一个 样例来举例说明该问题的注释;将表示问题的字词集合名称组合成为一个问题模板。
[0033] 步骤1. 2. 2中所述的函数的格式为:问题模板的答案=[表名,字段名,限制条 件],限制条件的格式为:字段名:+参数,参数为字词集合名称,所述的参数的值是字词集 合名称所替换的原始问题中的字或词语。
[0034]构建非领域知识库是通过机器学习完成的,具体步骤为:收集训练问题样本,不断 的提问与获取答案,使用回答频率高的答案作为训练问题样本的答案,存储问题与答案到 非领域知识库中。
[0035] 步骤3. 2. 1中计算原始问题与非领域知识库中的问题的相似度的具体过程为:
[0036] 令X = (Xl,x2, . . . Xi. . .,xn)T为对原始问题按常用字典中的习惯拆分得到的字词 向量,T表示向量转置,定义Xi的取值规则为
【主权项】
1. 一种自然语言理解方法,包括构建数据库,理解问题和提取答案,其特征在于具体步 骤为: 1) 构建用于存储领域范围内数据的知识库、用于存储字词集合和问题模板的语法库和 用于存储非领域范围内问题与答案的非领域知识库,具体为: 1. 1构建知识库,将领域内的不同对象的描述数据存储到非结构化数据库mongo化中, 每一个对象对应一张表,数据是作为对象的属性值即表的字段值; 1. 2构建语法库,将问题模板与字词集合存储到语法库,所述的字词集合包括关键字、 领域内专业词语和普通字词,在问题模板中的问题小类索引与关键字之间建立映射; 1. 3构建非领域知识库,将常问问题与答案存储到非领域知识库中,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1