基于登记信息构建的农药使用风险智能预警模型研究
2021-10-27孙晓明卢海燕卞立平刘贤金孙爱东
孙晓明, 卢海燕, 卞立平, 刘贤金, 孙爱东*,
(1. 省部共建国家重点实验室培育基地——江苏省食品质量安全重点实验室,南京 210014;2. 江苏省农业科学院 农产品质量安全与营养研究所,南京 210014)
农药使用不当会导致药害事故、抗性增加、残留超标及环境污染等问题,给生态及人类健康造成危害,妨碍农业的可持续发展[1-7]。虽然《农药管理条例》明确规定了使用者应严格按照标签标注的要求使用农药,并建立使用记录,但生产过程中农药不当使用的情况仍普遍存在[8-11],目前尚缺乏行之有效的干预手段。因此,研究快速、精准、智能的农药使用风险预警方法,对于保障农产品质量安全具有重要意义。在规章制度方面,《国际农药管理行为守则》 (2013) 提出了 “农药全生命周期管理框架”[12],我国则出台了《农药管理条例》 (2017)[13]及《禁限用农药名录》 (2019)[14]等规范农药使用行为的政策。在相关标准制定方面,GB/T 8321 系列标准规定了793 种农药在195 种农作物上的1 100 余项合理使用准则,列出了安全使用农药的相关项目及标准值,包括农药名称、剂型、含量、适用作物、主要防治对象、制剂施用量或稀释倍数、施药方法、每季最多使用次数、安全间隔期、实施要点说明、最高残留限量值等[15];NY/T 1276—2007 规定了施药人员的安全防护和安全操作相关要求[16];NY/T 393—2020 规定了绿色食品生产和储运中的农药选择和使用规范,列出了绿色食品生产允许使用的农药清单[17]。在系统研发方面,浙江省苍南县打造了县域农药监管信息系统,建立了农药监测预警中心,能够对农药产品有效期过期、农产品生产者超范围购买和超剂量购买农药进行预警[18]。
目前农药使用风险预警难度大、效率低,主要是因为缺乏更新及时、标准化水平高的安全使用数据库可用。农药安全使用标准修订时间长、更新慢,农业农村部牵头建立的农药登记信息系统虽然内容详细、更新及时,但由于是非结构化数据,并不能直接使用。当前农药使用风险预警主要依靠对使用记录的人工判别及残留检测,专业性要求高、工作量大、准确性与时效性差,不能进行有效的产中预警,同时残留检测时间上的滞后更容易导致监管被动。鉴于此,本研究利用大数据分析[19-23]与人工智能技术[24-27],通过采集、清洗农药登记信息,解析获取使用范围、使用剂量、每季最多使用次数、施药间隔期、安全间隔期等风险指标数据,构建了农药安全使用规范数据库,并在此基础上建立了农药使用风险智能预警模型,当农户录入用药或采收信息时,模型可根据单次操作信息和历史用药记录智能识别出有风险的操作,实现产中实时预警、产后自动研判。
1 材料与方法
1.1 数据采集
中国农药信息网发布的农药登记信息中包含了使用范围、使用剂量、每季最多使用次数、施药间隔期、安全间隔期等使用风险指标数据。本研究通过中国农药信息网上的查询入口 (http://www.chinapesticide.org.cn/hysj/index.jhtml),利用网络爬虫技术[28-29]自动采集农药登记信息。
农药登记信息由列表页面、登记数据页面及标签信息页面共3 个页面的信息组成 (图1),信息采集流程如图2 所示。
首先生成入口链接的Request (请求),放入Scheduler (调度器) 中,通过调度下载子流程进行调度。如果调度下载返回的结果不为空,则对结果进行解析,生成新的待处理的Request,并将解析的内容保存到数据库,再次调度下载,直至所有Request 处理完毕。调度下载子流程负责选择下一个要处理的Request,发送给Downloader (下载器),由Downloader 生成相应的Response (响应),返回调度下载结果,如果Scheduler 为空,则返回结果为空,说明所有Request 处理完毕。
解析保存子流程负责解析农药列表页面、登记数据页面和标签信息页面。对于列表页面,通过获取页面上所有的登记证号,拼接标签信息页面的链接,生成Request,放入Scheduler 中,逐一判断登记证号在数据库中是否已存在,如果不存在,则获取该登记证号对应的农药名称、农药类别、剂型、总含量、有效期、登记证持有者等信息,连同登记证号一起新增到农药基本信息库中,拼接登记数据页面的链接,生成Request,放入Scheduler 中。例如,登记证号为PD20200737的农药,其对应的农药名称为硫酸铜钙 (copper calcium sulphate),农药类别为杀菌剂,剂型为水分散粒剂 (WG),总含量为77%,登记证有效期至2025-09-17,登记证持有者为陕西美邦药业集团股份有限公司,拼接后其登记数据页面、标签信息页面的链接分别为:http://www.chinapesticide.org.cn/myquery/querydetail?pdno=F29CCA2CEA0F 4A6BB41B0B71931199AD 和http://www.chinapesticide.org.cn/myquery/tagdetail?pdno=PD20200737。待页面上所有登记证号遍历完成后,判断列表页面是否有下一页,如果有则生成下一页链接的Request,放入Scheduler 中。对于登记数据页面,获取登记证首次批准日期、有效成分等信息,存储到数据库相应的字段中。对于标签信息页面,则获取登记证号对应的使用范围、使用方法、使用技术要求、产品性能、注意事项、中毒急救措施、储存和运输方法等信息,并计算其MD5 (messagedigest algorithm 5,信息摘要算法) 值。MD5 的唯一性标识能力较强,可用于快速识别信息是否发生改变。如果标签页面是首次处理,则直接将标签信息和MD5 值存储到数据库相应的字段中,否则需比对新生成的MD5 值和上一次生成的是否一致,不一致则说明信息发生了变化,例如出现了农药使用范围扩大等情况,此时需更新数据中的相应字段。
1.2 数据清洗
农药登记信息本身是非结构化的,不能直接获取使用其风险指标数据,因此需对数据进行清洗,将非结构化数据转化为可直接使用的结构化数据。
1.2.1 有效成分含量的提取 提取有效成分含量用于计算有效成分用量。登记信息中有效成分含量通常采用质量分数 (%) 或质量浓度 (g/L) 表示,例如20%、150 g/L 等。使用正则表达式匹配登记信息的有效成分含量字段,提取出有效成分含量的数值和单位,如果匹配不到或者匹配出多个有效成分含量模式,则需进行人工校验。有效成分含量统一换算为质量分数表示,以登记证号PD20200197 和PD20183365 为例,其换算前和换算后的有效成分含量如表1 所示。
表1 有效成分含量提取示例Table 1 Examples of active ingredient content extraction
1.2.2 使用范围及用药量的提取 从使用范围和使用方法字段提取使用范围、用药量,其中使用范围用于比对农药适用的作物/场所、防治对象,用药量用于判断单次使用量是否超过允许的最大值。农业部令2017 年第7 号文件《农药标签和说明书管理办法》中规定:使用剂量以每亩 (1 hm2=15 亩) 使用该产品的制剂量或者稀释倍数表示;种子处理剂的使用剂量采用每100 kg 种子使用该产品的制剂量表示;特殊用途的农药,其使用剂量的表述应当与农药登记批准的内容一致。用药量通常采用 “数值 (或数值区间) + 用药量单位” 表示,例如3 克/亩 (3 g/mu)、1 000~2 000 倍液、1 :320~1 : 960 药种比等。使用正则表达式进行匹配,分别提取出最小用药量、最大用药量及用药单位。用药量单位不同会导致无法直接比较用药量大小,因此需按照单位之间的换算关系将最小用药量、最大用药量折算为基准单位。用药量的基准单位包括克/亩 (g/mu)、克/100 千克 (种子)[g/100 kg (seeds) ] 等。如果匹配不到或者匹配出多个用药量模式,则进行人工校验。用药量提取示例如表2 所示。
表2 用药量提取示例Table 2 Examples of dosage extraction
1.2.3 每季最多使用次数、施药间隔期及安全间隔期的提取 从使用技术要求、注意事项字段中提取每季最多使用次数、施药间隔期及安全间隔期的信息,其中每季最多使用次数用于判断累计使用次数是否超过允许的最大次数,施药间隔期用于判断两次施药之间的间隔是否超过允许的最大天数、安全间隔期用于判断采收日期是否在安全日期范围内,提取流程如图3 所示。
首先,获取登记证号NO所对应的作物/场所集CropSet、使用技术要求及注意事项字段信息。
第二步,对使用技术要求及注意事项进行预处理。预处理包括去除空格、将汉字数字替换为阿拉伯数字、全角字符替换为半角字符等。
第三步,正则替换。自然语言具有多样性、多变性、歧义性,给信息提取带来很大困难,以安全间隔期为例,有安全间隔期、采收间隔期、安全收获期、安全间隔收获期、最后1 次施药距离收获期等多达几十种描述形式。使用正则表达式将每季最多使用次数、施药间隔期、安全间隔期的相关描述替换为统一的描述形式 “每季最多使用次数……次”、“施药间隔期为……日”、“安全间隔期为……天”。
第四步,分词和词性标注[30]。对正则替换后的文本进行分词和词性标注。
第五步,提取3 种类型的信息。次、日、天分别是每季最多使用次数、施药间隔期及安全间隔期的标志位,提取方法类似。以安全间隔期为例,提取流程如图4 所示。
如果分词标注后的文本S中包含 “安全间隔期”,则以 “天” 作为分隔符,将S分割为 {S1,···,Sn},提取每一小段文本Si中 “天” 前面的名词集{Noun1,···,Nounm} 和数字Num, 依次判断每个名词Nounj是否在该农药的登记作物/场所集CropSet中,如果在,则添加一个条目PHIDict[Nounj]=Num,并计算异常分PHIScore。如果S中所有名词都不在CropSet中,则认为该安全间隔期适用于CropSet中所有的作物/场所,添加记录PHIDict[CropSet]=Num,计算异常分PHIScore。最终获得安全间隔期的提取结果PHIDict={Crop1:PHI1,···,Cropnp:PHInp} 及异常分PHIScore,Cropi:PHIi表示NO在作物/场所Cropi上的安全间隔期是PHIi天。同理,获取每季最多使用次数和施药间隔期的结果,分别为MNAPSDict={Crop1:MNAPS1,···,Cropnm:MNAPSnm} 、异常分MNAPS Score 和AIDict= {Crop1:AI1,···,Cropna:AIna} 、异常分AIScore。
第六步,汇总第五步的结果,整理为如下
格式:
总体异常分ANScore取MNAPSScore、AIScore、PHIScore中的最大值。将汇总后的结果和总体异常分保存至数据库中。
最后一步:人工校验。对数据库中异常分较高且未经人工校验的记录参照使用技术要求及注意事项进行人工修正,并保存。
以登记证号PD20101691 代森锰锌的使用技术要求为例,第二步~第六步的处理结果如图5 所示。
预处理步骤中去除了初始文本中的3 个空格。正则替换步骤中将 “用药间隔期7 天” 替换为“施药间隔期为7 日”、“安全采收间隔期为7 天”替换为 “安全间隔期为7 天”、“用药间隔15 天” 替换为 “施药间隔期为15 日”、“安全采收间隔期为10 天” 替换为 “安全间隔期为10 天”。处理后,所有的作物/场所被标注为名词。三种类型信息提取结果分别为MNAPSDict= {“番茄” : 3, “苹果树” :3}、MNAPSScore= 12,AIDict= {“番茄” : 7, “苹果树” : 15}、AIScore= 12,PHIDict={“番茄” : 7,“苹果树” : 10}、PHIScore= 12,汇总后的具体结果如图5 所示。
1.3 构建农药安全使用规范数据库
将清洗后的数据归纳整理,构建农药安全使用规范数据库,作为农药使用风险预警的依据,主要包含以下3 个规范。
规范 ①:有效成分含量规范。描述某种农药的有效成分含量,如表3 所示。
表3 有效成分含量规范Table 3 Specification of active ingredient content
规范 ②:使用范围、用药量规范。描述某种农药用于防治某种作物上某个病虫草害时的用药量范围,如表4 所示。
表4 使用范围及用药量规范Table 4 Specification of application range and dosage
规范 ③:间隔期、使用次数规范。描述某种农药在某种作物上的每季最多使用次数、施药间隔期、安全间隔期,如表5 所示。
随着农药登记信息的不断增加及数据的不断清洗校验,农药安全使用规范数据库也在不断扩容更新,新登记农药的使用规范可以及时添加到数据库中,以满足标准化与时效性要求。
1.4 建立农药使用风险智能预警模型
依据农药安全使用规范数据库,建立智能预警模型,主要考虑日常农事生产中与农产品质量安全密切相关的用药操作和采收操作,具体流程如图6 所示。
用药操作预警按照农药能不能用、怎么用逐步进行,并综合考虑登记证号相同和农药名称相同两种情况。第一步依据规范 ② 首先判断该农药能否用在该种作物上,然后判断该农药能否用于防治该种病虫草害 (或调节生长),其次判断该农药的单次使用量是否超标。作物生长期中可能多次使用同一登记证号的农药,根据最近一次使用该登记证号农药的时间计算两次用药操作的间隔天数,然后对照规范 ③ 的要求,判断和上次用药之间的间隔时间是否满足要求。此外,作物生长期中有可能多次使用名称相同但登记证号不同的农药,这些农药有效成分相同,但在有效成分含量、剂型、每季最多使用次数等方面存在差异,例如,登记证号PD20160263 和PD20170288 所对应的农药名称均为烯啶虫胺,有效成分均为烯啶虫胺,前者的有效成分含量为10%、剂型为可溶液剂 (SL)、每季最多使用次数为3 次,而后者的有效成分含量为20%、剂型为可湿性粉剂 (WP)、每季最多使用次数为3 次。这种情况下则要判断累计用药次数、累计有效成分是否超标。设当前用药操作对应的农药登记证号为N、农药名称为P时,累计用药次数不超标需要同时满足两个条件:1) 对照规范 ③ 的要求,N的累计使用次数小于等于N的每季最多使用次数 (公式1);2)P的累计使用次数小于等于P的每季最多累计使用次数 (公式2)。
累计有效成分是否超标通过计算每亩累计有效成分用量 (公式3) 是否超过每亩累计最大有效成分用量 (公式4) 得到。
根据施用农药的安全间隔期,自动计算出每一次施药后的安全采收日期 (公式5),以指导实际生产。
式中,l是采收操作之前的用药次数,ODk和PHIk分别是第k次用药的时间和施用农药的安全间隔期,SHD是l次用药后的安全采收日期。如果实际采收日期在计算的安全采收日期之后,则认为该采收操作安全。
2 结果与分析
本文中涉及的数据采集、数据清洗、安全使用规范数据库构建以及智能预警模型的建立均基于Python 3 编程实现,数据库使用MySQL 进行存储管理,网络数据爬取基于Scrapy 框架进行。农业生产过程中可以使用前述模型对单次农事操作进行风险预判,结合用药历史记录对生产项目进行风险评估,并计算安全采收日期。
2.1 单次农事操作风险智能预警
农户在执行农事操作前提交农事操作信息,模型自动计算出操作的风险,如果存在风险,则模型会及时给出预警信息,提醒谨慎操作,降低风险,提高农产品质量安全。图7 显示了农户在提交水稻用药操作时的预警界面。登记证号PD 20160263 对应的药剂在防治水稻上稻飞虱时的最大用药量为13.30 克/亩 (199.50 g/hm2)。而此时用户提交的实际用药量为15.00 克/亩 (225.00 g/hm2),因此模型判断单次用药量超标,并向农户发出预警。
2.2 生产项目风险评估
模型还可根据农事操作历史记录统计各类有风险操作的数量,评估生产项目的风险,具体如图8所示 (图中示例仅用于说明模型,不代表生产实际)。
示例中的生产项目共包含7 次用药操作和2 次采收操作。具体而言,第1 次用药操作中使用的登记证号PD20190082 对应药剂登记的作物有茶树、番茄、柑橘树、黄瓜及苹果树,不适用于水稻,判定为作物/场所超范围;第2 次用药操作中使用的PD20170288 登记的范围是用于防治水稻的稻飞虱,不能用于防除杂草,判定为防治对象超范围,由于此次操作为浸种处理,故不计算累计用药次数及累计有效成分;第3 及第4 次用药操作符合农药安全使用规范的要求;第5 次用药操作中PD20160263 的用药量为15.00 克/亩 (225.00 g/hm2),超出了其用药量上限13.30 克/亩 (199.50 g/hm2),判定为单次用药量超标;第6 次用药是连续第4 次使用烯啶虫胺,超出每季最多使用次数的上限3 次,判定为累计用药次数超标;第7 次用药除了累计用药次数超标外,有效成分烯啶虫胺的累计用量达到13.50 克/亩 (202.50 g/hm2),超出了PD20160263的累计用药量上限3.99 克/亩(59.85 g/hm2) 和PD20170288 的累计用药量上限12.00 克/亩 (180.00 g/hm2),判定为累计有效成分超标。第1 次采收日期为2020-10-05,安全采收日期是2020-10-10,属于未过安全间隔期采收,判定为未过安全间隔期采收;第2 次采收日期2020-10-26 则满足安全间隔期要求。总体而言,本个生产项目风险评估结果为作物/场所超范围、防治对象超范围、单次用药量超标及累计有效成分超标各1 次、累计用药次数超标2 次、未过安全间隔期采收1 次,表明该生产项目风险较高。
2.3 安全采收日期自动计算
每次执行用药操作后,模型可根据用药历史记录自动计算出生产项目的安全采收日期,指导农户实际生产。在图8 的示例中,第3 次用药后计算的安全采收日期为2020-07-06,第4 次用药后计算的安全采收日期为2020-08-03,最后一次用药后计算的安全采收日期为2020-10-10。采收前最后一次施药应满足安全间隔期的要求,给农药降解留出充足的时间,以保障农产品质量安全。
3 结论与讨论
一直以来,农药使用风险预警工作中均没有更新及时、数据标准化水平高的安全使用数据库可用,缺乏有效的产中干预手段。数据标准化、规范化是实现不同信息系统之间数据交换、资源共享、功能集成的前提。信息技术的发展和应用为解决上述问题提供了很好的技术和思路。本研究利用大数据分析及人工智能等技术,通过挖掘蕴含在农药登记信息中的风险指标数据,构建了农药安全使用规范数据库,该数据库更新及时、数据标准化水平高,为农药使用风险预警提供了可靠、有效的识别依据。并在此基础上建立了农药使用风险智能预警模型,可根据单次操作信息和历史用药记录智能识别出超范围、超剂量及超次数用药等不当用药操作和违反安全间隔期的采收操作,及时预警,将安全保障的窗口前移。一方面,该模型可集成到现有农业生产管理系统中,指导农户用药,规范施药及采收行为,降低用药风险,强化产中干预,提高农产品质量安全,并且可以对接农药生产、运输、销售等系统,实现农药的全过程追溯;另一方面,该模型可结合监管需求,及时统计区域用药情况,分析区域有风险的农事操作,减少人工判断的工作量,强化农药使用过程的管理,为监管提供决策支持。目前对于生产过程中使用含同一有效成分、多个登记证号农药的安全性评价尚无统一方法,是研究的难点之一。下一步拟考虑参照相关标准建立作物/场所的层级分类,对照禁限用农药名录改进模型,进一步优化信息提取方法,提高准确率,降低人工校验的工作量。此外,目前模型中仅考虑了如何计算单剂的累计有效成分,对于混剂的处理将在下一步工作中加以探究。目前本模型依据的规范完全基于农药登记信息,是农药安全使用最基本的要求。在实际应用中可根据区域具体情况和农产品分级要求使用相应的规范,提高模型的适用性。