摘要:随着“互联网+农业”的兴起,计算机技术被广泛应用于大田农业病虫害防治中。以棉花病虫害为研究对象,文章基于公开的相关数据,采用BiLSTM-CRF模型进行实体识别,并进行知识融合,构建了棉花病虫害知识图谱。在此基础上,文章进一步结合VUE和Flask框架,设计并实现了一个智能问答系统。系统采用AC自动机和BiLSTM-CRF模型进行问句实体识别,使用BERT+CNN模型进行意图分类,将用户问句准确映射到相应的Cypher语句上,从而快速地检索知识图谱,为用户提供所需的答案。
关键词:棉花病虫害;知识图谱;问答系统
中图分类号:S435.62;TP391.1文献标识码:A
文章编号:1009-3044(2024)34-0017-03开放科学(资源服务)标识码(OSID):
0引言
棉花是新疆支柱产业之一[1],而新疆棉花长期受到严重的病虫害困扰,产量和质量影响严重。随着“互联网+农业”的兴起,新兴的计算机技术被广泛应用于大田农业病虫害防治,但农业安全关系重大,而传统搜索引擎又存在难以准确识别用户意图、精细化效果差,搜索结果真假参半等问题。
因此,本文着力构建一个基于知识图谱的棉花病虫害问答系统,旨在为农民、农业专家等提供更加准确、有效的信息,帮助其更好地解决各种棉花病虫害问题,推动新疆棉花的种植体系科学化、规模化发展。
1相关工作
高质量的知识图谱可以有效提高计算机理解和推理能力,因此知识图谱被广泛用于搜索引擎、智能问答系统、推荐系统[2]等领域,在农业、医学、金融等学科发挥了重要作用[3-5]。此外,知识图谱还可以应用于数据挖掘、决策分析和知识发现等任务。总之,知识图谱有着广泛的应用前景,为各行各业的智能化发展发挥了重要作用[6]。
棉花病虫害智能问答领域,依然存在若干亟待解决的问题:棉花病虫害相关语料较少;尚未有专门的棉花病虫害知识图谱及相应的智能问答系统。鉴于上述问题,本文通过爬虫技术获取网络上公开数据,以期为棉花病虫害智能化防治提供新思路和新方法。
2棉花病虫害知识图谱构建
2.1数据处理
本文的数据主要来自中国作物种质信息网、百度百科、农业病虫草害图文数据库等公开网站,本文利用基于Scrapy的Python爬虫进行数据爬取。本文采用正则表达式以及专家审核的方式清洗数据,去除无关信息,并进行去重和补全处理,保证数据的完整性和唯一性。在爬取的文本中,以句号为标志进行划分,共得到1793条棉花病虫害数据,本文采用BIOES策略,对语料的实体进行人工标注。
2.2模式层构建
模式层是知识图谱结构的抽象表示,定义了实体关系之间的结构。本文采用混合构建的方式设计模式层。通过分析棉花病虫害致病机理和防治特点,综合考虑农民需求及专家建议,最终构建了图1所示的模式层结构。
2.3实体识别
爬取的数据中,主要分为结构化数据、半结构化数据以及非结构化数据三大类。其中结构化数据和半结构化数据只需要运用正则表达式简单处理即可。但其余绝大多数均以非结构化数据存在。
目前,主流的处理方法是基于BiLSTM-CRF模型[7]进行实体识别。本文将采用BIOES标注的数据集,按照8∶2的比例随机划分为训练集和测试集。设置BiLSTM-CRF模型在的batch_size为16,学习率为0.001。
实验结果表明,BiLSTM-CRF模型在棉花病虫害语料上F1值高达83.57%。因此,本文以该模型为基础,并邀请农业专家进行审核与纠正。
2.4知识融合
知识融合是保证知识图谱准确的关键步骤,常见的方法是对数据进行实体对齐。如实体“棉铃灰霉病”就分别出现在中国作物种质信息网、百度百科、农业病虫草害图文数据库三个不同数据源中,这些重复实体会造成冗余和歧义的问题,影响后续智能问答的准确性。为消除歧义,本文将实体转化成对应的向量,带入余弦相似度公式,通过计算来评估两个实体的相似度来达到实体对齐的效果。
2.5知识存储及可视化
Neo4j是一款JAVA开发的开源图数据库,可以直观地刻画知识图谱的结构。并且Neo4j提供的Cypher语言可以实现快捷高效地可视化检索。本文借助Neo4j图数据库提供的LOADCSV语句,将其导入Neo4j数据库构建知识图谱。棉花病虫害知识图谱(局部)如图2所示。
3系统设计
3.1系统架构
本系统整体架构如图3所示,自底向上共包括数据层、模型层、业务层共三部分。
数据层是全系统的数据基础,包括棉花病虫害知识图谱,以及用于AC自动机匹配的实体词典。
模型层包括问答模块的相关模型算法,分为实体识别和意图分类两部分。当系统接收到用户的查询后,会立刻对问句进行解析,识别出用户的意图以及问句病虫害实体,然后在知识图谱中检索相关信息并反馈给用户。
业务层主要负责人机交互页面,包括用户查询窗口、问答结果反馈、相关知识图谱可视化展示、错误信息反馈以及知识库管理。
3.2模型层设计
模式层主要由实体识别、意图分类、答案检索与封装三个模块构成。实体识别模块的作用是快速识别问句的实体,该模块结合了AC自动机模型和BiLSTM-CRF模型。当AC自动机无接匹配到问句实体时,系统会调用BiLSTM-CRF模型,自动将可能的实体标注为候选实体词,将其向量化后与知识库中病虫害实体向量进行余弦相似度评估,最后系统会将相似度最高的实体输出至后续的答案检索与封装环节。
意图分类模块作用是解析用户查询的真实需求,识别出用户的意图类别,为后续的答案检索提供方向。本文将问句意图划分成询问病原体、询问分布、询问防治相关、询问害虫相关、询问病虫害相关共五类,详细内容如表1所示。
本模块目的就是判断问句意图,只有正确地划分类别后,程序才能准确地查询相关的节点和关系,进而组织出合适的答案。近年来,预训练模型BERT在各种NLP任务中取得了优秀的效果,并且在下游任务中仅需微调即可获得良好的效果,节省了大量的训练资源和时间。本文选择BERT+CNN的模型进行分类,首先使用BERT模型对问句进行向量化处理,然后利用CNN对输出的向量进行特征提取,捕捉问句中的局部特征,最后实现问句意图分类。
为了评估所提出模型的性能,本文将BERT+CNN模型、BERT模型以及CNN模型进行了对比测试,实验证明BERT+CNN模型可以胜任问答任务,具体结果如图4所示。
当系统成功识别问句的实体和意图后,相关词语将被插入预先设计的Cypher查询模板中,以此对Neo4j图数据库执行查询操作。以“棉铃虫怎么防治?”为例,程序首先利用AC自动机对问句进行匹配,从中提取出实体词“棉铃虫”,同时BERT+CNN模型也将该问句分类为“询问防治相关”的意图类别。随后,系统会将提取的实体和意图类别填充到预设的Cy⁃pher查询模板中,生成查询语句“MATCH(m:Disease)wherem.name='{棉铃虫}'returnm.name,m.防治方法”,从而获取棉铃虫防治方法,并将其封装成方便理解的答案。
3.3环境配置
本系统基于Windows系统,采用了B/S架构设计,前端界面采用了Vue.js框架,同时,采用轻量级的Flask框架实现了前后端的连接。数据存储方面,则选择了Neo4j和MongoDB。VUE架构遵循MVVM设计模式。该架构将View层和Model层解耦和分离,View层负责与用户交互,Model层负责处理业务逻辑,两层之间通过ViewModel交互,提高了系统的可靠性。
3.4系统展示
如图5所示,在对话框内输入“棉铃虫怎么防治?”,点击搜索,系统即可根据知识图谱,检索并返回相关的防治方法,并显示该部分的可视化知识图谱。除此之外,若用户认为系统的回答不完整或存在错误,可以补充遗漏的知识或反馈错误。
此外,用户还可以通过交互页面管理知识库。该页面以表单的形式组织棉花病虫害三元组,用户可以对知识库进行增删改查。
为验证该系统可以在实践中的有效性,本研究进行了三组测试实验,每组随机选取50条问句进行测试,而后分别由不同的农业专家判断和评估系统回答是否正确。评价标准包括实体是否被准确识别、意图是否被正确映射、回答结果是否正确完整三个方面。经过实验分析,系统平均正确率约为96.67%,证明该系统具有较高的实用性。
4结束语
本文基于公开可获取的数据构建了一个高质量棉花病虫害知识图谱。该系统查询效率和准确性表现出色,同时其操作界面简洁友好,交互体验流畅自然,部署过程快捷简易。该系统有助于提高棉花病虫害防治的智能化水平,为相关领域的知识服务提供了一种创新的解决方案。
参考文献
[1]孙世芳,刘瑾,乔金亮,等.棉花产业调查[N].经济日报,2023-07-13(001).
【通联编辑:朱宝贵】
基金项目:自治区级大学生创新创业训练项目“基于知识图谱的新疆棉病虫害智能问答系统的构建”(项目编号:S202310755127);新疆维吾尔自治区重点研发项目(项目编号:2022B01046)