知识图谱问答系列文档(八)——从零开始搭建一个通用知识图谱问答【问答流程】

(八)问答流程

对于输入的自然语言问句,问答系统分别进行实体属性识别、意图分类、图谱查询、相似度计算、答案筛选和结果返回六个部分,下面就每个部分的功能和逻辑进行说明,具体代码部分请参考主程序。

  • 实体属性识别

    NER识别问题中的实体、属性,返回SENT、PROP和OENT,先对SENT、OENT进行实体映射(如果字典中存在,就映射,否则,不做映射),再将其结果送给图谱查询。

  • 意图分类

    使用已训练模型对问答意图进行分类,将问题分类为SP->O、SPP->O、PO->S、OP->S、SO->P中的一种(做分类模型是为了降低相似度计算次数,提高效率)。

  • 图谱查询

    图谱查询分为直接查询和间接查询。

    • 直接查询

      对于输入信息较为完整的问句,直接图谱搜索获取问答结果。

      例:杭州的人口是多少?,图谱直接查询:杭州:人口,获取查询结果。

    • 间接查询

      对于输入信息不完全,图谱直接查询无结果的问题,需要根据问题意图进行相应间接查询。

      • SP->O

        查询与S相关的属性及属性值,查询S的歧义关系的实体属性属性值,并按照歧义权重进行排序。

      • OP->S、PO->S

        查询属性指向S的关系,获取属性值为S的实体、属性。

      • SO->P

        查询S和O五步关系内的关系路径,返回路径结果,并对路径进行处理,得到标准路径。

  • 相似度计算

    对于直接查询无结果的问答,通过间接查询,获取对应实体、属性,去除问题中的停用词、实体的指称,进行相似度计算,选取相似度最高的路径作为答案路径,返回对应的答案。

    • SP->O

      进行相似度批量计算(去除停用词的问题,歧义列表实体+属性),选取相似度最高的实体属性,返回对应的答案,对于相似度一样的,返回权重最大的结果,如果权重一样相似度一样,返回两条结果,逗号分开。

    • SPP->O

      先进行SP->O查询,将查询结果O1作为实体,再查询O1的相关属性,执行O1P->O,进行相似度匹配,获取相似度最高的结果。

    • OP->S、PO->S

      相似度计算批量(问题,属性+实体),选取相似度最高的属性+实体,返回对应的实体S。

  • 答案筛选

    根据相似度值,返回相似度最高的路径答案作为最后的答案。

  • 结果返回

​ 结果返回四部分:程序答案,查询路径,路径得分(相似度值),查询耗时。

你可能感兴趣的:(智能问答,知识图谱问答,自然语言处理,知识图谱,python)