KBQA问答系统流程

目录

1、nlu(自然语言理解)

1、意图识别

2、提取实体

2、信息处理

1、信息检索

2、知识图谱

3、nlg(自然语言生成)


简介

KBQA()基于知识图谱的问答系统,大体流程是根据问句查询知识谱曲,然后根据知识图谱的信息生成一句答案返回给用户。

1、nlu(自然语言理解)

对于问答系统来说,自然语言理解就是要从自然语言当中提取query所提问的信息。

1、意图识别

匹配法:

预先定义好一些意图类别,根据正则匹配出指定的意图,从而判断出query的意图。

分类法:

预先将意图分类并训练好分类器,将query用分类器分类。判断意图

2、提取实体

1、匹配法

预先定义好需要抽取的实体的类型和字典,通过正则匹配的方法类提取实体。

优点:在小规模特定数据集上效率和准确行都比较高

缺点:1、在大规模数据集上需要准备的类别和字典都需要人工校验,工作量大。有些实体,如地名、人名几乎无法穷尽,或者穷尽的成本太大。

2、命名实体识别

能够解决实体无法穷尽的情况,但是精度是有限的,目前在特定领域的精度还不能超过匹配法。

2、信息处理

当系统理解了自然语言的信息以后,系统会根据指定或者提取的意图来分析问句的信息,得到结果。

例如:姚明的老婆是谁?

intent=“who”

entity1=“姚明”

entity2=“老婆”或者“妻子”

根据意图,我们判断问句问的是人,我们可以在任务关系的知识图谱中进行查询,然后查询的实体是“姚明”,关系是“夫妻”。就可以查到对应的人名了。

信息处理的方式有很多种,需要根据实际需要选择一种或者多种。

1、信息检索

2、知识图谱

知识图谱可以存储关系型的数据,存储复杂的信息。

查询知识图谱用sparql语句就可以了。

3、nlg(自然语言生成)

模板法:

通过意图选择固定的模板生成答案

例如:姚明,老婆,是,{{人名}}

猜你喜欢

转载自blog.csdn.net/weixin_39609429/article/details/83574781
今日推荐