汪嘉珮 熊晓亮 蔡旭 邵弯 刘俊丽
摘 要:本文针对潜江龙虾养殖领域知识分散和资源利用率低等问题,通过研究知识图谱关键技术,应用知识图谱相关技术来构建潜江小龙虾产业知识库,目的是帮助龙虾养殖户提供养殖技术;为客户、散户提供龙虾方面知识库,解决养殖户查询知识困难,客户选择产品获取信息困难的问题;同时,该研究可以应用于产品推荐系统中帮助客户进行选购方案决策。
关键词:Neo4j;潜江龙虾养殖;知识图谱;网络爬虫;数据可视化
0 引 言
湖北潜江市渔业养殖近几年来不断发展,整体产业规模不断增大,养殖面积不断提高,主产区明显聚焦,产量快速增长,同时,养殖户所面临的技术问题也越来越复杂,潜江小龙虾在养殖的过程中所需要的养殖技术、面临的病害难症如果不能被及时解决,即使每年高校有大量水产专业的毕业生会去往潜江养殖基地就业,但是应届生技术经验薄弱,之前在校的实践机遇比较少,书本上的知识更新速度是跟不上养殖的大环境发展的速度的,这样能够指导养殖的人才是比较欠缺的,容易造成在养殖环节理论与实践脱节;为了龙虾养殖方面的知识普及,本文将采用知识图谱构建龙虾养殖方面的知识库,其中包括养殖方面的常识知识、养殖技术、防病防害技术。
1 知识图谱
“知识图谱”最起始为谷歌知识搜索功能的产品名称,被学术界和工业界广泛使用,成为各类结构化知识库的统称。知识图谱,就是將人类知识结构化形成的知识系统,其中包括基本事实、通过规则和其他有关的结构化信息,可用于信息检索、推理决策等智能任务。知识图谱是人工智能研究和智能信息服务的基础核心技术,能够赋予智能体精准查询、深度理解与逻辑推理等能力,被广泛运用于搜索引擎、问答系统、智能对话系统及个性化推荐等知识驱动的任务。按照类型划分,知识图谱可以包含语言知识、常识知识、世界知识、认知知识、专业知识等,知识图谱的特点是结构化,一般用三元组形式表示不同元素间的负责关系,从而形成一个复杂的网络。
三元组作为知识图谱的核心其表达形式分别为< 实体 1,关系,实体 2> 和< 实体,属性,属性值> ,以表示实体之间关系和实体的特征。用实体“潜江龙虾”作例子,其种类包括“潜江龙虾小青2-4、潜江龙虾中青4-6、潜江龙虾大青6-8、潜江龙虾虾苗、湖北潜江伊东藻、潜江螃蟹”。其中< 实体 1,关系,实体 2> 对应< 潜江龙虾,种类,潜江龙虾小青2-4> ,< 实体,属性,属性值> 对应< 潜江龙虾,繁殖季节,全年> 。
2 Neo4j 图数据库
Neo4j 是基于 Java 的可视化良好的开源 NoSLQ 非关系型数据库,存储结构为图形结构,由节点、关系和属性组成,以实体表示节点,实体间的关系表示链接节点的有向边,属性为节点和关系提供具体信息[5]。可以有效解决农业特殊性、开放数据共享、农业数据繁杂和农业知识获取等问题。相比传统数据格式,Neo4j数据库信息更加直观,而且使用Cypher语言查询时,不需要复杂的连接运算。Cypher的查询效率不会随着数据的增加而降低。因此,本文将构建一种基于Neo4j的潜江龙虾管理知识图谱。
3 潜江渔类技术知识图谱问题的构建
本文中知识图谱的绘制用Mac系统版本的Neo4j,电脑为Mac Book Pro,处理器为2.6 GHz六核Intel Core i7,操作系统为mac OS Big Sur,验证语言为Cypher语言。通过知识获取、构建图谱、知识图谱更新及知识图谱应用等4个步骤。将数据导入Neo4j图数据库中。
3.1模式层设计与构建
本文的数据源主要从潜江小龙虾苗四宝水产网www.qjsbsc.com.cn、潜江小龙虾源头养殖基地网www.zqylp.com,定义了276 个实体,304 个关系。
3.2数据层设计与构建
数据层的构建包含各大实体类、属性及实体间的关系。
构建模式层以龙虾为一级实体,以品种、常见病害、生育期、繁殖方式等二级实体作为小龙虾的属性值,再以小青中青、大青大红等三级实体作为品种的属性值,以概述、特点等四级实体作为“小青中青、大青大红”的属性值。二级节点以水位管理技术、
4 知识存储
本文将采用 Neo4j 来进行知识存储。Neo4j 有三种知识导入方法:Cypyer 语法创建法、Load 命令导入法和 Shell 命令导入法。
4.1 知识的导入方法。
Neo4j数据库知识导入3种方法之一是Cypher语言中的CREATE语句。可以随时插入数据更新知识,但当遇到大规模数据时,会偶尔出现数据重复、缺漏、错误等问题。第2种是Cypher语言的Load.csv文件的导入,需要将csv文件放入Neo4j的安装目录import下,可选择本地或者远程导入,而且不支持即时更新。第3种是官方提供的Neo4j-admin import工具,这种方法占用资源少,但是需要脱机导入,且只适用于初始化导入。
4.2 模块导入。
第2步,依据得到的知识数据分别构建二级节点模块,包括品种节点模块、生育周期节点模块、繁殖方式节点模块、常见病害节点模块、饲养管理节点模块、水稻田间管理节点模块、小龙虾苗间选择与放养模块以及水稻品种选择和栽培模块。
(1)品种节点模块。品种节点模块包含若干个三级节点,即不同品种小龙虾的名字,如小青、中青以及大青大红等。每个三级节点都包含节点的名字、产地、介绍以及特点等属性。发育全过程分为4个阶段:幼体、幼虾、成体、成虾,以小青和大青大红节点导入为例,具体的CREATE语句如下:
CREATE(大青大红:小龙虾{name:‘中青’,nationality:‘潜江’,introduce:‘大青大红又称红颊,幼虾独立生活,主要摄食浮游动物,体长1.0~3.0 cm;’})
本模块中包括二级节点品种和小青、中青等三级节点,所以建立的是上下位关系。同样以小青和大青大红节点为例,具体的构建语句为:
CREATE
(小龙虾)-[:Include]->(小青),
(小龙虾)-[:Include]->(大青大红)
构建好品种节点模块后,输入“MATCH n:小龙虾RETURN n”来查询导入的品种数目是否与知识结构表中的品种数目相同,是否与之匹配。
(2)生育期节点模块。生育期节点模块包含二级节点生育期和发育全过程分为4个阶段:幼体、幼虾、成体、成虾等三级节点。
CREATE
(小龙虾)-[:Include]->(生育期),
(生育期)-[:Include]->(幼体)
(3)繁殖方式节点模块。繁殖方式节点模块包含二级节点繁殖方式和脱壳管理、稻田管理、水位管理、水质管理与日常巡查、防病除害等三级节点。每个三级节点中都有名字和介绍2个属性。
(4)常见病害节点模块。常见病害节点模块包含二级节点常见病害和黑鳃病、烂鳃病、烂尾病、水霉病、纤毛虫病等三级节点。每个三级节点都有名字和发病特点2个属性。
4.3 知识图谱更新
构建小龙虾种植管理知识图谱的目的是让更多学者方便、快速了解小龙虾知识,但是本知识图谱的内容可能无法包含所有的小龙虾品种以及与小龙虾相关的知识,而且随着科技发展,会出现越来越多的小龙虾品种。本文所选用的知识导入方法的最大好处就是可以随时更新知识,可以实现更新的知识第一时间出现在知识图谱中。
本文构建的知识图谱中删减、更新内容是利用从底到端的方式进行的,一步一步逐层进行,防止删除正确的知识或者导入更新知识导致关系构建错误。
4.4 知识图谱的试验验证
4.4.1 Cypher语言查询验证。完成小龙虾知识图谱构
因为本文是关于小龙虾的知识图谱,所以主要是小龙虾知识的查询应用,下面举例介绍。
查询小龙虾黑鳃病以及黑鳃病的防治方法:
match(p:常见病害{name:"黑鳃病"})return p或者match(p:常见病害)where p1.name="黑鳃病"return p1;
match(p1)-[:WAY]->(烂尾病:常见病害{name:‘烂尾病’})return p1.概述
查询结果如图6所示,查询时间仅需22 ms,要比其他查询方法節省很多时间。
通过上述的一些举例,本文构建的知识图谱可以利用Cypher语言查询到使用者需要的小龙虾知识,查询效率高于网络查询和书籍查阅,而且想要查询的内容消息都是最新更新的,准确率也较高。
4.4.2 对比验证。
本节针对不同使用人群通过使用不同查询途径做了试验对比。具体使用人群为种植农户、农学学者以及普通用户,本文从中各选择了2位;测评标准包括时间、准确率以及全面性。比如,种植用户通过网络去查询或询问有经验的种植者;而农学学者通过知识图谱查询方式进行文献和书籍查询;普通用户使用网络和文献相结合的方法查询。在查询时间上,基于Neo4j知识图谱查询方式占据了绝对的优势;在准确率上,种植农户和农学学者传统查询方式准确率要高于知识图谱查询方式,但是知识图谱查询方式的平均准确率要高于传统查询方式;从全面性来看,知识图谱查询方式处于劣势,因为Neo4j知识库初步构建,需要经过不断完善。从总体考虑,Neo4j可以作为一个新型的知识库逐渐代替传统的知识库。
4.5 存在的问题
本文在构建知识图谱过程中,遇到了一些不可避免的问题。一是在构建知识图谱时,利用csv文件将小龙虾知识进行分类,用loadcsv方式将csv文件导入Neo4j中,但发现如何对知识结构进行整理是一大难题,因为一级、二级、三级节点以及它们的属性各自交叉,因而对小龙虾知识的整理不是那么理想。二是采用CREATE语句构建时,发现语句颇为繁琐,而且当导入大量语句时,会出现导入速度缓慢问题。
5 潜江龙虾养殖知识图谱可视化展示
Shell 命令导入法使用 neo4j-admin import 工具进行数据导入
6 结语与展望
本文初步设计了潜江龙虾养殖领域语义类型和语义关系,对知识图谱技术、构建流程和图数据库进行了介绍,采用 Neo4j进行知识存储,开发了潜江龙虾养殖领域知识图谱可视化平台,实现了实体查询功能,帮助养殖户提高专业技术知识,增加潜江龙虾养殖领域信息资源利用率,并为潜江龙虾领域知识图谱系统研究奠定基础。本文潜江龙虾养殖数据为人工实体抽取,从多源异构数据中自动识别高精度实体仍是知识图谱的最大难点之一。下一步将深入研究潜江龙虾养殖领域的自动实体抽取技术,实现潜江龙虾知识图谱智能问答等功能,为养殖户提供更智能的信息获取服务。
参考文献
[1]周井娟.中国潜江龙虾养殖业发展轨迹及技术变迁[J].中国农学通报,2016,32(8):22-29.
[2]Tong P, Zhang Q, Yao J. Leveraging Domain Context for Question Answering Over Knowledge Graph [J]. Data ence and Engineering, 2019, 4(4) : 323-335.
[3]娄国哲,王兰成.基于知识图谱的网络舆情知识组织方法研究[J].
[4]情报理论与实践,2019,42(1):58-64.
[5]袁培森,杨承林,宋玉红,等.基于 Stacking 集成学习的水稻表型组学实体分类研究[J].农业机械学报,2019,50(11):144-152.Shenshouer.Neo4j[EB/OL].[2016-05-21].http ://neo4j.org/.
[6]徐增林,盛泳潘,贺丽荣,等.知识图谱技术综述[J].电子科技大学学报,2016,45(4):589-606.
作者简介:汪嘉珮(1995-),女,汉族,湖北省孝感市,硕士研究生,助教,研究方向:人工智能、计算机应用。本文通讯作者:熊晓亮。
基金项目:武汉工商学院2021年校级科学研究项目“湖北省潜江市小龙虾产业知识图谱关键技术研究”(A2021015,主持人:汪嘉珮);