QAonMilitaryKG/README.md
2019-05-02 14:30:07 +08:00

80 lines
7.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# QAonMilitaryKG
 QAonMilitaryKGQaSystem based on military knowledge graph that stores in mongodb which is different from the previous one, 基于mongodb存储的军事领域知识图谱问答项目包括飞行器、太空装备等8大类100余小类共计5800项的军事武器知识库该项目不使用图数据库进行存储通过jieba进行问句解析问句实体项识别基于查询模板完成多类问题的查询主要是提供一种工业界的问答思想demo。
# 项目背景
 基于知识图谱或知识库的问答KBQA是目前垂直领域或百科领域问答中使用较多的一种问答方式本质上是在做结构化数据的匹配查询任务。笔者之前利用neo4g图数据库上基于医疗领域结构化知识库阐述了基于图数据库的医疗知识图谱构建与问答方案并实现了一个简单的demo。项目见:(https://github.com/liuhuanyong/QASystemOnMedicalKG)
 技术选型是实现自动问答系统的一个重要环节这项工作与数据样式关系尤为密切。经验上来说对于实体类型较多以及实体关系种类较多的知识库使用图数据进行知识存储是个较好的选择。而对应实体类型较少实体关系较少实体属性较多以及带有时序性的数据时选用文档型数据库mongodb是个不错的选择。
 军事领域是敏感度、机密系数较高的一个领域其数据价值很高获取相关军事数据并提供一个便捷的人机交互方式具有重要的战略意义。军事中的装备信息军事基地信息军事作战部队之间的关联信息以图谱的形式组织能够在作战策略推荐军事人员培训上起到重要作用。目前公开的军事资料不多收录较全的有环球军事网其中的人物战役兵器库术语库等为军事提供了一个很好的信息平台。其中武器库是其中结构化程度较高的一项数据其中包括了飞行器、舰艇等8大类武器轰炸机等100余小类共计5800项武器结构化数据。这为结构化知识问答提供了一个的数据因此本项目选择该数据集作为知识库使用mongodb进行自动问答的实验。
 本项目有2个重要目标
 1采集并解析军事武器库网站进行字段信息的标准化形成一定规范、规模的军事武器装备结构化知识库。
 2实现基于mongodb的军事领域知识库的自动问答。
# 项目框架
![image](https://github.com/liuhuanyong/QAonMilitaryKG/blob/master/image/schema.png)
# 项目构成
# 1, 数据集类型及统计信息
| 项目 | 数量 | 示例 |
| :--- | :---: | :---: |
| 大类 | 8 | 飞行器,太空装备 |
| 小类 | 148 | 护卫舰艇, 航天基地,卫星|
| 国家 | 88 | 中国,美国,苏联,日本|
| 武器类实体 | 5800 | 神舟五号,神舟7号,AK-47,歼-15 |
| 实体属性 | 184 | 最大飞行速度,成员,长度,首次发射轨道,口径 |
| 实体关系 | 1 | <轰炸机,SUB_CLASS,飞行器> |
# 2, 数据样式
![image](https://github.com/liuhuanyong/QAonMilitaryKG/blob/master/image/data_sample1.png)
![image](https://github.com/liuhuanyong/QAonMilitaryKG/blob/master/image/data_sample2.png)
# 3, 问句类型
| 问句大类 | 问句小类 | 问句举例 |
| :--- | :---: | :---: |
| 属性值问答 | 单实体单属性问答 | 神舟五号的长度是多少? |
| 属性值问答 | 单实体多属性问答 | 神舟五号的长度以及运载火箭是多少? |
| 属性值问答 | 多实体单属性问答 | 神舟五号以及神舟十号的长度是多少? |
| 属性值问答 | 多实体多属性问答 | 神舟五号的长度,运载火箭以及辽宁舰艇的航长分别为多少是多少? |
| 属性区间值筛选问答 | 单属性区间问答 | 最大飞行速度大于500公里的战斗机? |
| 属性区间值筛选问答 | 单属性多区间问答 | 服役时间在1950年之后2000年之前的轰炸机? |
| 属性区间值筛选问答 | 多属性多区间问答 | 服役时间在1950年之后2000年之前且最大航程大于5000公里的运输机? |
| 属性最值筛选 | 单实体属性最值问答 | 长度最长的宇宙飞船 |
# 项目运行
主要文件构成如下:
| 文件名称 | 中文名称 | 实现功能 |
| :--- | :---: | :---: |
| collect_data.py | 数据获取 | 网站公开数据解析与获取 |
| insert_data.py | 数据导入 | 对数据进行标准化并存入至数据库 |
| military_qa.py | 知识问答 | 知识问答 |
| military.json | 数据文件 | 5800条武器知识 |
&emsp;项目执行步骤:
&emsp;1、执行insert_data.py将输入倒入至mongodb当中。
&emsp;2、执行military_qa.py开始进行问答测试。
&emsp;ps若需要进行自我重新构建数据可运行collect_data.py。
# 项目结果
![image](https://github.com/liuhuanyong/QAonMilitaryKG/blob/master/image/res_example1.png)
# 总结
1、本项目完成了采集并解析军事武器库网站进行字段信息的标准化形成一定规范、规模的军事武器装备结构化知识库。实现基于mongodb的军事领域知识库的自动问答。
2、本项目简要介绍了工业级的问答架构图该架构图朴实且如实地介绍了面相结构化文本的知识构建以及结构化查询流程以及粗略实现细节。
3、面向具有数字型数据的结构化知识的问句的形式有多种主要有纯属性值查询如单实体单属性单实体多属性多实体单属性多实体多属性等问题。带筛选条件查询如如单属性值与多属性值区间查询。最值条件查询共三种本项目初步实现了对这三种主要问句类型问答。
4、在实体识别属性值识别数值识别上主要采用的方式是领域词及扩展词配合正则表达式的方式来实现没有使用学习模型。作为军事领域学习模型在武器类实体识别上效果可能不会太好在识别后进行实体链接映射会遇到一定困难。
5、实体与查询属性项之间的对应和成对是整个问答查询的最核心所在本项目使用基于关系模板穷举的方式完成该目标准确率较高但缺点是穷举可能性不大构造成本较高。
6、既然是结构化知识问答那么业务场景下的问答应该是简单的多实体多属性混杂出现的情况应该要少一些即问题的问答可以很多样但问题的内部结构不应太复杂否则就丢失了自动问答解放信息杂糅的本意了。
7、知识图谱是结构化知识的一种方式存储方式可以用关系型可以用nosql也可以用图数据库不同的方式的区别在于sql的转化上。在关系级联程度不高的情况下使用非图数据库可能会是更好的方式。
8、深度学习在工业界问答中在基于qa对检索中用的比较多在结构化知识图谱查询中较难大显身手集中应用点在实体论元识别上个人认为在实体属性关系的识别上不会很惊艳很有可能没有规则来的快来的准确。
如有自然语言处理、知识图谱、事理图谱、社会计算、语言资源建设等问题或合作,可联系我:
1、我的github项目介绍https://liuhuanyong.github.io。
2、我的csdn博客https://blog.csdn.net/lhy2014
3、about me:刘焕勇中国科学院软件研究所lhy_in_blcu@126.com