首页> 中国专利> 一种自然语言理解方法及基于该方法的旅游问答系统

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

摘要

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

著录项

  • 公开/公告号CN104850539A

    专利类型发明专利

  • 公开/公告日2015-08-19

    原文格式PDF

  • 申请/专利权人 宁波薄言信息技术有限公司;

    申请/专利号CN201510282019.4

  • 发明设计人 李明;王靖波;娄旭芳;

    申请日2015-05-28

  • 分类号G06F17/27(20060101);G06F17/30(20060101);

  • 代理机构宁波奥圣专利代理事务所(普通合伙);

  • 代理人程晓明

  • 地址 315040 浙江省宁波市高新区光华路299弄9幢19号9楼

  • 入库时间 2023-12-18 10:31:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-25

    授权

    授权

  • 2015-09-16

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

    实质审查的生效

  • 2015-08-19

    公开

    公开

说明书

技术领域

本发明涉及一种语言理解的处理方法,尤其是涉及一种自然语言理解方法及基于该 方法的旅游问答系统。

背景技术

基于自然语言理解方法的问答系统可以理解用户以自然语言提出的问题,并给出相 应的答案。这类系统不同于信息检索系统,它的回答不是可能答案列表而是准确和人性 化的,机器智能化程度较高。根据问答系统所处理的领域范围可以分为开放领域的问答 系统与专业领域的问答系统。开放领域问答系统是以非结构化的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=(x1,x2,...xi...,xn)T=(1,1,...,1)T

令Xi=(xi1,xi2,...xij...,xin)T为非领域知识库中第i个问题的字词向量,定义xij的取值 规则为

使用余弦相似度公式计算原始问题与非领域知识库中第i个问题相似度 sim(X,Xi)=cosθ(X,Xi)=<X,Xi>|X||Xi|=Σj=1nxjxijnΣj-1nxij2.

式中sim(X,Xi)表示原始问题的字词向量X、非领域知识库中第i个问题的字词向 量Xi的相似度,cosθ(X,Xi)表示两个向量之间的夹角的余弦值,<X,Xi>表示两个向量间的 点积,|X|、|Xi|分别表示两个向量的模,xj表示X中第j个分量,xij表示Xi中第j个分 量,n表示原始问题拆分成的字词数量,也是X,Xi的分量个数。

一种基于上述的方法的旅游问答系统,包括问题接收模块、问题预处理模块、自然 语言理解模块、答案返回模块和数据库,所述的问题接收模块用于从用户端接收用户提 出的自然语言问题,然后将用户问题传递给问题预处理模块,所述的问题预处理模块用 于识别用户问题格式是否为文本格式,将并文本格式的问题直接传递给自然语言理解模 块,将语音格式转化为文本格式后再将文本格式的问题传递给自然语言理解模块,自然 语言理解模块对文本问题进行理解然后根据理解结果从所述的数据库获取答案,答案 返回模块是将从自然语言理解模块得到的答案传递至至用户端,所述的数据库包含存储 领域内对象信息的知识库、存储问题模板和字词集合的语法库以及存储非领域问题与答 案的非领域知识库,所述的字词集合包括关键字、领域内专业词语和普通字词。

所述的用户端包括手机、电脑、pad和具有文字输入或语音录入功能的电子智能设 备。

所述的自然语言理解模块包括问题拆分单元、上下文缓存单元、索引单元、词语匹 配单元、词语替换单元、句子匹配单元、知识库答案获取单元、非领域知识库答案获取 单元和句子相似度计算单元,所述的问题拆分单元用于对问题进行词语拆分并得到一组 词语,所述的词语匹配单元用于将拆分得到的词语与语法库中的关键字匹配以确定问题 关键字,所述的索引单元用于将问题关键字与语法库中的问题类别建立映射以确定问题 分类,所述的上下文缓存单元用于读取历史问题的类别、关键字、提问对象和经纬度, 所述的词语匹配单元用于将问题的词语组与语法库中的字与词语集合中的词进行匹配, 所述的词语替换单元用于把拆分问题得到的词语使用对应的字或词语集合名词替换,所 述的句子匹配单元用于将替换后的词组成新的问题与语法库中对应问题类别中的问题 模板进行匹配以得到所属的问题模板,所述的上下文缓存单元用于记录用户提问的类 别、当前提问的对象名称和用户经纬度以及问题,所述的知识库答案获取单元用于获得 问题模板对应的函数与参数,并根据函数限定的路径与规则从知识库中获取答案后传递 至答案返回模块,所述的句子相似度计算单元用于计算问题与非领域知识库中问题的相 似度以得到相似度最大的问题,所述的非领域知识库答案获取单元用于从非领域知识库 中获取得到的非领域内问题的对应的答案后传递至答案返回模块。

与现有技术相比,本发明的优点在于通过将提问与语法库中的问题匹配,根据问题 对应的函数与参数值从知识库中抽取答案,提供的语法库不仅涵盖了领域范围内的绝大 多数问题,还通过非领域知识库提供超出领域范围的问题,并通过读取缓存中历史问题 相关数据使得获取的答案符合用户提问时的情境,除了提供精确答案外还提供存在的相 关联的答案。该方法用于旅游问答系统时,不仅能涵盖旅游领域99%以上的问题,还可 以抽取超出旅游领域问题的答案,提供存在的相关联的答案,通过测试准确率达到95% 以上。

附图说明

图1为本发明自然语言理解方法的步骤流程图;

图2为本发明旅游问答系统的结构示意图。

具体实施方式

以下结合附图实施例对本发明作进一步详细描述。

一种自然语言理解方法,包括构建数据库,理解问题和提取答案,具体步骤为:

1)构建用于存储领域范围内数据的知识库、用于存储字词集合和问题模板的语法 库和用于存储非领域范围内问题与答案的非领域知识库,具体为:

1.1 构建知识库,将领域内的不同对象的描述数据存储到非结构化数据库mongodb 中,每一个对象对应一张表,数据是作为对象的属性值即表的字段值;

1.2 构建语法库,将问题模板与字词集合存储到语法库,字词集合包括关键字、领 域内专业词语和普通字词,在问题模板中的问题小类索引与关键字之间建立映射,具体 步骤为:

1.2.1 首先收集领域内的问题样例,按照问题内容对样例分类,除去样例中多余的 修饰词汇,提取关键字,得到精简的问题样例,将关键字与精简的样例记录到文档中, 提取领域内的特有词语作为领域内专业词语;然后编写语法:先将表示相同意思的字放 在同一个集合中,对每个字集合命名,再将表示相同意思的词语放在同一个集合中,对 每个词语集合命名,然后建立当前领域的通用术语集合,最后进行语句定义,语句定义 的内容包括:用于说明该问题提问内容的名称,给出一个样例来举例说明该问题的注释; 将表示问题的字词集合名称组合成为一个问题模板;

1.2.2 为每一个问题模板设置函数与参数,函数的格式为:问题模板的答案=[表名, 字段名,限制条件],限制条件的格式为:字段名:+参数,参数为字词集合名称,由函 数限定从知识库提取该问题模板的答案所对应的路径和规则,包括提取答案的表名,表 中需要提取的字段名以及范围限制条件;参数的值是字词集合名称所替换的原始问题中 的字或词语,根据参数从原始问题中获取参数的值来确定提取答案的具体限制条件;

1.2.3 对问题模板按照提问内容相关性划分问题信息点,将领域范围内问题分为多 个大类,每个大类再继续划分为多个小类,对每一个小类问题建立索引,在关键字与问 题小类索引之间建立映射,通过映射将关键字对应到问题小类。

1.3 通过机器学习完成非领域知识库的构建,具体步骤为:收集训练问题样本,不 断的提问与获取答案,使用回答频率高的答案作为训练问题样本的答案,将常问问题与 答案存储到非领域知识库中,其中,问题与答案之间具有映射关系;

2)对收到的原始问题先进行问题理解,具体步骤如图1所示:

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 计算原始问题与非领域知识库中的问题的相似度,具体过程为:

令X=(x1,x2,...xi...,xn)T为对原始问题按常用字典中的习惯拆分得到的字词向 量,T表示向量转置,定义xi的取值规则为

则原始问题向量X=(x1,x2,...xi...,xn)T=(1,1,...,1)T

令Xi=(xi1,xi2,...xij...,xin)T为非领域知识库中第i个问题的字词向量,定义xij的取值 规则为

使用余弦相似度公式计算原始问题与非领域知识库中第i个问题相似度 sim(X,Xi)=cosθ(X,Xi)=<X,Xi>|X||Xi|=Σj=1nxjxijnΣj-1nxij2,

式中sim(X,Xi)表示原始问题的字词向量X、非领域知识库中第i个问题的字词向 量Xi的相似度,cosθ(X,Xi)表示两个向量之间的夹角的余弦值,<X,Xi>表示两个向量间的 点积,|X|、|Xi|分别表示两个向量的模,xj表示X中第j个分量,xij表示Xi中第j个分 量,n表示原始问题拆分成的字词数量,也是X,Xi的分量个数;

3.2.2 判断是否得到匹配的问题;如果只有一个相似度值大于0的问题,则进入步 骤3.2.3;如果相似度值大于0的问题多于一个,取相似度最大的问题作为匹配问题, 再进入步骤3.2.3;如果相似度值都为0则进入步骤3.3;

3.2.3 根据匹配得到的问题及步骤1.3得到的问题与答案的映射获取对应的答案作 为原始问题的答案;

3.3 得不到问题的答案,给出提示不能回答问题。

下面介绍一个上述的方法在旅游问答系统中的应用例子。

如图2所示,一种基于上述的方法的旅游问答系统,包括问题接收模块1、问题预 处理模块2、自然语言理解模块3、答案返回模块4和数据库5,问题接收模块1用于从 用户端接收用户提出的自然语言问题,然后将用户问题传递给问题预处理模块2,用户 端包括手机、电脑、pad和具有文字输入或语音录入功能的电子智能设备问题,预处理 模块2用于识别用户问题格式是否为文本格式,将并文本格式的问题直接传递给自然语 言理解模块3,将语音格式转化为文本格式后再将文本格式的问题传递给自然语言理解 模块3,自然语言理解模块3对文本问题进行理解然后根据理解结果从数据库5获取答 案,答案返回模块4是将从自然语言理解模块3得到的答案传递至至用户端,数据库5 包含存储领域内对象信息的知识库、存储问题模板和字词集合的语法库以及存储非领域 问题与答案的非领域知识库,字词集合包括关键字、领域内专业词语和普通字词。

自然语言理解模块3包括问题拆分单元、上下文缓存单元、索引单元、词语匹配单 元、词语替换单元、句子匹配单元、知识库答案获取单元、非领域知识库答案获取单元 和句子相似度计算单元,问题拆分单元用于对问题进行词语拆分并得到一组词语,词语 匹配单元用于将拆分得到的词语与语法库中的关键字匹配以确定问题关键字,索引单元 用于将问题关键字与语法库中的问题类别建立映射以确定问题分类,上下文缓存单元用 于读取历史问题的类别、关键字、提问对象和经纬度,词语匹配单元用于将问题的词语 组与语法库中的字与词语集合中的词进行匹配,词语替换单元用于把拆分问题得到的词 语使用对应的字或词语集合名词替换,句子匹配单元用于将替换后的词组成新的问题与 语法库中对应问题类别中的问题模板进行匹配以得到所属的问题模板,上下文缓存单元 用于记录用户提问的类别、当前提问的对象名称和用户经纬度以及问题,知识库答案获 取单元用于获得问题模板对应的函数与参数,并根据函数限定的路径与规则从知识库中 获取答案后传递至答案返回模块4,句子相似度计算单元用于计算问题与非领域知识库 问题的相似度以得到相似度最大的问题,非领域知识库答案获取单元用于从非领域知识 库中获取得到的非领域内问题的对应的答案后传递至答案返回模块4。

知识库的构建过程分为信息收集与知识库设计。

数据收集通过实地考察和从相关单位获取资料。实地考察是派遣信息员进行实地勘 察、电话访问、相关人员访谈等方式收集第一手资料。与相关的单位合作是与各地区的 旅游局合作,旅游局提供该地区的旅游资料。在获得与旅游相关的文字、图片、地图等 资料后对资料进行分类整理,使之成为格式化的数据。

知识库设计过程是以景区做为主对象,挂接景点、景区主题、预订、门票信息、游 记攻略、景点信息、举办活动信息、配套设施、特色、餐饮信息、酒店信息、温泉酒店 信息、旅行社13个子对象,每个子对象都有各自的属性字段。将收集到的数据按对象、 字段存储于知识库中。

语法库是用于存储问题模板与字词集合。其中字词集合包括关键字库、领域内专业 词语库、普通字词库。

(1)问题模板构建分为分析过程与语法编写过程。分析过程首先收集领域内的问题 样例,然后按照问题内容对样例分类,接着对样例除去多余的修饰词汇,提取关键字, 得到精简的问题样例,将关键字与精简的样例记录到文档中作为关键字词库,提取旅游 领域的特有词语作为领域内专业词语库;最后再对关键字增加修饰词扩展样例。语法编 写过程是最先对字集合进行定义。将表示相同意思的词放在集合中,再对集合按照命名 规则命名。例如将表示“存”动作的词{"存","留","记","发"}放在集合中,再对集合 按照命名规则命名为“NV_存”。其次是对词语进行定义,定义过程与字集合定义过程相 同。再次是建立当前领域的common文件存放通用术语集合,通用术语即是公用词语, 例如{"的","地","得"}。最后进行语句定义。定义内容包含:“名称”说明该问题提 问内容;“注释”给出一个样例来举例说明该问题;“字词组合”将表示问题的字词集合 名称组合成为一个问题模板,使用不同括号来表示词语的重要程度()表示关键字、[] 表示括号内的字词集合可省略。例如“保存号码”问题模板为

名称:public save_content

注释://[我要](保存)[这个](号码)[到手机上]

字词组合:[C_Begin][C_我们_All][C_想要_All](NV_保存_All)[NV_这个](NV_号 码_All)[NV_到][NV_手机_All][C_End]

(2)为每一个问题模板设置函数与参数

函数限定了从知识库提取该问题模板的答案对应的路径和规则,包括提取答案的表 名,需要提取表中的字段名以及限制条件;参数确定提取答案限制条件的值,参数值是 从问题中获取

例如参观景点时间模板与其函数

:[C_XX](CGSJ_参观)[C_XX](CGSJ_景点_地址_All)[C_XX](CGSJ_时间)(CGSJ_时间 _疑问)[C_XX]

value=[["JiBenXinXi","CanGuanShiJian","JingQuMingCheng:"+CGSJ_景点_地 址_All.value]]

其中"JiBenXinXi","CanGuanShiJian","JingQuMingCheng"对应的是数据库中的字 段,限定提取答案的范围。CGSJ_景点_地址_All.value为参数,这里参数的值为问题中 的景点名称。“"JingQuMingCheng:"+CGSJ_景点_地址_All.value”格式表示该字段增加 限定,这里景区名称是限制条件,条件的值是从问题中获取的景点地址。

(3)对问题模板按照提问内容相关性划分问题信息点,旅游领域将问题分为基本 信息、门票、景点、主题、游记攻略、配套设施、活动、特色八个大类,每个大类再继 续划分小类例如将基本信息划分为景区级别、景区地址、营业时间、游玩时间等。对每 一个小类问题建立索引,关键字库与索引建立映射,通过映射将关键字对应到问题小类。

1.3 非领域知识库CQA构建

使用机器学习技术构建,其过程为收集机器学习的训练问题。问题范围包括历史、 地理、文学、常识等,问题来源于人工提问、从互联网提问中获取、收集用户历史提问。 答案获取:通过网络爬虫到网络中抓取,剔除不雅词汇。如果抓取的答案包含多个,则 由人工选择最佳答案。如果返回至用户的答案是未处理的则由用户选择,记录选择结果, 训练多次后使用用户选择较多的答案作为标准答案。答案更新:持续的人工筛选优化答 案与获取用户反馈的准确答案,机器实时记录,并将错误答案使用正确答案更正。

2、问题理解

2.1 将问题拆分。问题是由多个字词组成的句子,然而所提出的问题可以由其中几 个关键字表述,因此需要对问题进行词语拆分提取关键词明确问题意图。因为在旅游领 域许多词语是不常见的,通用的分词技术可能会将旅游领域内的词拆分为多个字词,例 如对“茶夫茶娘山”拆分可能会得到{"茶夫","茶娘","山"},但它是一个景点名称, 应该作为一个词语。所以需要先与旅游领域的专业词汇库进行匹配提取专业词汇,然后 再对剩余部分的问题拆分为一组词语。例如“游览蓬莱阁需要多少时间够了”。与专业 词汇库匹配得到{"蓬莱阁"},继续拆分可以得到{"游览","需要","多少","时间"," 够了"}。

2.2 将拆分问题得到的一组词语与关键字库中的词语匹配,确定问题的关键字。通 过关键字与语法库索引建立的映射,将问题归类至对应的问题类中。匹配得到多个问题 类转入步骤2.3,匹配得到的类只有一个转入步骤2.5,得不到匹配的类转入步骤3.2。

2.3 判断是否为第一次提问。不是第一次提问进入步骤2.4,是第一次提问,则选 择第一个分类作为问题的分类进入步骤2.5。

2.4 读取缓存中读取数据,获得历史问题的类别、关键字、提问对象、经纬度,将 它们作为关键字对当前问题增加限定,过滤问题分类。判断是否得到唯一问题分类。是 唯一分类进入步骤2.5,不是唯一分类选择第一个分类作为问题分类,再进入步骤2.5。

2.5 词语替换。将拆分问题得到的一组词语与语法库中的词语集合进行匹配,得到 词语对应的词语集合,使用集合名称替换该词语。例如"游览"匹配到集合CGSJ_参观:= strings{逛,转,走,看,玩,游玩,参观,观赏,呆,待,绕,游览,浏览,观光},那么就用 "CGSJ_参观"来替换"游览"。依次替换词语{"游览","需要","多少","时间","够了 "}后得到{"CGSJ_参观","CGSJ_景点_地址_All","CGSJ_需要","CGSJ_多长","CGSJ_ 时间","CGSJ_长"}。

2.6 将词语替换后的问题与得到的问题类中的问题模板进行匹配。为模板积分规则 为问题与模板完全匹配的情况得分为0分,问题与模板一个字不匹配得分为-1分,两个 字不匹配得分为-2分依次类推。按得分排序,选择得分最高的模板作为匹配结果。例如 之前的例子匹配得到的问题模板为:[C_XX](CGSJ_参观)[C_XX](CGSJ_景点_地址 _All)[C_XX](CGSJ_时间)[C_XX]。其中[C_XX]表示不限定的修饰词,其内容不影响匹配 结果。

2.8 在缓存中记录用户提问的类别、关键字、当前提问的对象名称、用户经纬度以 及问题。

3、答案提取

3.1 从知识库中提取答案

(1)根据步骤2.6匹配得到的问题模板获得相应的提取答案的函数与参数。例如“游 览蓬莱阁需要多少时间够了”对应得到的函数为value=["JiBenXinXi","CanGuanShiJi  an","JingQuMingCheng:"+CGSJ_景点_地址_All.value]。第一个标识"JiBenXinXi"表示 获取答案的表,第二个标识"CanGuanShiJian"表示获取答案的字段,第三个标识"JingQ  uMingCheng:"+CGSJ_景点_地址_All.value表示获取答案的限定条件,参数就是CGSJ_ 景点_地址_All.value。

(2)获取参数值,参数"CGSJ_景点_地址_All.value"替换的原始问题中的词语为 “蓬莱阁”,此时参数的值即为“蓬莱阁”。

(3)根据函数与参数的值从数据库中抽取答案。这里是从"JiBenXinXi"中抽取字段 "JingQuMingCheng"=“蓬莱阁”对应的字段"CanGuanShiJian"的值为“蓬莱阁主建筑群 游览时间大概一个半小时。蓬莱阁全景大概三个小时左右”,即为原始问题的答案。

从非领域知识库提取答案的过程不再另外举例。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号