一种军事装备的知识图谱构建方法与流程
随着信息技术的迅猛发展，文本数据呈爆炸式增长，人们期待计算机能够代替人力，从文本数据中快速准确地提取出新的、有效的知识。
而在知识表示领域，传统的知识表示技术已经无法满足人们的需求，知识图谱技术应运而生，通过构建知识图谱，知识不再是一盘散沙，而是通过点和线表示海量知识之间的关系，语义丰富，清晰直观，方便用户理解和分析。
在军事装备这个特定领域，自动构建知识图谱，可以用于优化作战策略、培育军事人才，同时可以减少人力成本，避免军事领域外人员接触机密信息。
现有的知识图谱构建技术一般是以下3个步骤多次迭代生成的:知识抽取、知识融合和知识加工。
其中最基础、最关键的一步是知识抽取，如何从非结构化的文本中抽取到实体、实体的属性以及实体之间的关系，涉及到了实体识别、属性抽取、关系抽取等技术;知识融合是对知识抽取结果的优化，需要去除图谱中冗余、矛盾、歧义的部分，建立层次和逻辑;知识加工过程通过评估筛选知识，存入知识库，并通过推理发现新的知识。
然而，若针对某一领域，结合该领域的数据特点，具体问题具体研究，将会比通用的知识图谱构建技术达到更好的效果。
基于上述原因，本文提出了一种军事装备的知识图谱构建方法。
基于网络爬取的数据构建规则库，来获取更多的数据，采用主题词典搜索、属性抽取、实体识别、关系抽取等技术，自动构建知识图谱。
为解决上述技术问题，本发明的目的是提供一种军事装备知识图谱的构建方法，该方法主要是爬取网络上的军事数据，构建三元组和规则库，基于规则库，提出了军事装备实体提取方法和属性分类抽取的方法，补充三元组，构建知识图谱。
一种军事装备知识图谱的构建方法，包括:
a构建军事装备知识图谱;
b根据已有的图谱数据，自动构建军事装备规则知识库，包括实体规则和数值性规则;
c抽取军事装备实体，并根据已有的军事装备实体的特征，在非结构化的军事语料中提取新的军事装备实体;
d基于提取的军事装备实体，将语料划分为多个文本片段;
e抽取文本片段数值属性，并分析已有的武器装备的属性;
f基于hownet概念关系词典，对知识图谱中的实体词进行上位词、下位词、同义词、反义词关系扩充;
g融合知识图谱数据和基于知识规则库得到的知识图谱数据，并将融合后的知识图谱数据进行加工。
由于军事装备知识图谱对数据的准确性要求较高，基于网络上的结构数据和规则的办法，会得到更准确的结果，也便于调整和维护。
图1是军事装备知识图谱的构建方法流程图;
图2是爬取武器库百科中的结构数据图;
图3是爬虫爬取网络军事装备数据的流程图;
图4是自底向上构建知识图谱的流程图。
如图1所示，为军事装备知识图谱的构建方法流程，包括:
步骤10构建军事装备知识图谱;从互联网上爬取武器库百科中的结构数据，网页数据如图2所示。
获取武器的类别、武器实体名称、武器实体属性(如口径、发动机数量、飞行速度等)。
根据获取到的数据，构建如下所示的三元组:
<军事装备,sub_class,飞行器>、<飞行器,sub_class,战斗机>、<战斗机,sub_entity,a-7攻击机>、<a-7攻击机,飞行速度,1,112千米每小时>。
基于已有的图谱数据，提出自底向上的军事装备知识图谱构建方法。
步骤20根据已有的图谱数据，自动构建军事装备规则知识库，包括实体规则和数值性规则。
由于武器装备中一般含有类别名，并经常出现字母、数字和“-”、“/”等符号，具有一定的规则，但是正则表达式较难书写，因此构建如下的实体规则库。
分析已有的武器装备的属性，发现其大部分属性都为数值属性，如机高3.1米、空重1174千克、最大飞行速度287千米每小时等。
因此统计所有已知属性值的单位、对应的属性名称，并将数据存入数值属性规则数据库。
步骤30抽取军事装备实体，并根据已有的军事装备实体的特征，在非结构化的军事语料中提取新的军事装备实体，具体步骤如下:
1、在待处理文本中提取出含有军事装备类别名的句子，替换掉字母、数字和特殊字符之后，作分句、分词处理，查找类别名所在句子前后8个词的范围内的词和类别名，查询实体规则数据库，按以下公式，确定该词是否属于军事装备实体，从而获取实体的开始、结束位置。
若r值大于所设的阈值，则实体应该包含该词语，直至r值小于阈值或超过划定范围停止;
2、获取到的军事装备实体，可以根据类别名，得到如下的关系三元组，<类别名,sub_entity,军事装备实体>。
步骤40基于提取的军事装备实体，将语料划分为多个文本片段;
分割语料，按照汉语习惯，预设在一个军事装备名出现后，下一个军事装备名出现前，中间的文本都是介绍关于前者的。
基于步骤30中提取的军事装备实体，将语料划分为多个文本片段，抽取数值属性。
步骤50抽取文本片段数值属性，并分析已有的武器装备的属性;发现其大部分属性都为数值属性，如机高3.1米、空重1174千克、最大飞行速度287千米每小时等。
因此采用分类别抽取属性的方法，比直接通过句法依存分析等算法提取属性，得到的结果更为准确。
具体的属性抽取方法如下所述:
1、数据准备:统计所有已知属性值的单位、对应的属性名称，并将数据存入数据库。
2、文本预处理:将上一步中收集的所有的单位、属性名称构成词典，加载后对文本片段分句、分词。
3、对其中的一个文本片段，若在文本中出现在同一个句子里或者相邻出现的属性名和单位，也在数据库中出现过记录，则该属性值(需要将数字和单位组合)为该属性名对应的值，简单有效。
4、将文本片段用bilstm+crf模型进行命名实体识别(军事装备的设计师、研发机构、首飞时间等，需要用到人名、机构名、时间识别)、通过词性标注获取词性标签、根据依存句法分析得到依存标签和句法依存树，根据核心谓语和依存句法分析结果抽取其他属性，当句子缺乏核心谓语时，按照就近原则提取属性。
5、由于军事装备知识图谱具有关系级联程度不高的提点，这里将军事装备的属性也构建成如下的关系三元组，丰富知识图谱，后续如果涉及到关于属性的知识问答，也更加方便。
三元组为<军事装备名,属性名,属性值>。
步骤60基于hownet概念关系词典，对知识图谱中的实体词进行上位词、下位词、同义词、反义词关系扩充，丰富图谱中的词义，便于用户理解知识、扩展思维。
步骤70融合知识图谱数据和基于知识规则库得到的知识图谱数据，并将融合后的知识图谱数据进行加工。
其中，知识图谱数据的融合具体包括:
1、融合基于爬虫得到的知识图谱数据数据和基于知识规则库得到的知识图谱数据，在融合的过程中可以构建简称和全称的对应词典，融合同义但不同表达的节点名、关系名，如“机高”、“高度”、“高”等。
2、鉴于军事装备对精密性、准确性要求高的特点，基于规则库提取出的关系三元组需要专家审核。
3、图谱数据用图数据库neo4j存储，neo4j支持节点、关系、路径的搜索，可以满足基于军事装备知识图谱的搜索需求。
如图3设计爬虫程序，从军事环球网、百度百科等网页，爬取军事装备结构化数据，包括军事装备类别、实体、实体属性等，并构建三元组。
如图4为自底向上构建知识图谱的流程图，从军事语料中获取新的三元组，构建知识图谱。
将上述步骤10中获取的军事装备实体用“#”替换字母、数字、特殊符号后，分词处理，每个词和类别名的共同出现次数，存入军事装备实体规则数据库。
数据库中的数据如下表格1所示。
将数据库中的type(类别词)和word(其他词)均不为空的数据按照num的值降序排列，可以发现word的词均是武器中经常出现的词。
将上述步骤10中获取的军事准备实体的属性中含有数字的部分去掉数字，将属性名和单位加入到实体属性规则库，属性规则数据库的数据如下表2所示:
根据上述步骤30获取的实体规则知识库，根据词的共现次数提取军事语料中的军事装备实体名称，获取所属类别和军事装备实体的关系三元组。
然后根据提取的实体将军事语料切分为一个个与军事装备实体对应的军事语料片段。
在步骤50获取的军事语料片段中，根据步骤40获取的数值属性规则知识库，提取属性信息，若在文本中出现在同一个句子里或者相邻出现规则库中的一条属性名和单位，则提取属性的关系三元组。
然后用命名实体识别、词性分析、依存句法分析，提取其他的非数值属性。
基于hownet概念词典扩展已经获取的关系三元组中实体的相关词语，丰富语义关系。
融合上述步骤中得到的关系三元组，经人工审核扩展部分数据后，构建知识图谱。