基于知识图谱对三国历史战役的可视化研究
2024-02-19孙宗伟赵莉
孙宗伟 赵莉
[摘 要]本文采用知识图谱构建思想,深入研究三国历史战役。知识图谱利用图形结构表示和存储知识,能够建立大规模的语义网络,组织实体、关系和属性。通过构建三国历史战役知识图谱,可以更好地理解和挖掘历史战役的关联性、演变过程和影响因素。本文首先收集大量关于三国历史战役的文本数据,包括历史记录、史书、百科全书等;其次,运用自然语言处理和信息提取技术对这些数据进行预处理和标注,提取战役名称、时间、地点、参与方等关键信息;第三,使用基于字向量的Bi-LSTM-CRF模型进行实体识别,能够准确提取出文本中的战役实体;最后,构建完成知识图谱后,设计一个基于知识图谱的问答系统,用于用户查询和获取三国历史战役的相关知识和信息。该系统运用自然语言处理和语义推理技术,能够准确回答用户的问题,提供详细的历史战役描述和相关事件的解释。
[关键词]知识图谱;三国历史战役;问答系统;实体关系抽取;文本数据处理
[中图分类号]G20 文献标志码:A
[项目名称]国家自然科学基金资助项目“小体积低功耗片上双向无阻塞贝纳斯网络拓扑架构设计及算法研究”(项目编号:62201338)。
三国时期是中国历史上一个重要的时期。这段历史的人物众多、事件烦杂,在社会、政治、经济、文化等多个领域产生了广泛的影响,因此备受历史爱好者和学者的关注。随着大数据、人工智能等技术的发展,知识图谱和可视化技术的应用也为三国历史的研究提供了新的机会和挑战[1]。
知识图谱是将实体、属性和关系表示为关系网络的一种方法,呈现实体之间的相互关联,以直观的方式呈现。知识图谱可以用于管理广播电视行业的媒体内容。通过构建知识图谱,可以将媒体内容的元数据、关联信息和语义标签组织起来,以便更好地管理和索引广播电视节目、电影、音乐等资源。同时,知识图谱也可以为后续的数据挖掘和分析提供基础。可视化技术可以将复杂的数据和知识以图形化的形式呈现出来,便于人们理解和解释。
本文旨在基于知识图谱技术,对三国历史战役进行研究,以构建一个包含丰富战役知识的三国历史战役知识图谱。在本文中,需要首先使用Bi-LSTM-CRF实体识别模型对三国历史战役文本数据进行知识提取,以获得高质量的实体识别结果[2],其次,将实体信息和相关属性信息加入知识图谱,以构建一个包含丰富战役知识的三国历史战役知识图谱;最后,通过使用可视化技术对知识图谱进行展示和探索。
本文的主要贡献包括以下三点。第一,构建了一个包含丰富战役知识的三国历史战役知识图谱;第二,使用Bi-LSTM-CRF实体识别模型对三国历史战役文本数据进行预处理和标注,获得了高质量的实体识别结果;第三,使用可视化技术对知识图谱进行展示和探索,为深入研究三国历史及其相关领域内容提供了有力的工具支持。
1 三国历史战役命名的实体识别
三国历史战役命名实体识别是指在三国历史战役文本中,识别出与战役相关的实体,如人物、地点、时间等。对于构建三国历史战役知识图谱来说,识别出这些实体是基础和前提,因为只有识别出实体,才能夠进一步识别实体之间的关系,从而建立知识图谱。
本文采用基于Bi-LSTM-CRF的方式进行命名实体识别。该模型具备自主学习、人工干预低、通用性高等特点,可以在一定程度上提高命名实体识别的准确性和效率。同时,还通过构建领域特定的词典和规则来进一步提高命名实体识别的准确性和覆盖范围。
1.1 文本数据集的获取
需要收集尽可能多的三国历史战役文本,以便训练机器学习模型并构建知识图谱。这些文本来源于书籍、文章、论文、中国知网、百度百科、谷歌浏览器等。
1.2 基于LTP的文本数据处理
在三国历史战役文本数据的处理中,LTP可以作为一个重要的工具,为文本数据的处理提供支持。具体而言,对于三国历史战役文本数据中的分词、词性标注、命名实体识别、依存句法分析等任务,可以使用LTP提供的相应模块进行处理。例如,可以使用LTP中的分词模块对文本数据进行分词处理,将文本划分为一个个词语,方便后续处理。
命名实体识别模块可以帮助识别文本中的人名、地名、组织名等实体,并进行标注。依存句法分析模块可以帮助分析句子中各个词语之间的依存关系,了解它们在句子中的作用,这对实体关系抽取等任务有很大帮助。
1.3 基于Bi-LSTM-CRF实体识别模型
在自然语言处理中,实体识别是一项至关重要的任务,其主要目的在于从文本中提取出具有特定命名特征的实体,如人名、地名、组织机构名称等。本文选择了Bi-LSTM-CRF模型进行实体识别任务。这是因为,本文需要从三国历史战役文本中抽取出命名实体,如人名、地名、时间等,这些实体往往存在复杂的上下文关系和依赖关系,因此需要一个能够较好地捕捉这些关系的模型。另外,三国历史战役文本中存在一些不规则的实体,如将领名字中的“张飞”“张翼德”等,因此需要一个能够处理不规则实体的模型。
1.3.1 字向量表示层
在三国历史战役实体识别任务中,字向量表示层需要对三国历史战役文本中的每个字进行向量化表示。可以使用预训练的中文词向量作为初始参数,然后通过神经网络在大量的三国历史战役文本上进行微调,从而得到适合于三国历史战役命名实体识别任务的字向量表示层。通过这种方式,可以有效地提高实体识别模型的准确性和泛化能力。
当使用Bi-LSTM-CRF模型进行实体识别时,通常需要将原始的文本转换为数字表示,这个数字表示就是由向量组成的矩阵。在字向量表示层中,本实验使用了词嵌入技术将每个字转换为一个高维向量表示。
1.3.2 Bi-LSTM层
在基于知识图谱对三国历史战役的可视化研究论文中,使用了Bi-LSTM-CRF模型来进行命名实体识别。Bi-LSTM层是该模型的核心组成部分,用于对输入文本进行特征提取。
Bi-LSTM全称为双向长短时记忆网络,是一种能够捕捉上下文信息的深度神经网络。Bi-LSTM由两个LSTM层组成,分别从正序和逆序方向读取输入序列。Bi-LSTM可以有效地避免信息流失和梯度消失的问题,提高模型的性能和准确性。
1.3.3 CRF层
CRF层是Bi-LSTM-CRF模型的核心组成部分之一,它用于解决命名实体识别中的标签序列预测问题。CRF层通过全局归一化的方式,将标签序列预测问题转化为一个最大化条件概率的问题,从而能够更好地考虑上下文信息。
1.4 实验结果与分析
1.4.1 实验数据来源
为了构建三国历史知识图谱,需要获取相关的历史战役文本数据。由于目前缺乏该领域研究的数据集,因此本实验使用了百度百科中的中国历史事件文本作为实验数据来源。本实验首先构建一个三国历史战役名集合,该集合包含广义三国历史时期的所有战役,然后再将集合中的每个元素作为搜索词,在百度搜索引擎中进行文本获取,所获得的历史战役文本数据包含表格数据和文本数据两种类型。
1.4.2 实验数据预处理与标注
当获得了三国历史战役的文本数据之后,需要对其进行预处理和标注,以便后续的模型训练。以下是处理的步骤。
第一,文本清洗。首先需要对文本进行清洗,去掉一些无用信息,如HTML标签、图片等。可以使用Python中的BeautifulSoup库进行清洗。
第二,分词。将文本进行分词,将一段文本划分成一个个词语。可以使用中文分词工具如jieba、LTP,本文采用LTP进行分词工作。
第三,实体标注。对分词后的词语进行实体标注,即标注每个词语的实体类型,如人名、地名、组织机构名、时间等。可以使用人工标注或者自动标注的方式。常用的自动标注方法包括基于规则、基于统计的方法和深度学习方法。
1.4.3 实验结果分析
本文的实验文本数据是根据7∶2∶1进行分割的,其中70 %的数据集用来进行语言模型训练,20 %的测试集则用于测试模式。采用Bi-LSTM-CRF语言训练模型进行训练。
通过实验结果可得,Bi-LSTM-CRF模型对于全部实体的识别能达到89 %的准确率、召回率和F1值,其中,时间(Time)和人物名称(Name)的识别效果是最好的。
2 三国历史战役实体关系提取
2.1 基于依存句法与语义角色标注的实体关系提取算法
基于依存语句法与语义角色标注的实体关系提取算法是一种常用于自然语言处理领域的算法,它主要基于句子的语义角色和依存句法分析来提取实体之间的关系。在自然语言处理领域,实体关系提取是一个非常重要的任务,因为它可以帮助人们理解文本中实体之间的关系,从而提高文本的理解和利用效率。
该算法是将句子中的每个单词都与其在句子中的语义角色和依存关系相关联,然后根据这些信息来推断实体之间的关系。具体来说,首先,该算法对句子进行依存句法分析,将每个单词与其在句子中的依存關系相关联;其次,算法利用语义角色标注的信息,确定每个单词在句子中的语义角色;最后,算法将所有与实体有关的单词和它们之间的语义角色和依存关系组合起来,从而确定实体之间的关系。
该算法的优点在于,它利用了句子的语义角色和依存句法信息,能够准确地确定实体之间的关系。同时,该算法还可以避免一些传统的实体关系提取算法中的一些缺陷,如歧义性和不确定性等。因此,该算法在自然语言处理领域中得到了广泛的应用,如信息提取、知识图谱构建和智能问答系统等方面。
2.2 实体关系抽取算法思路
首先,在本文中,利用依存句法分析的结果来抽取实体之间的关系。对于句子“曹操攻打了刘备的荆州”,就利用依存句法分析器识别出“攻打”为谓词,“曹操”为主语,“荆州”为宾语,并建立起它们之间的依存关系。然后利用这些信息来抽取实体之间的关系,如将“曹操”和“荆州”之间的关系归为“攻打”类型。
其次,对语义角色进行标注,在本文中,利用语义角色标注来更准确地识别出实体之间的关系。先将每个实体标注为句子中的一个语义角色,如主语、宾语、施事等。对于句子“刘备在赤壁战役中战胜了曹操”,可以标注出“刘备”为主语、“曹操”为宾语、“赤壁战役”为位置等语义角色。然后利用这些信息来抽取实体之间的关系,如将“刘备”和“曹操”之间的关系归为“战胜”类型。
最后,进行实体关系抽取,利用依存关系、语义角色和实体类型等信息,识别出实体之间的关系,并将它们归类为不同的关系类型。对于句子“关羽在长坂坡单枪匹马斩杀了华雄”,可以利用依存句法分析和语义角色标注的结果,识别出“关羽”为主语、“长坂坡”为位置、“华雄”为宾语,以及“斩杀”为谓词和动作角色,然后可以将它们归类为“斩杀”类型的实体关系。
2.3 算法测试结果分析
在本文中,通过使用哈尔滨工业大学的LTP语言技术平台对所收集到的三国历史战役文本数据集的2734条语句,采用了包括单一语义角色的标注方法和本论文所使用的实体关系抽取对比实验。
实验结果显示,该算法在三国历史战役数据集中表现出了很好的抽取效果。其中,在100篇选取的章节中,共抽取出了1648个实体关系,涉及109个不同的实体类型和30种不同的关系类型。具体来说,算法在实体关系抽取的准确率达到了89.59 %,召回率为89.23 %,F1值上达到了89.72 %。
3 基于Neo4j构建知识图谱
3.1 知识图谱构建思路及原理
本文采用“自顶向下”模式构建三国历史战役知识图谱模型,依据三国历史战役的基本组成要素,确立战役、阵营、人物三类基本实体,为保证战役描述的连贯性与完整性,增加时间实体、地点实体与元事件实体,同时定义实体间的相互关系作为实体节点的边,保存实体间的联系。
对三国历史战役知识图谱模型进行形式化定义,将三国历史战役划分为“战役名称”“主要事件”“战胜方”“战败方”“时间”“战役地点” 等实体节点,各实体间的相互关系作为实体关系边,根据关系的类型,分别进行标记,为三国历史战役知识图谱的构建与可视化提供理论模型基础。
三国历史战役知识图谱,缩写为ERS。其中,E为三国历史战役的实体合集,包括战役名称、战役地点、战役时间、胜败方、主要事件;R为三国历史战役实体部分的关系合集,代表三国历史战役知识图谱边的合集;S代表实体、关系、实体的联系集。
从全面的角度全方位地显示三国历史战役知识,将战役实体部分划为六类,分别是三国历史战役知识图谱里的战役名称节点,战胜方节点、战败方节点、主要事件节点,时间节点,地点节点。
3.2 问答系统的构建
系统是基于Python实现的,需要配置依赖库。首先系统会从接口接收问句,问题解析对应问题模板,抽象问题出现的实体,最后转化为对知识图谱的查询,根据查询结果构造答句返回,然后使用朴素贝叶斯方法进行问句分类,即将前端接收到的问句分类对应到某一类问题,最后根据分析的问句类别,对应使用相应的知识图谱查询语句,对知识图谱进行查询,返回查询结果,并根据模板构造成答句。
4 结语
本文成功构建了一个三国历史战役知识图谱,并在问答系统中起到了很大的作用。知识图谱为问答系统提供了丰富的背景知识和关联信息,能够更准确地回答用户的问题。另外,提出的问答系统构建思路有效地解决了用户问题的预处理、分类和答案获取等关键问题,为系统的功能实现提供了清晰的指导。通过实验验证了问答系统的性能和效果,结果表明该系统能够高效地回答用户的问题,并提供准确的相关战役信息。
参考文献
[1]索朗次仁. 基于Neo4j的格萨尔王传人物关系图数据库的设计与实现[J]. 信息与电脑(理论版),2021,33(17):146-149.
[2]余宏辉. 三国历史战役知识图谱构建研究[D]. 南昌:江西财经大学,2021.
[3]高瑞卿. 基于知识图谱的三国问答系统研究与应用[D]. 上海:华东师范大学,2022.
[4]冯俐. 基于Neo4j图数据库构建中学语文诗词知识图谱[D]. 西安:陕西师范大学,2019.
[5]张宇飞. 河北省旅游景点知识图谱的构建与应用[D]. 邯郸:河北工程大学,2020.
[6]张政平. 面向孔子世家谱的知识问答模型研究与应用[D]. 曲阜:曲阜师范大学,2021.
[7]张吉祥,张祥森,武长旭,等. 知识图谱构建技术综述[J]. 計算机工程,2022,48(3):23-27.
[作者简介]孙宗伟,男,江苏淮安人,上海工程技术大学电子电气工程学院,硕士,研究方向:人工智能。
赵莉,女,上海人,上海工程技术大学电子电气工程学院、安徽志国智能科技有限公司,副教授,博士,研究方向:人工智能。