知识图谱构建是把数据从不同的数据源中抽取出来、形成知识存入到知识图谱的过程。针对不同类型数据,需要采用不同的技术。对于垂直领域的知识图谱而言,数据源主要来自两个渠道:一是自身的业务数据,这部分数据可从公司内部获得,通常以结构化的方式存储在公司数据库中;另一种是从网络上公开获取的数据,这些数据通常以网页的形式存在,是半结构化或非结构化数据,往往需要通过编写网络爬虫来获得。
如下图所示,针对结构化数据,可以直接用图映射的方式将关系数据库中的数据转换成为图数据库中的实体和关系。一般而言,可以将关系数据库中的静态数据表直接导入到图数据库中存储为实体节点,而事务处理(业务关系)则在图数据库中用关系来表示。
图6.2 不同类型数据的知识抽取方式
(1)结构化数据的转换
例如将附录1、附录2的食品供应链数据通过图映射以后,节点企业表示为Food-Station实体,供应关系则用类型为“配送”(Deliver To)的连线来表示。关系包含了“食品名称”“源节点”“目标节点”“配送日期”等属性。
图6.3 对关系数据进行图映射构建知识图谱
(2)非结构化数据的自然语言处理
对于非结构化数据,需要用到自然语言处理NLP中的相关技术,例如命名实体识别(Named Entity Recognition)、关系抽取(Relation Extraction)、实体解释(Entity Resolution)、指代消解(Coreference Resolution)等[124]作进一步处理。命名实体识别,是从文本中提取实体,对实体做分类并贴上标签。关系抽取,是把实体间的关系从文本中提取出来。实体解释,也就是说有些实体名称虽不同,其实是指同一个实体,要进行合并。指代消解,是确定文本中的代词具体指向,往往需要根据上下文来加以明确。
比如对下面这段文本:产自新西兰Alpha公司的派诺高钙低脂调制乳粉于2016年3月18日从新西兰奥克兰机场发出,经过中国检验认证集团新西兰有限公司检验通过以后,于2016年5月11日运达广州机场。
采用自然语言处理技术,进行内容自动提取,命名实体识别如下:
图6.4 基于NLP的命名实体识别
表6.2 命名实体识别结果
(www.xing528.com)
文本经过实体抽取,得到了系列离散命名实体,具备了语义信息的基础,但还需要提取出实体之间的关联关系,通过关系把实体联系起来,形成网状知识结构。关系抽取方法主要有两种:(1)通过手工方式构造语法和语义规则;(2)采用机器学习方法,对实体间关系模式进行建模。本研究在外部数据获取以后保存成了结构化较好的JSON文件,因此,我们用手工方式建立起了实体之间的关系模式。
(3)通过网络爬虫提取外部数据
为了构建食品安全追溯网络知识图谱,需要关于食品信息、食品检测和食品供应方面的基础数据。目前国内对食品追溯已经进行了诸多尝试,积累了一定的经验和数据,如中国物品编码中心主办的国家食品(产品)安全追溯平台、中国检验认证集团的中检溯源平台等。不过很多追溯系统的数据依然不够完整,对公众开放查询的服务还不够多。相对而言,中国检验认证集团CCIC食品追溯工作开展较早,溯源服务覆盖30多个国家和地区,在业界已产生了一定影响,我们对CCIC溯源食品的商家和消费者进行过现场调研,也亲自购买过标有CCIC溯源码的食品。为此,在分析中检溯源网站信息结构的基础上,我们编写了网络爬虫程序,抓取了和食品检验、认证、防伪、物流有关的数据,为接下来构建食品追溯知识图谱提供数据准备。
中检集团溯源技术服务有限公司(简称“中检溯源”)是中国检验认证集团CCIC的一级子公司,专注于为全球商品提供溯源解决方案,依托CCIC海内外的服务网络,对商品生产、加工、物流、贸易、消费全过程中的特定信息进行采集、验证、传递和管理,主要包括商品外观信息、标签信息、原产地信息、检验检测信息、认证信息、物流运输信息、通关信息、经营商销售管理信息等,实现商品信息的可查询、可追溯。目前,中检溯源服务平台服务范围目前主要涉及食品、农产品、消费品、奢侈品等,共计77大类、千余款商品。已完成溯源农食产品包括:(1)食品:婴幼儿乳粉、成人奶粉、鲜奶、牛排、蜂蜜、葡萄酒、白酒、啤酒、配制酒、饮料、奶油、食用油、酱油、茶叶、咖啡、坚果、水果干、饼干、甜点、橄榄油、豆浆粉、蜂蜜柚子茶、燕窝、婴儿果泥、冰皮月饼和其他预包装食品等。(2)农产品:香米、精制米、面粉、苹果、西瓜、马蹄、蜜橘、蘑菇、牛羊肉、榆树叶等。(3)水产品:美国龙虾、欧洲三文鱼、国内带鱼、越南巴沙鱼等。
图6.5 CCIC商品溯源信息
右图是商品追溯码为“YY0000581920”的“派诺高钙低脂调制乳粉”在CCIC网站上显示的信息,主要包括查询真伪、物流信息、溯源证明信息、商品检验信息、中文标签信息5个方面的信息。
我们的爬虫程序以遍历追溯码的方式,将网站上每一种食品的防伪码图片、商品图片下载保存,如下图所示。中检溯源使用纤维标签来防伪,该图片和消费者所购商品外包装上粘贴的防伪标签是一致的。
图6.6 网络爬虫对CCIC商品信息抓取结果
关于商品的“查询真伪、物流信息、溯源证明信息、商品检验信息、中文标签信息”5类信息,经过爬虫抓取在本地以JSON文件进行保存。(源代码详见附录3)
表6.3 用Python编写的网络爬虫foodtrace_ccic.py主要代码
至此,我们完成了数据获取的过程。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。