基于知识图谱的问答系统入门之 |
您所在的位置:网站首页 › 奥巴马妻子全名 › 基于知识图谱的问答系统入门之 |
本人认为学习一样东西,直接上手跑实验是最有效提升的方法之一。
看了那么多的理论介绍文章,抽象的说辞,最后还是似懂非懂。
所以,直接上手数据集跑实验,与理论结合,能有更深刻的了解。
同时也记录下学习KBQA的过程,也希望对同入门的同学有些帮助。
目录:
1、引言
2、数据集介绍
3、数据集本身存在的问题
4、数据集预处理及实验结果
5、KBQA整体流程
6、结束语
引言
本人最近在做KBQA相关的的工作,有些大致的了解和想法后希望能够在实验中学习更多。 目前研究的KBQA 暂时专注在简单知识库问答上:即根据一个问题,抽出一条三元组,生成Sparql语句,进而进行知识图谱查询返回答案。 最终选择了NLPCC2016KBQA数据集,基线模型采用BERT。 数据集介绍NLPCC全称自然语言处理与中文计算会议(The Conference on Natural Language Processing and Chinese Computing),它是由中国计算机学会(CCF)主办的 CCF 中文信息技术专业委员会年度学术会议,专注于自然语言处理及中文计算领域的学术和应用创新。 此次使用的数据集来自NLPCC ICCPOL 2016 KBQA 任务集,其包含 14 609 个问答对的训练集和包含 9 870 个问答对的测试集。 并提供一个知识库,包含 6 502 738 个实体、 587 875 个属性以及 43 063 796 个 三元组。知识库文件中每行存储一个事实( fact) ,即三元组 ( 实体、属性、属性值) 。各文件统计如下: 训练集:14609 开发集:9870 知识库:43063796知识库样例如下所示: "希望之星"英语风采大赛|||中文名|||“希望之星”英语风采大赛 "希望之星"英语风采大赛|||主办方|||中央电视台科教节目中心 "希望之星"英语风采大赛|||别名|||"希望之星"英语风采大赛 "希望之星"英语风采大赛|||外文名|||Star of Outlook English Talent Competition "希望之星"英语风采大赛|||开始时间|||1998 "希望之星"英语风采大赛|||比赛形式|||全国选拔 "希望之星"英语风采大赛|||节目类型|||英语比赛原数据中本只有问答对(question-answer),并无标注三元组(triple),本人所用问答对数据来自该比赛第一名的预处理https://github.com/huangxiangzhou/NLPCC2016KBQA。构造Triple的方法为从知识库中反向查找答案,根据问题过滤实体,最终筛选得到,也会存在少量噪音数据。该Triple之后用于构建实体识别和属性选择等任务的数据集。 问答对样例如下所示: 《机械设计基础》这本书的作者是谁? 机械设计基础 ||| 作者 ||| 杨可桢,程光蕴,李仲生 杨可桢,程光蕴,李仲生 ================================================== 《高等数学》是哪个出版社出版的? 高等数学 ||| 出版社 ||| 武汉大学出版社 武汉大学出版社 ================================================== 《线性代数》这本书的出版时间是什么? 线性代数 ||| 出版时间 ||| 2013-12-30 2013-12-30 ================================================== 数据集本身存在的问题 知识库实体间的歧义以“贝拉克·奥巴马”为例,涉及该实体的问答对如下: 谁是贝拉克·奥巴马的妻子? 贝拉克·奥巴马 ||| 妻子 ||| 米歇尔·奥巴马 米歇尔·奥巴马在知识库中查询包含该实体的三元组,结果如下(部分): 贝拉克·奥巴马(美国现任总统) ||| 别名 ||| 贝拉克·奥巴马 贝拉克·奥巴马(美国现任总统) ||| 姓名 ||| 贝拉克·侯赛因·奥巴马 贝拉克·奥巴马(美国现任总统) ||| 妻子 ||| 米歇尔·奥巴马 ...... 贝拉克·奥巴马 ||| 主要成就 ||| 1996年伊利诺伊州参议员 美国第56届、57届总统 2009年诺贝尔和平奖获得者 时代周刊年度风云人物2008、2011 任期内清除本·拉登 贝拉克·奥巴马 ||| 代表作品 ||| 《我相信变革》《我父亲的梦想》《无畏的希望》 贝拉克·奥巴马 ||| 妻子 ||| 米歇尔·拉沃恩·奥巴马 ...... 贝拉克·奥巴马(美国第44任总统) ||| 血型 ||| ab 贝拉克·奥巴马(美国第44任总统) ||| 学院 ||| 西方学院 贝拉克·奥巴马(美国第44任总统) ||| 妻子 ||| 米歇尔·拉沃恩·奥巴马首先,知识库中存在“贝拉克·奥巴马”的多条实体,有可能是多数据来源的融合或其他原因,从而并不能完全保证信息的对齐。我们查看“妻子”这一属性,发现有的是“米歇尔·拉沃恩·奥巴马”有的是“米歇尔·奥巴马”,而我们问答对中给出的答案是“米歇尔·奥巴马”。因此当我们的模型检索到正确三元组时: 贝拉克·奥巴马(美国第44任总统) ||| 妻子 ||| 米歇尔·拉沃恩·奥巴马虽然在实体和属性都映射正确的情况下,最终答案仍可能被判定为错误。 问题中的实体歧义以“博士来拜”为例,涉及该实体的问答对如下: 博士来拜是什么年代的作品? 博士来拜 ||| 年代 ||| 1461年 1461年在知识库中查询包含该实体的三元组,结果如下(部分): 博士来拜(曼特尼亚画作) ||| 别名 ||| 博士来拜 博士来拜(曼特尼亚画作) ||| 中文名 ||| 博士来拜 博士来拜(曼特尼亚画作) ||| 类别 ||| 油画,壁画 博士来拜(曼特尼亚画作) ||| 年代 ||| 1461年 博士来拜(曼特尼亚画作) ||| 作者 ||| 曼特尼亚 ...... 博士来拜(维登画作) ||| 别名 ||| 博士来拜 博士来拜(维登画作) ||| 中文名 ||| 博士来拜 博士来拜(维登画作) ||| 类别 ||| 油画 博士来拜(维登画作) ||| 年代 ||| 1455年 博士来拜(维登画作) ||| 作者 ||| 维登 博士来拜(维登画作) ||| 属地 ||| 慕尼黑画廊藏 ...... 博士来拜(达·芬奇画作) ||| 别名 ||| 博士来拜 博士来拜(达·芬奇画作) ||| 中文名 ||| 博士来拜 博士来拜(达·芬奇画作) ||| 类别 ||| 油画 博士来拜(达·芬奇画作) ||| 年代 ||| 1481-1482 博士来拜(达·芬奇画作) ||| 作者 ||| 达芬奇 博士来拜(达·芬奇画作) ||| 现藏 ||| 佛罗伦萨乌菲兹美术馆 博士来拜(达·芬奇画作) ||| 规格 ||| 246 x 243 厘米问句中的问题是:“博士来拜是什么年代的作品?“,涉及到”年代“这个属性,而这幅作品被不同时期的很多人创作过,我们无法从当前问句下得到要询问的是哪位艺术家的创作年代。因此该问题的涉及的实体具有歧义性,同样的,当模型检索到我们认为的正确实体和正确属性后,依然有可能会被判定为错误答案。 在知识库中相关实体三元组数量过多的情况下,对检索模型的效果、效率也是个挑战在具有4300W条三元组的知识库中,同一个实体会检索出大量(几十、几百条)的相关三元组,而且在存在上述两个歧义性问题的情况下,识别的效果和效率都是很大的问题。 以上的两个问题在实体识别实验部分和属性抽取部分的影响较小,但在实体链接知识库检索最终答案三元组的部分会有较大的影响。 数据集预处理及实验结果 清洗训练数据、测试数据、知识库过滤属性,去除‘-’,‘•’,空格等噪音符号; 同时把每一行lower()转成小写。 上下车人次 -统计年度- 上下车人次统计年度 • 陆地 陆地 作 者 作者 i s b n isbn分别保存为:train_clean.csv, test_clean.csv, nlpcc-iccpol-2016-clean.kbqa.kb 构造开发集原始训练集数量为14609,Shuffle后抽出2609作为开发集,其余作为训练集,如下。 训练集:12000 开发集:2609 测试集:9870分别保存为:train_clean.csv, dev_clean.csv, test_clean.csv 构造实体识别的训练集、开发集、测试集构造实体识别数据集需要根据三元组-Enitity反向标注问题,给Question打标签。由于我们希望从单问题中抽取单个实体,并未采用BIO的标注,直接采用0/1标注法,即0表示非实体,1表示实体。 同时需要确保其实体完整出现在问题中,对于未出现的样例,我们直接删除忽略。错误样例如下所示: firefo os的许可证是什么啊? firefox os 我想知道明基tx501投影机的特性是什么啊? 明基 tx501 我想知道凤仪亭被叫做什么啊? 凤仪亭址 1984年萨拉冬季奥运会的参赛人员是多少啊? 1984年萨拉热窝冬季奥运会 飚王诱惑 sfd042(2gb)的宽度是多少毫米? 飚王诱惑 sfd042(2gb) 大安大王庙的古建筑群的相关记载出自哪里? 大安大王庙古建筑群 “佛吉尼亚”潜艇的控制装置是什么? “弗吉尼亚”潜艇过滤后的数据集信息如下: 训练集:11883 开发集:2571 测试集:9556过滤后的数据集样例如下所示: 长 1 城 1 x 1 1 1 0 1 的 0 输 0 入 0 接 0 口 0 是 0 什 0 么 0 ? 0分别保存为:entity_train.csv, entity_dev.csv, entity_test.csv 基于BERT+BiLSTM+CRF模型的实验结果如下所示,其中accuracy是从9556个问句识别出完全匹配实体的准确率。 accuracy 0.96未完全匹配的实体样例如下,部分是识别错误,部分是同义词,部分是噪音问题 【识别错误】动物地鸠属是属于什么目呀? 地鸠属 动物地鸠 【同义词】《鲁迅全集》这本书是什么时候出版的呀? 《鲁迅全集》 鲁迅全集 【同义词】我想知道永安镇机场叫什么名字? 永安镇 永安镇机场 【同义词】海尔kfrd-35gw/03me-s4空调是什么类型的? 海尔kfrd-35gw/03me-s4 海尔kfrd-35gw/03me-s4空调 【问题噪音】你知道辛夷花粥管治疗什么吗? 辛夷花粥 辛夷花粥管 构造属性抽取的训练集、开发集、测试集1、构造测试集的整体属性集合,提取+去重,获得4373个属性RelationList 2、一个sample由“问题+属性+Label”构成,原始数据中的属性值置为1 3、从RelationList中随机抽取五个属性作为Negative Samples 数据集大小如下: 训练集:12000*(1+5) 开发集:2609*(1+5) 测试集:9870*(1+5)数据集samples如下: 你知道计算机应用基础这本书的作者是谁吗? 作者 1 你知道计算机应用基础这本书的作者是谁吗? 儿女 0 你知道计算机应用基础这本书的作者是谁吗? 应用大小 0 你知道计算机应用基础这本书的作者是谁吗? 节日意义 0 你知道计算机应用基础这本书的作者是谁吗? 最低气压 0 你知道计算机应用基础这本书的作者是谁吗? 时长 0分别保存为:relation_train.csv, relation_dev.csv, relation_test.csv 基于BERT的训练结果如下所示 accuracy:0.95模型没有识别出的测试样例如下,可以看出缺少深度语义匹配的能力。 0.01970141 0.9802986 304不锈钢管可以用于什么范围啊? 应用范围 1 0.9996922 0.00030779938 无尘玻璃打砂机是说什么内容的啊? 正文 1 0.99984515 0.00015485194 猩猩还有什么别的名字吗? 品种 1 0.9963929 0.003607082 河床竞技俱乐部组织了什么比赛啊? 联赛 1 0.99984705 0.00015298015 榉是什么类型的? 亚纲 1 0.9998454 0.00015459256 你知道香港有什么明星吗? 地域名人 1 0.99984837 0.0001516119 复兴歌是在什么时候流行的? 采用 1 0.9983584 0.0016415163 台北联营公车218路线是在什么地方开始的? 路线资讯 1 KBQA整体流程完成实体识别模型和属性抽取模型后还需检索模型进行知识库检索,才算完整的KBQA。 KBQA流程: 1、输入问句 2、通过实体识别模型检测问句中的实体,得到mention 3、通过检索模型在知识库中检索mention,得到候选集(K个候选实体的所有三元组) 4、通过属性抽取模型在候选集中挑选最合适的属性,得到唯一三元组 5、输出答案 知识库建立索引由于知识库数据量庞大,而且需要多次检索知识库,因此需要建立索引提高效率。 而同一实体的三元组分布在知识库中不同位置,因此需要对每个实体记录多个始末片段。 行号 三元组 22591789 联想s320 ||| 别名 ||| 联想s320 22591790 联想s320 ||| 中文名 ||| 联想s320 22591791 联想s320 ||| 上市时间 ||| 2008年 22591792 联想s320 ||| 网络频率 ||| gsm/gprs;900/1800mhz 22591793 联想s320 ||| 重量 ||| 100 克 22591794 联想s320 ||| wap上网 ||| 支持飞笺 41117728 联想s320 ||| 别名 ||| 联想s320 41117729 联想s320 ||| 产品类型 ||| 手机 41117730 联想s320 ||| 3g网络 ||| gsm 41117731 联想s320 ||| 电池容量 ||| 820mah 41117732 联想s320 ||| 存储卡 ||| 支持最大容量为4gb mirco sd存… 41117733 联想s320 ||| 暂无 ||| 暂无最终通过遍历知识库,记录每个实体的名称、开始位置、结束位置,记录结果如下: 联想s320 22591789 22591794 41117728 41117733 英汉互译每日通 29607701 29607708 无水港 2092039 2092043 工程材料与成型技术 14055336 14055340 报信 26475602 26475606 《太空嬉哈族》 39914687 39914693总数为650 5059,保存为index.csv 识别测试集得到mentions通过训练好的实体识别模型,识别测试集中的问题,输出所有mentions,保存为testset_predict_answer.txt。数量为9870,如下所示 计算机应用基础 计算机应用基础 高等数学 戴维斯 高等数学 高等院校素质教育“十二五”规划教材 mc 检索知识库将上述9870个mention,进行知识库检索,寻找符合以下规则的三元组: (此方法待改进) if mention与索引中的实体完全匹配 选取该实体 elif mention in entity 选取该实体 else 选取字符串编辑距离最小的实体 return 实体相关的所有三元组 属性选择+输出答案此时,每个测试集中的question都有检索得到的候选三元组 把question+relation放入之前训练好的属性抽取模型 对每个三元组打分,排序,输出topK个答案 整个KBQA完成! 结束语以上内容为KBQA的整体流程,从这个过程中加深了对KBQA的理解和认识。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |