1)系统数据管理,系统数据包括系统用户信息管理,用户角色管理和用户权限管理以及字典信息数据管理。
2)知识图谱的构建,要具备对知识库的基本管理,如知识数据的管理,知识模式层数据的管理。将知识图谱的基本应用迁移到对虾养殖领域,如对虾养殖知识可视化展示,以及对虾养殖知识的智能问答,对虾知识的智能检索与信息推荐等,形成一个系统化知识服务体系。
2.2.平台功能模块
Figure1.Platformfunctionalmodules
1)用户管理,系统数据模块,管理使用用户的信息。
2)用户角色以及权限管理,包括技术人员和领域专家等,不同角色有着不同功能模块管理权限。
3)字典管理,系统可选项的基本数据信息管理。
4)知识图谱模式层管理,模式层是对知识图谱知识规范化、统一化的知识表示定义,是较为核心的部分。系统需要提供对语义类型、类型的属性和关系类型基本的CRUD功能。
5)知识数据层管理,数据层是模式层的实例信息,是知识图谱应用的数据支持。系统需提供对实体信息和关系实体关系的基本CRUD功能,并提供可视化的操作方式。
6)知识的可视化查询,前台能提供知识的可视化展示,对较为聚集的知识图谱做出基本的整合以展示给用户,并提供基本的实体查询以及关系查询。
8)智能检索与推荐模块,该模块是对虾知识图谱的一个主要应用方向,能有效解决对知识的有效利用问题,为用户提供更好的搜索服务。
2.3.平台架构设计
Figure2.Platformarchitecturediagram
1)数据层:是整个系统的存储核心,其中Neo4j数据库是一种高性能的NoSQL图形数据库,他将结构化的数据以网络的方式存储,而不是以表的方式存储,因此,非常适合存储和表达知识图谱的实体、实体属性和实体关系。MySQL数据库是一种安全、跨平台、高效的关系型数据库,以表格的方式存储数据,数据存储容量大,作为用户数据存储和知识模型的存储。ElasticSearch是一个开源的分布式、RESTFUL风格的搜索和数据分析引擎,它的底层是开源库ApacheLucene,用于处理纯文本的数据,检索非常高效,作为对虾养殖知识信息的存储。Neo4j数据库数据主要运用网络爬虫技术,从百科数据以及对虾专业网站获取原始数据,并经过数据清洗、知识抽取和结构化处理等工作后导入数据库,此任务由ETL(Extract-Transform-Load)层完成。知识抽取需要引用模型层的服务。
2)业务层:是介于表示层与数据层之间的一个层次,它是整个系统的功能逻辑核心。其中部分功能需要调用到模型层的服务,包括负责命名实体识别模型BI-LSTM-CRF、负责关系识别的TextCNN(基于Pytorch)和朴素贝叶斯分类器(基于SparkMlib)。业务层与数据层的交互使用SpringData数据访问框架实现,包括SpringDataNeo4j、SpringDataJpa、SpringDataElasticSearch等。
3)表现层:表现层与业务层的交互基于RESTfulAPI的请求格式,以JSON数据格式实现前后台的数据传输,提升交互数据处理的效率。前台在采用H5技术的基础上,使用UI框架Layui进行界面的开发。其中,对于对虾养殖知识的可视化展示是系统主要功能之一,使用Echarts技术实现。
3.功能模块与实现
3.1.知识图谱概述
知识图谱是显示知识发展进程与结构关系,揭示实体之间关系的网络图形,以“知识抽取、知识表示、知识融合和知识推理”为主要特征。其中,知识抽取主要是对数据进行数据实体、数据关系和数据属性抽取;知识表示是通过各种模型(如复杂关系模型、距离模型、矩阵分解模型等)将知识因子与知识关联起来;知识融合是通过整合、去歧及更新等操作将各种不同的知识源融合成一个特需型的知识库;知识推理是在已有知识库中挖掘和分析出类似于人类思维的知识对象之间的层次关系[2]。
3.2.实体抽取及设计
3.2.1.实体抽取方法概述
实体抽取设计采用机器学习方法,主要是将命名实体识别问题转化为字符串标注问题,利用算法模型抽取实体方式,主要方法包括隐马尔科夫模型(HMM)、最大熵(ME)、支持向量机(SVM)、条件随机场(CRF)[3]和基于双向长短期记忆模型和条件随机场(BI-LSTM-CRF)的组合模型[4]。
3.2.2.BI-LSTM-CRF模型
Figure3.BI-LSTM-CRFmodeldiagram
其中,Embedding层主要是将每个输入层输入的字符转换成特征向量。BI-LSTM层主要是使用从上一层中获取特征向量矩阵,然后根据输入的特征向量的正向序列和反向序列进行计算,最终得到两组不同参数的上文特征向量和下文特征向量;CRF层主要是有效使用过去和将来的标签来预测当前标签,能在训练过程中记录句子输入的特征顺序,可以很好地避免上层预测结果的无效问题。
3.2.3.设计实现与分析
Table1.DesignparametersofBI-LSTM-CRFmodel
Figure4.VisualizationofBI-LSTM-CRFtraining
训练结束后对训练模型进行评估,最终结果的准确率为94.3%、召回率为90.1%、F1值为92.8%。
3.3.关系抽取及设计
3.3.1.关系抽取方法概述
关系抽取采用监督学习方法,主要是将关系抽取转为文本分类。其抽取模型包括朴素贝叶斯(NativeBayes)、卷积神经网络(CR-CNN)、基于文本的卷积神经网络(TextCNN)、带注意力机制的卷积神经网络(Att-CNN)和带注意力机制的双向长短期记忆神经网络(Att-BiLSTM)等[6]。
3.3.2.TextCNN模型
Figure5.StructurediagramofTextCNNmodel
该模型主要分层为输入层、卷积层、最大池化层、全连接层。其中,输入层将输入的字符数据转化为向量,并使用一些已训练好且质量高的词向量(如Word2Vec),提高工作效率。卷积层根据输入层初始化的词向量进行卷积操作。池化层工作与上层大致相同,但需获取池化核中的平均值或者直接保留其中的最大值作为最终结果。全连接层即输出层,是池化后级联,为防止过拟合,dropout设置范围为0.3~0.5,使用激活函数分类输出。
3.3.3.设计实现与分析
Table2.DesignparametersofTextCNNmodel
在训练结束后对训练模型进行评估,最终结果的准确率为84.5%、召回率为80.5%。
3.4.智能问答设计
3.4.1.基于Spark的朴素贝叶斯模型训练
Figure6.TrainingflowchartofNaiveBayesclassificationbasedonSpark
1)在完成训练样本的构建之后,创建RDD并将本地的特征数据映射成格式。利用one-hot编码将文本信息映射为词向量,得到特征向量Feature。
2)对每一个Map数据进行聚合计算,统计全局样本数和特征向量总和,最终计算出结果。
3)获取分类数量Label和分类数量n,计算分类先验概率。
4)对每个类型进行循环计算,获取每个类别条件概率。
5)训练结束,获得朴素贝叶斯分类模型。
最后,将测试提交的自然语言问句向量化成矩阵输入到训练好的朴素贝叶斯模型中进行计算,针对每一个分类都计算出其可能存在的概率值,取其中的最大值作为最终的分类特征索引即可获取当前问句所属分类。
3.4.2.设计实现与分析
程序中首先对问题“白便病有哪些症状”进行了分词拆分和识别,实体“白便病”被成功识别并打上对应的标签;然后根据训练好的朴素贝叶斯模型,分别计算得出该问题在7个问题分类的概率值,最高的为第3个分类,概率约为0.76;问题转换的最终结果为实体和实体关系,即白便病和症状。最终根据实体和实体关系,查询知识图谱数据得出答案。
Figure7.Intelligentquestionandanswertestresults
4.结束语
基金项目
国家自然科学基金(61871475、61471133),广东省科技计划项目(2015A040405014、2017B010126001),广东省教育科学规划项目(2018GXJK072、2020GXJK102),广东省学位与研究生教育改革研究项目重点项目(2019JGXM64),广东省教育厅科研项目(2017GCZX001、2016KZDXM001、ZHNY1903),广州市科技计划项目(201903010043、201905010006、202103000033),教育部产学合作协同育人项目(202002049009、201802235009、201802153181、201802153182、201802153191),仲恺农业工程学院学位与研究生教育改革研究重点项目(新农科背景下高校农科硕士教育改革模式研究),国家级大学生创新创业训练计划(202111347004、202111347001),广东省大学生创新创业训练计划(S202111347057)。