APP下载

基于贝叶斯网络的食品安全舆情监控探针研究①

2022-02-15孙晓红锋2陶光灿

计算机系统应用 2022年1期
关键词:贝叶斯爬虫探针

王 旎,孙晓红,吴 锴,谢 锋2,,陶光灿,

1(贵州医科大学 公共卫生学院,贵阳 550025)

2(贵州省分析测试研究院,贵阳 550014)

3(食品安全与营养(贵州)信息科技有限公司,贵阳 550014)

在网络新媒体时代,为促进食品行业健康发展,食品安全网络舆情监测体系应运而生,开发决策参考、监督抽检、专项整治、协查处置等舆情信息应用场景化服务,针对当下热门的食品安全舆情事件自动展开跟踪与分析[1].而数据采集作为舆情大数据资源池建设的第一步准备工作,将孤立分布在数据报刊、网络媒体、微博、微信中的各个数据源采集并存储,为下一步舆情分析打下基础,帮助政府、企业和舆情相关者采取措施以预警或控制食品安全舆情的发展态势[2].但是,食品安全舆情数据采集在及时性和精准性等方面仍存在着许多痛点和难点问题[3],一方面,运用传统语义识别的方法采集数据所需的费用偏高且准确率较低,采集内容要素广泛且难以统一,包括食品类别、风险类型、健康危害等多种关键词,数据报刊、网络媒体等多个舆情渠道,食品企业、政府和消费者等多方面用户对象,以及包括监督抽检、检测机构、急救中心、公安部门的其他关联因素.在采集过程中,通过传统人工采集数据的方式难以穷尽,新发生的食品安全事件都有新的关键词;另一方面,由于数据采集不够精准,无法有效减少垃圾数据的产生,必然会影响数据采集的效率.

贝叶斯定理是数据挖掘领域一种用来描述概率关系的算法[4],提出了将知识图解可视化的推理和模型[5],其方法简单、分类准确率高、速度快,模型参数估计不需要任何复杂的迭代求解公式,只需统计训练集中的先验概率和条件概率[6].目前已广泛应用于医疗诊断、人工智能、生物信息学、金融分析与预测等多个领域[7].因此,本文运用贝叶斯网络模型优化食品安全关键词库的风险概率,将高风险性的食品类别、风险类型和健康危害等输出为关键词组,做一个自动关联风险的数据模型,并形成监控探针,结合舆情监测系统,实现采集食品安全舆情关键词的合理配置,以提高采集效率和准确率.其中,监控探针[8]是一个不流行的学术术语,常用于描述语言及其编译器的设计,对其功能阐述为嵌入在目标系统代码中,在系统运行时获取目标监控点的相关运行状态.

基于以上研究现况,提出科学假设:构建关键词库形成基于贝叶斯网络的监控探针,可提高食品安全舆情数据采集的及时性与精准度.对比实验:运用传统人为设计关键词、网络爬虫和监控探针的3 种方法采集同一食品安全事件的舆情数据,从而对监控探针设计的快捷性和准确性进行验证.

1 现有工作

目前,网络舆情数据采集的框架主要由6 部分组成:网站页面、链接抽取、链接过滤、内容抽取、网络爬虫技术[9]和数据[10].其中,新时代背景下又增加了爬行策略设计、网页更新策略、网页去重和计算机转换软件等新兴互联网采集技术,针对结构化、半结构化和非结构化的网络数据进行汇总和收集[11].在算法上,主要采用分布式、并行式的计算模型,以提高数据采集的速度[12].在信息存储技术上,主要用Oracle、MySQL 数据库和HBase、MongoDB 数据库来实现[13].从应用范围上,网络爬虫技术[14]和信息抽取技术[15]是目前主流的舆情数据采集和分析挖掘方法.网络爬虫最早应用于搜索引擎中,用来收集媒体网页中的数据,抓取有效舆情信息并加以存储[16].信息抽取技术(information extraction,IE)是从非结构化的自然语言文本中提取目标信息,然后进一步转换成结构化数据形式的采集方法[17].伴随科技的发展,全文信息的搜索引擎逐渐不能很好地满足用户要求,1957年,Luhn[18]提出一种基于词频统计的关键词抽取方法,衍生出一系列关键词抽取技术[14].关键词抽取分为:(1)基于统计的方法,该方法的主要思想是通过指定特征来对词语的权重进行计算,并根据词语的权重大小来抽取关键词[19].例如频率统计(TF-IDF)[20]及其改进方法,简单易行,具有较强的适用性,但由于TF-IDF 只提取频率较高或位置较特殊的关键词,不能完整概括全文主体信息,导致数据采集的准确率降低[21].(2)基于语言规则的方法,通过从文章、句子以及词语等层次进行语法分析,来提高关键词抽取系统的性能.(3)基于人工智能的方法,让计算机能够自动学习关键词抽取的过程,通过对模型进行训练以实现人工智能自动抽取关键词.

但是,互联网数据具有海量、异构数据源、缺乏语义信息和动态可变性等特点,尤其是网络社交媒体和新闻数据,其更新频率高,随时随地都会生产出大量信息,这部分内容数据量大,交互性强,使得抽取技术变得更加复杂化,给舆情信息的抽取带来了诸多困难.并且,目前在网络上针对食品安全的舆情数据并没有系统地进行过汇总,采集者缺乏食品安全专业领域的知识,使得无论是应用网络爬虫技术还是信息(关键词)抽取技术都没有高效的关键词以供参考,不仅无法精准定位采集对象,还浪费了舆情数据的挖掘时间,造成了大量垃圾数据的产生,增加了舆情数据采集的工作量和计算成本,影响了舆情监测系统的运营进度,阻碍了食品安全舆情监测系统的拓展应用.

因此,针对大数据时代食品安全舆情数据采集不够快捷与准确的问题,从采集关键词的研究对象出发,构建有关食品安全的关键词库,并引进贝叶斯网络模型的分析方法,将高风险的食品安全关键词设计成监控探针,向舆情监测者推荐采集较高的关键词组,提高食品安全舆情数据采集的速度与效率,对于改善食品安全舆情监测系统的数据采集环节,为后续的数据处理与数据应用打下良好的基础建设,提高国家在食品安全舆情方面的管理能力具有重要作用.

贝叶斯网络(Bayesian network,BN)[22]将贝叶斯理论、图论、人工智能和决策分析相结合,是一种基于概率推理的图形化网络属性数学模型[23].其在态势评估、医疗保健、工业风险预测等领域都已有广泛的应用,比如,根据环境、人员等因素引入贝叶斯网络对采矿现场、建筑施工等高危作业是否发生事故进行风险预估,以减少风险事件的发生[24];为提高疾病诊断效率,提出了基于余弦相似度加权改进的贝叶斯分类算法[25],开发了大量的人工智能方法辅助检测疾病[26];在科技发展与人类智能上,提出了基于贝叶斯理论的人脸识别算法[27];基于贝叶斯算法的垃圾邮件识别与过滤系统[28];以及基于贝叶斯网络的民航机票预测系统等[29].

2 材料与方法

2.1 数据来源

北京人民在线网络科技有限公司的人民众云平台[30].

烟台富美特信息科技股份有限公司食品伙伴网的食品标准(国家标准)[31].

食品安全与营养(贵州)信息科技有限公司食品安全云平台的技术社区(国家标准)[32].

2.2 食品安全舆情监控探针总体框架

首先,将食品类别、风险类型、健康危害等食品安全舆情关键词,利用MySQL 数据库构建形成统一完善的食品安全关键词库;然后,运用贝叶斯网络算法对关键词库建立数学模型,得出高风险性的食品安全舆情关键词组,并自动关联风险形成 监控探针;最后,结合北京人民在线网络科技有限公司开发的食品安全舆情监测系统,向用户提供优先采集的关键词选项,形成一个包含监控系统、关键词库、数学模型的监控探针,从而达到提升食品安全舆情数据采集及时性与精准度的效果,如图1所示.

图1 食品安全舆情监控探针逻辑图

2.3 构建关键词词库

为了更准确描述一个食品安全事件的语义模板,包含发生地域、食品类别、风险因子以及造成的健康危害等关键词,构建食品安全舆情事件信息关键词分类表(见表1),并做出以下定义:定义1.设a为食品安全舆情事件发生地域关键词,地域分布以省、直辖市、自治区为父类,下辖地级市为子类,共计34 个省级行政区;定义2.设b为食品安全舆情事件谓语表达关键词;定义3.设c为食品安全舆情事件食品类别关键词,食品分类方法以国家市场监督管理总局颁布的《食品生产许可分类目录》[33]为依据,共计32 类;定义4.设d为食品安全舆情事件风险因子关键词,风险因子指能够促使或引发食品风险事件的危害要素,分为生物性因素、化学性因素、物理性因素和人为因素等[34];定义5.设e为食品安全舆情事件健康危害关键词,即风险因子可能导致的人体健康损害.

表1 食品安全舆情事件信息关键词分类

定义6.满足食品安全舆情事件条件下,a,c 之间存在谓语b,且c 后为风险因子d,造成影响e,则称“a,b,c,d,e”5 个词组成一个食品安全舆情事件的标准语义模板.示例:2014年7月20日东方卫视报道:上海福寿喜集团存在大量采用变质肉原料的行为,引发顾客的食物中毒,“上海,报道,肉原料,变质,食物中毒”对应“a,b,c,d,e”是满足食品安全舆情事件的语义模板(见表2).根据标准语义模板中的语义信息量,定义了一、二、三、四、五级语义模板.由此得出,一件食品安全事件的关键词越齐全,事件描述越完整,挖掘到的食品安全信息便越丰富,对于舆情数据采集工作的意义越大.

表2 食品安全舆情事件多级语义模板

2.4 使用食品安全舆情监测系统采集数据

首先,登录食品安全舆情监测系统“人民众云[30]”用户端,选择“自助监测”栏目,进行食品安全舆情数据采集的任务设置,对任务名称和选择分组的基本信息进行填写;然后,进入“关键词选择”功能,填写“主关键词”“辅关键词一”“辅关键词二”“辅关键词三”,并设置数据采集范围:“数据报刊、政府机构、网络媒体、网络视频、微博、微信、资讯、论坛等”;最后,提交操作采集舆情数据.

2.5 运用MySQL 数据库建立食品安全关键词库

MySQL 数据库是一种高速度、高性能、多线程、开放源代码的关系型数据库管理系统[35],是互联网行业存储和操作数据最常用的数据库[36].根据贝叶斯网络节点进行设计数据存储,每条数据包括食物大类(F节点)、风险因子(R节点)、危害症状(S节点)3 个关键词,分为32 个食品类别[28],其中食品添加剂18 条、粮食加工品的关键词条42 条、食用油30 条、调味品52 条、乳制品36 条、饮料60 条、方便食品40 条、肉制品77 条、饼干44 条、冷冻饮品22 条、罐头33 条、速冻食品12 条、糖果制品7 条、薯类和膨化食品54 条、茶叶及其制品4 条、蔬菜制品25 条、酒类30 条、水果制品25 条、糕点食品36 条、蛋制品18 条、可可及焙烤咖啡产品49 条、炒货食品及坚果制品84 条、水产制品60 条、淀粉及淀粉制品30 条、蜂制品56 条、豆制品12 条、保健食品40 条、食糖5 条、特殊医学用途配方食品1 条、其他食品1 条,共1 039 条数据.

以“粮食加工品”为例,在MySQL 食品安全关键词库中查询“粮食加工品”,输入查询编程:

SELECT a.f0,a.f1,b.f2,c.f3 from testlv1 a

LEFT JOIN testlv2 b on a.f1=b.f1

LEFT JOIN testlv3 c on a.f1=c.f1

WHERE a.f1=‘粮食加工品’

ORDER BY f0,f2,f3 ASC

可得出包括“粮食加工品”食物大类、风险因子、可能症状3 种关键词的42 条数据.每一条数据都具有唯一性,为食品安全舆情数据采集提供专业性较高的关键词,提高数据采集的精准度,减少采集时垃圾数据的产生.

2.6 构建基于贝叶斯网络模型的食品安全舆情监控探针

设置“食品安全风险因子、食品类别、食品检测不合格、食品危害症状”的4 个变量为贝叶斯网络模型的节点,确定节点之后,采用因果推理形式的方法,确定各节点之间的关系,由原因推知结果,以求得食品安全变量导致的风险事件发生的概率,从而建立有向无环图,如图2所示.其中,R节点为风险因子(risk),F节点为食物大类(food),S节点为症状(symptoms),O节点为检测不合格(out of specification,OOS).

根据概率乘法公式有P(X)=P(Xi/X1,X2,…,Xi-1)用Pai表示变量Xi的父节点集,则P(X)=P(Xi/Pai),因此为了确定贝叶斯网络结构,需要:① 将变量X1,X2,…,Xi按某种次序排序;② 确定满足P(X)=P(Xi/Pai)的父节点集合Pai(i=1,2,…,n);③ 指定局部概率分布P(Xi/Pai).从图2可以清楚地看到影响食品安全舆情数据采集的风险节点及其相互的节点关系.在因果推理中,当食品安全风险等级为R=1 时,概率关系组合如下:

图2 基于贝叶斯网络的监控探针有向无环图

当食品安全风险等级为R=2 时,概率关系组合如下:

当食品安全风险等级为R=3 时,概率关系组合如下:

因果推理推出食品安全风险概率:

当R=3,F=3 时的概率是:

当R=3,S=3 时的概率是:

当R=3,O=3 时的概率是:

将贝叶斯网络模型分成食物大类(F)、危害症状(S)、检测不合格(O)3 个互不重叠的部分,每个部分都可能引发食品安全风险,且风险发生概率分别为P(F)、P(S)、P(O),引起食品安全风险J的可能性就为P(J/F),P(J/S),P(J/O).基于贝叶斯模型的网络风险评估算法:

如果发生食品安全风险,由“食物大类F”引起风险的可能性为:

如果发生食品安全风险,由“症状S”引起风险的可能性为:

如果发生食品安全风险,由“检测不合格O”引起风险的可能性为:

#查询“食物大类”导致的食品安全风险概率贝叶斯网络模型算法的结果

result=infer.query([‘R’],evidence={‘F’:1,‘O’:0})

#查询“不合格”导致的食品安全风险概率贝叶斯网络模型算法的结果

result=infer.query([‘R’],evidence={‘O’:1,‘O’:0})

#查询“症状”导致的食品安全风险概率贝叶斯网络模型算法的结果

result=infer.query([‘R’],evidence={‘S’:1,‘O’:0})

根据可能性大小,将“风险因子、食物大类、危害症状、检测不合格”4 个方面的关键词设计成监控探针,按照引起风险的可能性大小,对高风险性词语实现优先采集,以提高食品安全舆情数据采集的及时性和精准度.

3 实验结果与分析

运用传统人为设计关键词、网络爬虫和监控探针的3 种方法采集同一食品安全事件的舆情数据,针对采集的快捷性和准确性设计对比实验:取乳制品类、酒类、茶类3 种食品类别为采集对象,由政府部门、企业、人民网三方各自独立设置关键词,以获得的3 份数据代表传统人工采集方法,其中政府部门由贵州省分析测试院的工作人员为代表,企业方由食品安全与营养(贵州)信息科技有限公司的工作人员为代表.另外,再运用网络爬虫技术,使用Python的requests 库解析页面数据接口获取相关数据,采集新浪微博中乳制品类、酒类、茶类3 种食品类别的信息,以获得的数据代表线下流行的分析挖掘方法.将得到的4 组数据与监控探针采集到的数据做比照,比较5 组数据的挖掘时间、有效数据量、无效数据量等指标,从而验证监控探针采集数据的速度和效率.

3.1 乳制品类

政府部门自设关键词“奶粉”、“三聚氰胺”和“北京”;企业自设关键词“酸奶”“乳酸菌”和“发酵”;人民网自设关键词“奶茶”“肥胖”和“危害”;运用基于贝叶斯网络模型的食品安全舆情监控探针算出所致食品安全风险概率偏高的3 个关键词:“乳制品”P=95/23264×0.95=0.39%、“乳基婴儿配方食品”P=5/23264×0.95=0.02%、“奶酪”P=3/23264×0.95=0.01%,因此设3 个关键词为“乳制品”“乳基婴儿配方食品”和“奶酪”.挖掘时间为3 s,较传统法人为设置关键词使用时间(政府15 s、企业12 s、人民网10 s、网络爬虫技术9 s)明显缩短;产生的垃圾数据仅9 条,较传统法人为设置关键词产生的垃圾数据(政府52 条、企业512 条、人民网159 条、网络爬虫技术47 条)明显减少;数据有效率为83.6%,较传统法人为设置关键词(政府54.3%、企业54.7%、人民网56.2%、网络爬虫技术63.0%)准确率明显提高(见表3).

3.2 酒类

政府部门自设关键词“酒类”、“发酵”和“工艺”;企业自设关键词“啤酒”“青岛”和“生产”;人民网自设关键词“葡萄酒”“张裕”和“发酵”;运用基于贝叶斯网络模型的食品安全舆情监控探针算出所致食品安全风险概率偏高的3个关键词:“酒类”P=2299/23 264×0.95=9.39%、“白酒”P=25/23264×0.95=0.1%、“黄酒”P=7/23 264×0.95=0.03%,因此设关键词为“酒类”“白酒”和“黄酒”.挖掘时间为2.5 s,较传统法人为设置关键词使用时间(政府13 s、企业14 s、人民网5 s、网络爬虫技术6 s)明显缩短;产生的垃圾数据仅9 条,较传统法人为设置关键词产生的垃圾数据(政府2 5 7 条、企业785 条、人民网28 条、网络爬虫技术69 条)明显减少;有效率为77%,较传统法人为设置关键词(政府55.9%、企业52.3%、人民网68.2%、网络爬虫技术58.9%)准确率明显提高(见表3).

3.3 茶类

政府部门自设关键词“茶类”“工艺”和“检测”;企业自设关键词“绿茶”、“红茶”和“销售”;人民网自设关键词“茶类”、“加工”和“贮存”;运用基于贝叶斯网络模型的食品安全舆情监控探针算出所致食品安全风险概率偏高的3 个关键词:“茶叶及其制品”P=7/23264×0.95=0.03%、“绿茶”P=29/23264×0.95=0.12%、“红茶”P=165/23264×0.95=0.67%,因此设关键词为“茶叶及相关制品”、“绿茶”和“红茶”.挖掘时间为2.4 s,较传统法人为设置关键词使用时间(政府15 s、企业10 s、人民网7 s、网络爬虫技术11 s)明显缩短;产生的垃圾数据64 条,较传统法人为设置关键词产生的垃圾数据(政府29 条、企业381 条、人民网23 条、网络爬虫技术45 条)明显减少;有效率为77.9%,较传统法人为设置关键词(政府52.5%、企业55%、人民网59.6%、网络爬虫技术55.9%)准确率明显提高(见表3).

表3 食品安全舆情数据采集监控探针与传统方法对比实验

4 结论与展望

基于贝叶斯网络的食品安全舆情监控探针结合食品安全关键词库与贝叶斯网络概率算法,运用贝叶斯网络模型推理食品安全风险概率大小,定义节点并部署模型,查询到“食物大类”“食品检测不合格”和“危害症状”导致的风险结果.不仅评估出食品安全关键词库中的局部风险,还可以根据示例中的计算与分析过程,获取食品安全相应风险问题的全面评估,实现高风险性关键词的优先采集,有效解决了食品安全舆情监测数据采集中的不精准及效率低等问题.

本研究围绕发现问题、分析问题、解决问题的思路展开研究,针对食品安全舆情监测系统数据采集环节所存在的问题提出科学假设.首先利用MySQL 数据库建立食品安全关键词库;然后,运用贝叶斯网络模型将关键词库构建形成监控探针,并选择食品安全舆情监测系统进行数据采集;最后,以乳制品、酒及茶3 种食品案例的数据代入方法中与传统人工采集、网络爬虫技术形成对比实验,通过对比数据挖掘时间和采集数据有效率,验证假设成立.由此得出,关键词库引入贝叶斯网络模型形成监控探针,可有效提高食品安全舆情数据采集的及时性与精准度,精准定位不同的采集对象,节约了舆情监测体系的采集成本,拓展了食品安全网络舆情监测系统推广应用的范围.

猜你喜欢

贝叶斯爬虫探针
利用网络爬虫技术验证房地产灰犀牛之说
基于Python的网络爬虫和反爬虫技术研究
荧光探针在游离肼检测中的研究进展
基于Scrapy框架的分布式网络爬虫的研究与实现
谁抢走了低价机票
租赁房地产的多主体贝叶斯博弈研究
租赁房地产的多主体贝叶斯博弈研究
贝叶斯网络概述
贝叶斯公式的应用和推广
通过接触测试来提高探针痕迹的一致性