秦 麗,郝志剛,李國亮*
(1.華中農(nóng)業(yè)大學(xué)信息學(xué)院,武漢 430070;2.湖北省農(nóng)業(yè)大數(shù)據(jù)工程技術(shù)研究中心(華中農(nóng)業(yè)大學(xué)),武漢 430070)
食品標(biāo)準(zhǔn)的重要性不言而喻。在眾多的食品標(biāo)準(zhǔn)中,最重要的當(dāng)屬食品安全標(biāo)準(zhǔn),它是唯一強(qiáng)制執(zhí)行的食品標(biāo)準(zhǔn)。食品安全標(biāo)準(zhǔn)分為國家標(biāo)準(zhǔn)和地方標(biāo)準(zhǔn)兩大類,其中食品安全國家標(biāo)準(zhǔn)又包括通用標(biāo)準(zhǔn)、產(chǎn)品標(biāo)準(zhǔn)、生產(chǎn)經(jīng)營規(guī)范、檢驗(yàn)方法與規(guī)程四種,主要涵蓋了8 個方面的內(nèi)容:食品、食品添加劑、食品相關(guān)產(chǎn)品中的致病性微生物、農(nóng)藥殘留、獸藥殘留、生物毒素、重金屬等污染物質(zhì)以及其他危害人體健康物質(zhì)的限量規(guī)定。從農(nóng)田到餐桌,食品安全標(biāo)準(zhǔn)既是食品生產(chǎn)經(jīng)營者必須遵循的最低要求,也是食品能夠合法生產(chǎn)、消費(fèi)的通行證,更是政府監(jiān)管部門執(zhí)法時的依據(jù)準(zhǔn)則。但食品安全標(biāo)準(zhǔn)內(nèi)容龐雜,數(shù)量繁多,覆蓋內(nèi)容廣泛,并且相互引用形式多樣,普通人難以理清其中的關(guān)系,閱讀起來非常困難。雖然國家對于食品安全問題的研究也從未間斷過,但是對于食品安全標(biāo)準(zhǔn)的系統(tǒng)性分析和結(jié)構(gòu)研究卻幾乎沒有。本文針對食品安全標(biāo)準(zhǔn)的內(nèi)容與彼此之間的引用關(guān)系,借助知識圖譜技術(shù)進(jìn)行內(nèi)容抽取與相關(guān)性分析,實(shí)現(xiàn)食品安全標(biāo)準(zhǔn)的圖譜化,并在此基礎(chǔ)之上構(gòu)建一個問答系統(tǒng),完成基于自然語言的食品安全標(biāo)準(zhǔn)的知識檢索與推理。
自從Google 在2012 年提出知識圖譜(Knowledge Graph,KG)這一新的技術(shù)以來,知識圖譜以及相關(guān)技術(shù)的研究取得了長足的發(fā)展。在統(tǒng)計(jì)學(xué)、計(jì)量學(xué)、信息科學(xué)等方面知識圖譜這一技術(shù)有著廣泛的應(yīng)用。知識圖譜本質(zhì)上是一種稱為語義網(wǎng)絡(luò)的知識庫[1],旨在描述客觀世界的概念、實(shí)體、事件及其間的關(guān)系[2]。
目前,對于知識圖譜的研究和應(yīng)用多為知識圖譜的構(gòu)建和存儲。國內(nèi)現(xiàn)有的知識圖譜資源有Zhishi.me[3]等,國外資源有DBpedia[4-5]、Yago[6-7]、Wikidata[8]等;國內(nèi)的圖數(shù)據(jù)庫有北京大學(xué)的gStore[9],國外的有neo4j[10]、jena[11]、GraphDB(Simple graph API for SQL Server)等。而知識圖譜的應(yīng)用則相當(dāng)廣泛,但是為食品安全國家標(biāo)準(zhǔn)建立知識圖譜的研究卻少有涉及,其中的主要原因是食品安全標(biāo)準(zhǔn)數(shù)量繁多,既有國家標(biāo)準(zhǔn),又有地方標(biāo)準(zhǔn),還有行業(yè)標(biāo)準(zhǔn),且標(biāo)準(zhǔn)間的形式與定義規(guī)則皆不統(tǒng)一,特別是不同部門對基礎(chǔ)食品的分類與名稱定義也有較大的出入,這對采用自動化技術(shù)進(jìn)行概念與關(guān)系識別帶來很大困難。目前,學(xué)術(shù)上無論是食品領(lǐng)域還是農(nóng)業(yè)領(lǐng)域都沒有可以參考的專業(yè)詞庫,少量的農(nóng)業(yè)與食品方面的詞匯庫也都是從公共網(wǎng)絡(luò)上采集的,實(shí)體名與關(guān)系名稱既不準(zhǔn)確也不完備,且存在相互不一致的地方很多,讓人無法處理,這也給需要大量準(zhǔn)確訓(xùn)練數(shù)據(jù)的自動化知識抽取技術(shù)帶來很大困難,所以目前的研究需要更多地從專業(yè)文檔入手,梳理標(biāo)準(zhǔn)文檔之間的關(guān)系,建立統(tǒng)一的食品分類方式或者編碼方式以及適用于食品安全領(lǐng)域的專業(yè)本體,從而達(dá)到使用更先進(jìn)的自動化技術(shù)來進(jìn)一步完善相關(guān)知識圖譜的目的。但在本體完善之前,還需要使用一些傳統(tǒng)的方法來追求概念與關(guān)系抽取的準(zhǔn)確性與專業(yè)性。本文主要研究如何將知識圖譜技術(shù)應(yīng)用到食品安全國家標(biāo)準(zhǔn)的內(nèi)容抽取與關(guān)系挖掘上。本文收集了截至2019 年8 月的1 263 項(xiàng)食品安全國家標(biāo)準(zhǔn),并對這些標(biāo)準(zhǔn)按照文本結(jié)構(gòu)與語法特點(diǎn)進(jìn)行分類,針對每類標(biāo)準(zhǔn)制定不同抽取策略與算法,以實(shí)現(xiàn)它們的知識圖譜化。
本文對食品安全國家標(biāo)準(zhǔn)進(jìn)行知識與關(guān)系抽取,主要包括食品標(biāo)準(zhǔn)之間的引用關(guān)系與食品安全標(biāo)準(zhǔn)中的食品安全規(guī)定與限定內(nèi)容。在抽取知識時,主要采用基于句法分析與關(guān)鍵字匹配的方法進(jìn)行,因?yàn)槭称钒踩珮?biāo)準(zhǔn)文件種類繁多,且各個部門對食品安全相關(guān)概念及食品名稱沒有統(tǒng)一的描述與分類,尤其農(nóng)業(yè)部門、食品生產(chǎn)與檢驗(yàn)部門在食品分類與名稱上的描述差異比較明顯,所以到現(xiàn)在為止也沒有食品相關(guān)的專業(yè)詞庫與本體可以使用,這使得在使用一些被廣泛研究的新文本分析技術(shù)時,會因?yàn)槿狈?zhǔn)確而統(tǒng)一的訓(xùn)練集而失去準(zhǔn)確性與專業(yè)性要求,這對于食品安全領(lǐng)域來說,是十分重要的,所以在針對食品安全標(biāo)準(zhǔn)進(jìn)行知識提取時,還是采取了抽取結(jié)果比較準(zhǔn)確的傳統(tǒng)方法來實(shí)現(xiàn),而一些文獻(xiàn)中所提出的基于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)[12-14]的方法經(jīng)過實(shí)驗(yàn),在知識抽取上還有較大的不足,所以沒有采用,本文關(guān)于食品安全國家標(biāo)準(zhǔn)的知識抽取與關(guān)系挖掘過程如圖1所示。
圖1 知識圖譜構(gòu)建流程Fig.1 Knowledge graph construction process
從網(wǎng)上收集的1 263項(xiàng)食品安全國家標(biāo)準(zhǔn),經(jīng)過整理與篩選后,去除一部分加密文檔以及一些圖片形式的文檔,得到1 142 個食品安全標(biāo)準(zhǔn)文本文件作為實(shí)驗(yàn)初始數(shù)據(jù)集。這些食品安全國家標(biāo)準(zhǔn)分為通用限量標(biāo)準(zhǔn)、檢驗(yàn)標(biāo)準(zhǔn)、生產(chǎn)經(jīng)營規(guī)范標(biāo)準(zhǔn)與食品產(chǎn)品標(biāo)準(zhǔn),針對不同的標(biāo)準(zhǔn)類型采用不同策略進(jìn)行三元組提取。
三元組(s,p,o)表示的是一個事實(shí)陳述句,其中,s是主語,p是謂語,o是賓語。(s,p,o)表示s 與o之間具有聯(lián)系p,或者s具有屬性p且取值為o。對于這樣一句陳述“小明獲得了學(xué)位證書”,可以用〈小明〉〈獲得〉〈學(xué)位證書〉來進(jìn)行表示。在工作中,將抽取三類三元組:引用關(guān)系三元組、標(biāo)準(zhǔn)規(guī)定內(nèi)容三元組、其他內(nèi)容三元組等。
2.2.1 引用關(guān)系三元組抽取
引用關(guān)系在食品產(chǎn)品標(biāo)準(zhǔn)和通用限量標(biāo)準(zhǔn)、食品產(chǎn)品標(biāo)準(zhǔn)和生產(chǎn)經(jīng)營規(guī)范標(biāo)準(zhǔn)之間較為常見,所以主要對這些標(biāo)準(zhǔn)進(jìn)行引用三元組的提取。提取方式是常見的基于規(guī)則與正則表達(dá)式的匹配。引用關(guān)系三元組中的兩個實(shí)體皆是食品安全國家標(biāo)準(zhǔn)的名稱,其形式多為“GB”“SN”以及數(shù)字組合而成,采用正則表達(dá)式可以較為準(zhǔn)確地得到食品標(biāo)準(zhǔn)名稱。實(shí)體之間的關(guān)系則是這兩個標(biāo)準(zhǔn)之間的參考項(xiàng)目名稱。比如,食品產(chǎn)品標(biāo)準(zhǔn)與通用限量標(biāo)準(zhǔn)之間的參考項(xiàng)目多為“污染物限量”“真菌毒素限量”“食品添加劑”“農(nóng)藥殘留量”等,可以將這些常見的參考項(xiàng)目構(gòu)建成一個關(guān)鍵詞庫。三元組的抽取依據(jù)是判斷兩個實(shí)體之間是否有對應(yīng)的關(guān)鍵詞,如果有,則將其抽取成三元組進(jìn)行輸出。如:在對標(biāo)準(zhǔn)文檔中的各級標(biāo)題進(jìn)行提取后得到文本“GB 2713—2015 食品安全國家標(biāo)準(zhǔn)淀粉制品1 范圍……3.3 污染物限量污染物限量應(yīng)符合GB 2762 的規(guī)定。3.4 微生物限量3.4.1 即食淀粉制品的致病菌限量應(yīng)符合GB 29921 中糧食制品類的規(guī)定……”,從這段文本中提取出的三元組為:〈GB2713—2015〉〈污染物限量〉〈GB2762〉,〈GB2713—2015〉〈微生物限量〉〈GB29921〉。
2.2.2 標(biāo)準(zhǔn)規(guī)定內(nèi)容三元組抽取
食品安全標(biāo)準(zhǔn)中的通用限量標(biāo)準(zhǔn)規(guī)定了各類食品在食品添加劑、農(nóng)藥殘留等方面的具體限值,因此本文主要對這一部分限值及內(nèi)容進(jìn)行三元組抽取。由于這部分標(biāo)準(zhǔn)的內(nèi)容多以表格的形式展示,而目前對于PDF表格的處理并不十分理想,故這部分三元組數(shù)據(jù)的提取主要依靠自動化表格字符提取技術(shù)加上人工校驗(yàn)的方式進(jìn)行。其中,將食品類型作為三元組的頭實(shí)體,把檢測項(xiàng)目名稱作為實(shí)體關(guān)系,而檢測項(xiàng)目的限值作為三元組的尾實(shí)體。
2.2.3 其他三元組抽取
除了上面所提到的三元組,本文還對食品安全標(biāo)準(zhǔn)文件名稱進(jìn)行了三元組提取。如《GB2713—2015 食品安全國家標(biāo)準(zhǔn)淀粉制品》,利用正則表達(dá)式將“GB2713—2015”和“淀粉食品”提取出來作為三元組的頭實(shí)體和尾實(shí)體,實(shí)體間關(guān)系為“標(biāo)準(zhǔn)內(nèi)容”。
為了保證所抽取的三元組數(shù)據(jù)的準(zhǔn)確性,本文對抽取的實(shí)體與關(guān)系進(jìn)行質(zhì)量評估,評價方法為將一部分自動抽取的三元組與通過人工閱讀所抽取的數(shù)據(jù)進(jìn)行比較,查看自動抽取三元組的準(zhǔn)確率。其中,70 個“食品產(chǎn)品標(biāo)準(zhǔn)”經(jīng)過人工抽取后有235 條三元組,而自動抽取三元組為194 條,三元組的缺失率為17.4%,正確率為100%,這表明這種基于規(guī)則的三元組抽取有著極高的準(zhǔn)確率,但是由于提取規(guī)則數(shù)量不足以及提取規(guī)則內(nèi)容不完善導(dǎo)致所提取的三元組數(shù)量有限,這只能通過不斷完善提取規(guī)則來提升三元組提取數(shù)量與質(zhì)量。另外對1 142 個國家食品安全標(biāo)準(zhǔn)文件名進(jìn)行三元組提取與人工讀取的三元組數(shù)目一致,準(zhǔn)確率為100%,這表明目前的抽取方法對于特征明確的三元組抽取在數(shù)量上與質(zhì)量上都有保證。
危害分析關(guān)鍵控制點(diǎn)(Hazard Analysis Critical Control Point,HACCP)[15]作為食品生產(chǎn)過程的重要參考依據(jù),與食品安全標(biāo)準(zhǔn)緊密相連。因此,對HACCP 中的概念及其關(guān)系進(jìn)行本體構(gòu)建[16]可以將食品安全標(biāo)準(zhǔn)與生產(chǎn)過程進(jìn)行關(guān)聯(lián),可用于項(xiàng)目后期的知識推理,其建立方法與流程在本項(xiàng)目之前的研究文獻(xiàn)[17]中已經(jīng)討論。HACCP 中最為重要的類是“關(guān)鍵控制點(diǎn)”和“危害分析”,其中危害分析包括“化學(xué)危害”“物理危害”和“生物危害”,這些內(nèi)容與食品安全標(biāo)準(zhǔn)的聯(lián)系較為緊密,基于HACCP 的食品生產(chǎn)過程本體也主要圍繞這些內(nèi)容進(jìn)行構(gòu)建。本體結(jié)構(gòu)如圖2所示。
圖2 基于HACCP的食品生產(chǎn)過程本體Fig.2 Food production process ontology based on HACCP
在構(gòu)建圖2 本體的過程中,需要對HACCP 規(guī)范文檔以及國家食品安全標(biāo)準(zhǔn)文檔中的術(shù)語、概念與關(guān)系進(jìn)行抽取,特別是對國家食品安全標(biāo)準(zhǔn)文檔中的各種檢驗(yàn)項(xiàng)目名稱、食品分類以及各種檢測項(xiàng)限量進(jìn)行三元組抽取。由于文檔中存在大量的不規(guī)則表格,本文融合了多種抽取方式,包括基于標(biāo)題格式的實(shí)體抽取、基于句法分析與關(guān)鍵詞匹配的關(guān)系抽取;此外為了保證本體的準(zhǔn)確性,還結(jié)合了部分的人工抽取。目前本文實(shí)驗(yàn)系統(tǒng)已完成對HACCP 規(guī)范文檔以及部分涉及危害分析的國家食品安全標(biāo)準(zhǔn)文檔的抽取工作,其中國家食品安全標(biāo)準(zhǔn)文檔主要涉及《GB2761 食品安全國家標(biāo)準(zhǔn)食品中真菌毒素限量》《GB2762 食品安全國家標(biāo)準(zhǔn)食品中污染物限量》《GB2763 食品安全國家標(biāo)準(zhǔn)食品中農(nóng)藥最大殘留限量》和《GB2760 食品安全國家標(biāo)準(zhǔn)食品添加劑使用標(biāo)準(zhǔn)》。根據(jù)前面的工作,已完成的本體有2 400 多個實(shí)體,6 大類不同的關(guān)系,這還有待進(jìn)一步完善。
在實(shí)體抽取過程中,來自來不同文件的實(shí)體會有表達(dá)形式不一致的問題。如“山梨酸鉀”與“山梨酸及其鉀鹽”意思相近,但表達(dá)形式不完全一致,這時需要進(jìn)行實(shí)體對齊。進(jìn)行大規(guī)模實(shí)體對齊的常用方法有詞向量分析法[18]和embedding[19]等方法。本文嘗試將食品安全標(biāo)準(zhǔn)文檔轉(zhuǎn)換后的文本數(shù)據(jù)作為Word2Vec的訓(xùn)練集來實(shí)現(xiàn)實(shí)體的詞向量化,但由于轉(zhuǎn)換后的訓(xùn)練集不夠,所以得到的結(jié)果不理想。embedding方法則需要較多的實(shí)體以及屬性來進(jìn)行訓(xùn)練,由于目前尚無合適的訓(xùn)練集可以使用,且本文所涉及的“食品添加劑”類實(shí)體的屬性單一,因此也無法完成訓(xùn)練工作?;谏鲜龅膰L試效果皆不理想,所以目前本文通過人工建立同義詞庫的方式解決這個問題,但未來隨著本體中的實(shí)體數(shù)量的增加,應(yīng)該可以通過現(xiàn)有實(shí)體的訓(xùn)練完成新實(shí)體的對齊。
知識圖譜的存儲工具多為圖數(shù)據(jù)庫,本文使用gStore 存儲三元組數(shù)據(jù)。gStore 是北京大學(xué)研發(fā)的面向資源描述框架(Resource Description Framework,RDF)知識圖譜的開源圖數(shù)據(jù)庫系統(tǒng),支持SPARQL(SPARQL Protocol and RDF Query Language)1.1 標(biāo)準(zhǔn),單機(jī)可以支持5 Blilion 三元組規(guī)模的數(shù)據(jù)管理任務(wù),支持有效的“增刪改查”操作?,F(xiàn)將已抽取出的所有三元組以nt格式保存,使用gStore系統(tǒng)中的gbuild命令建立知識庫,命令格式如下:bin/gbuild+知識庫名稱+數(shù)據(jù)文件路徑。知識庫構(gòu)建完成后,可以通過命令終端或者利用應(yīng)用程序接口(Application Programming Interface,API)編寫相應(yīng)程序來訪問管理知識庫,整個管理流程如圖3所示。
圖3 gStore數(shù)據(jù)管理Fig.3 gStore data management
利用SPARQL 語言[20-22]對食品安全標(biāo)準(zhǔn)GB2760 的被引關(guān)系進(jìn)行查詢得到如表1所示數(shù)據(jù)。
表1 三元組數(shù)據(jù)表(部分)Tab.1 Triplet data table(part)
表1 中:Subject 是三元組的主語,Object 是賓語,Predicate是它們之間的關(guān)系。如第1條數(shù)據(jù)表示的含義是:GB10136—2015在食品添加劑方面引用了GB2760。
本文將所有食品安全國家標(biāo)準(zhǔn)的引用數(shù)據(jù)進(jìn)行數(shù)字編碼,使用Louvain 算法[23]進(jìn)行社區(qū)劃分,然后結(jié)合節(jié)點(diǎn)入度與出度的統(tǒng)計(jì),試圖找出這些食品安全標(biāo)準(zhǔn)間引用關(guān)系的中心點(diǎn)。
3.1.1 算法原理
Louvain 算法將所有初始節(jié)點(diǎn)獨(dú)立為一個社區(qū),連邊權(quán)重為0,接下來的工作分為兩個步驟:1)掃描所有節(jié)點(diǎn),針對每個節(jié)點(diǎn)遍歷該節(jié)點(diǎn)的所有鄰居節(jié)點(diǎn),計(jì)算將其加入的鄰居節(jié)點(diǎn)所在社區(qū)后的模塊度增益值,選擇其中最大值所對應(yīng)的鄰居節(jié)點(diǎn),將該節(jié)點(diǎn)加入到相應(yīng)社區(qū)中,迭代這一過程直到每個節(jié)點(diǎn)的歸屬不再發(fā)生變化;2)將每個社區(qū)當(dāng)作一個節(jié)點(diǎn),并計(jì)算新社區(qū)之間的連邊權(quán)重,以及社區(qū)內(nèi)所有節(jié)點(diǎn)之間的連邊權(quán)重之和,完成后重新回到1)。
3.1.2 相對增益
在第一個步驟中要判斷一個節(jié)點(diǎn)所加入的社區(qū)需要根據(jù)相對增益ΔQ值,當(dāng)節(jié)點(diǎn)與某一個社區(qū)之間的ΔQ為最大時,該節(jié)點(diǎn)加入到相應(yīng)的社區(qū)中。ΔQ的計(jì)算公式如式(1)所示:
其中:ki,in代表由節(jié)點(diǎn)i連接社區(qū)C中所有邊權(quán)重之和;代表所有節(jié)點(diǎn)連接社區(qū)C的總權(quán)重(包括社區(qū)C內(nèi)邊的總權(quán)重);ki代表連接節(jié)點(diǎn)i的所有邊的總權(quán)重;m是所有邊的權(quán)值之和。
3.1.3 模塊度
迭代結(jié)束的條件取決于模塊度Q,其計(jì)算公式為:
其中:Aij代表節(jié)點(diǎn)i和節(jié)點(diǎn)j之間邊的權(quán)重;ki是所有與節(jié)點(diǎn)i相連的邊的權(quán)重之和;ci是節(jié)點(diǎn)i的社區(qū)編號;δ(ci,cj)函數(shù)表示若節(jié)點(diǎn)i和j在同一個社區(qū)內(nèi)則返回值為1,否則返回0。在一輪迭代后若Q沒有變化,則停止迭代。
3.1.4 算法實(shí)現(xiàn)
在對邊的權(quán)重進(jìn)行賦值時,不同的節(jié)點(diǎn)關(guān)系所獲得的權(quán)重不同。設(shè)食品產(chǎn)品類標(biāo)準(zhǔn)與通用限量標(biāo)準(zhǔn)之間的邊權(quán)值為3,食品產(chǎn)品類標(biāo)準(zhǔn)與檢測類標(biāo)準(zhǔn)之間的邊權(quán)值為2,其余的邊權(quán)值為1。這樣設(shè)的含義是權(quán)值越高的邊代表的關(guān)系在進(jìn)行抽取時人工參與的程度越高,可信度也越高,在進(jìn)行社區(qū)劃分時占據(jù)的比重也更大。經(jīng)過對1 142 個文檔中的三元組進(jìn)行讀取(去除了少量不完整的內(nèi)容),得到引用關(guān)系圖如圖4所示,共有1 105 個節(jié)點(diǎn)和2 593 條邊,劃分后共得到66 個社區(qū)。其中,同一社區(qū)的節(jié)點(diǎn)被標(biāo)記為同一種顏色(若社區(qū)內(nèi)節(jié)點(diǎn)數(shù)目占比太小,該社區(qū)內(nèi)節(jié)點(diǎn)全部設(shè)為灰色),并且依據(jù)連接該節(jié)點(diǎn)的其他節(jié)點(diǎn)數(shù)目,調(diào)整節(jié)點(diǎn)標(biāo)簽的顯示大小。連接數(shù)目較大的節(jié)點(diǎn),其顯示的標(biāo)簽則越大;反之,則越小。
圖4 國家食品安全標(biāo)準(zhǔn)引用關(guān)系圖Fig.4 Reference relationship diagram of national food safety standards
通過對這一食品標(biāo)準(zhǔn)引用關(guān)系圖譜(圖4)的觀察發(fā)現(xiàn),GB5009.12、GB/T14454、GB2763、GB/T11540 等這些食品安全國家標(biāo)準(zhǔn)的節(jié)點(diǎn)顯示較為清晰,其中GB5009這類標(biāo)準(zhǔn)屬于理化檢驗(yàn)方法標(biāo)準(zhǔn),規(guī)定了檢測食品中化學(xué)物質(zhì)的檢測方法和達(dá)標(biāo)量;GB/T14454、GB/T11540 這類標(biāo)準(zhǔn)規(guī)定了香料的測定方法;GB2763 屬于通用限量標(biāo)準(zhǔn),規(guī)定了食品中的農(nóng)藥最大殘留限量。這些信息表明,在所有食品安全標(biāo)準(zhǔn)中,被引用次數(shù)較多的標(biāo)準(zhǔn)多為各種檢測標(biāo)準(zhǔn)以及規(guī)定了食品常見不合格項(xiàng)目的通用限量標(biāo)準(zhǔn)。同時,這些標(biāo)準(zhǔn)之間又存在著相互引用關(guān)系,是所有標(biāo)準(zhǔn)中影響力較大的食品安全標(biāo)準(zhǔn)。
為了方便利用知識圖譜進(jìn)行檢索與推理,本文在此基礎(chǔ)上構(gòu)建了基于自然語言的問答系統(tǒng)。問答系統(tǒng)可以根據(jù)用戶提供的食品類別、食品添加劑名稱以及使用者類別(檢測機(jī)構(gòu)、食品生產(chǎn)企業(yè)以及消費(fèi)者)檢索食品安全國家標(biāo)準(zhǔn)的內(nèi)容及其引用關(guān)系。針對不同的關(guān)鍵詞,系統(tǒng)可根據(jù)預(yù)先設(shè)定好的推理機(jī)制,完成圖譜內(nèi)的推理,并將結(jié)果以圖表的形式展示在網(wǎng)頁上。問答系統(tǒng)結(jié)構(gòu)如圖5所示。
圖5 問答系統(tǒng)處理流程Fig.5 Processing flowchart of question answering system
4.1.1 食品類型
在檢索欄輸入“食品分類:食品類型”,如“膨化食品”“面筋制品”“淀粉制品”。此類檢索主要涉及食品產(chǎn)品標(biāo)準(zhǔn)以及通用限量標(biāo)準(zhǔn)。如對“膨化食品”進(jìn)行檢索,返回結(jié)果如圖6所示。其中第1排的“DB17401-2014”為“膨化食品”的食品安全標(biāo)準(zhǔn),而其后內(nèi)容則是此標(biāo)準(zhǔn)引用的食品安全標(biāo)準(zhǔn),具體內(nèi)容包括“DB17401-2014”所引的參考項(xiàng)目、標(biāo)準(zhǔn)名稱與參考項(xiàng)目的限量值,相應(yīng)的知識圖譜如圖7所示。
圖6 “膨化食品”查詢結(jié)果(部分)Fig.6 “Puffed food”query results(part)
圖7 “膨化食品”知識圖譜Fig.7 “Puffed food”knowledge graph
結(jié)合圖表數(shù)據(jù)來看,“膨化食品”在生產(chǎn)過程中主要是使用多種添加劑,針對不同的添加劑,食品安全標(biāo)準(zhǔn)GB2760 對其限量都有相應(yīng)的規(guī)定,而食品安全標(biāo)準(zhǔn)GB17401—2014 的主要內(nèi)容就是有關(guān)“膨化食品”的所有規(guī)定,GB17401—2014除了參考食品安全標(biāo)準(zhǔn)GB2760 外,還參考了GB14880 以及GB2762,因此,對于“膨化食品”來說,與之相關(guān)的較為重要的食品安全標(biāo)準(zhǔn)包括GB17401—2014、GB2760、GB2762 和GB14880。
4.1.2 添加劑類型
以常見的添加劑“氫氧化鈣”為例進(jìn)行檢索。此類查詢涉及食品產(chǎn)品標(biāo)準(zhǔn)、食品添加劑相關(guān)標(biāo)準(zhǔn)、檢測標(biāo)準(zhǔn)以及基于HACCP的食品生產(chǎn)過程本體。結(jié)果如圖8所示。首先給出了“氫氧化鈣”所屬的添加劑類型-“酸度調(diào)節(jié)劑”,然后還給出了會使用“氫氧化鈣”作為添加劑的食品名稱及其所對應(yīng)的食品安全標(biāo)準(zhǔn),生成的相應(yīng)知識圖譜如圖9 所示。結(jié)合圖表數(shù)據(jù),“氫氧化鈣”作為食品添加劑在食品生產(chǎn)過程中主要用于酸度調(diào)節(jié),與之相關(guān)的重要食品安全標(biāo)準(zhǔn)有GB25191—2010、GB25572—2010等。
圖8 “氫氧化鈣”查詢結(jié)果Fig.8 “Calcium hydroxide”query results
圖9 “氫氧化鈣”知識圖譜Fig.9 “Calcium Hydroxide”knowledge graph
4.1.3 用戶類型
以“食品生產(chǎn)企業(yè)”作為用戶類型進(jìn)行檢索,這里主要涉及食品經(jīng)營規(guī)范標(biāo)準(zhǔn)。系統(tǒng)首先會檢索所有生產(chǎn)經(jīng)營規(guī)范標(biāo)準(zhǔn),如GB31646—2018 是速凍食品生產(chǎn)和經(jīng)營衛(wèi)生規(guī)范,GB20799—2016 是肉和肉制品經(jīng)營衛(wèi)生規(guī)范等。選擇“GB20799—2016”繼續(xù)查詢,結(jié)果如圖10所示。
圖10 “GB20799—2016”查詢結(jié)果Fig.10 “GB20799-2016”query results
圖10給出了“GB20799—2016”參考的項(xiàng)目名稱以及所對應(yīng)的參考標(biāo)準(zhǔn)名稱,相應(yīng)的知識圖譜如圖11所示。
圖11 “GB20799—2016”知識圖譜Fig.11 “GB20799-2016”knowledge graph
結(jié)合圖表數(shù)據(jù),食品生產(chǎn)企業(yè)的食品經(jīng)營規(guī)范主要參考食品安全標(biāo)準(zhǔn)GB14881—2013,其內(nèi)容主要包括食品生產(chǎn)企業(yè)在生產(chǎn)過程中的各項(xiàng)規(guī)定,包括管理制度和人員、衛(wèi)生管理等,因此,對于食品生產(chǎn)企業(yè)的生產(chǎn)經(jīng)營規(guī)范來說,GB20799—2016是其重要的食品安全標(biāo)準(zhǔn)。
本文的推理方法主要采用基于規(guī)則方法實(shí)現(xiàn),即通過不同的需求設(shè)計(jì)相應(yīng)的檢索模板,檢索模板包括需要的條件、檢索的方式與結(jié)果的反饋方式。在獲得用戶需要后,將檢索模板所需要條件通過“:”的方式放入本次檢索中,由系統(tǒng)識別,并分別讀取,針對多跳檢索,會將上次的檢索的結(jié)果與本次檢索的結(jié)果進(jìn)行自動匹配。如搜索“膨化食品”的相關(guān)信息時,會將“食品分類”作為檢索類型,獲取食品分類檢索模板,并將其后的內(nèi)容作為檢索關(guān)鍵字。如果有多個條件,多個條件通過“:”進(jìn)行拆解,并利用食品分類檢索模板生成SPARQL 檢索語句。如對于“膨化食品”的檢索,系統(tǒng)根據(jù)“食品分類”檢索模板生成的SPARQL語句是通過下面的步驟實(shí)現(xiàn)的。
1)對關(guān)鍵字內(nèi)容進(jìn)行分割,得到part1“食品分類”與part2“膨化食品”。
2)對part1進(jìn)行判斷,選擇相應(yīng)的推理模板,并將part2作為參數(shù)進(jìn)行傳遞。
3)SPARQL 根據(jù)推理模板生成搜索語句:如對SELECT*WHERE{?s?p?o.?s <食品分類>obj.}中的obj進(jìn)行替換,將得到最終的查詢語句:
SELECT*WHERE
{?s?p?o.?s <食品分類><膨化食品>.}
該SPARQL 語句限制了?s 的屬性為“食品分類”,相應(yīng)的屬性值為“膨化食品”,同時又查詢與?s 相關(guān)的其他三元組作為結(jié)果返回。
基于“添加劑類型”與“用戶類型”的檢索模板,是通過下面的步驟實(shí)現(xiàn)的。
對于“氫氧化鈣”的檢索,系統(tǒng)會檢查該關(guān)鍵詞的分類,將“添加劑分類:氫氧化鈣”作為本次檢索的類型,找出所有涉及“氫氧化鈣”這一實(shí)體的相關(guān)三元組數(shù)據(jù),其SPARQL 生成的步驟如下:
1)對關(guān)鍵字內(nèi)容進(jìn)行分割,得到part1“添加劑分類”與part2“氫氧化鈣”。
2)對part1進(jìn)行判斷,選擇相應(yīng)的推理模板,并將part2作為參數(shù)進(jìn)行傳遞。
3)SPARQL 根據(jù)推理模板生成搜索語句:如對SELECT*WHERE{?s?p?o.?x?p2?s.?s <添加劑分類>obj.}中的obj進(jìn)行替換,將得到最終的查詢語句:
SELECT*WHERE
{?s?p?o.?x?p2?s.?s <添加劑分類><?xì)溲趸}>.}
該SPARQL 語句限制了?s 的屬性為“添加劑分類”,相應(yīng)的屬性值為“氫氧化鈣”,同時又查詢與?s相關(guān)的其他三元組,其中?s作為頭實(shí)體或尾實(shí)體。
而對于“食品生產(chǎn)企業(yè)”的檢索,系統(tǒng)會檢查該關(guān)鍵詞的分類,將“用戶分類:食品生產(chǎn)企業(yè)”作為本次檢索的類型,找出所有的生產(chǎn)經(jīng)營規(guī)范標(biāo)準(zhǔn)返回給用戶,當(dāng)用戶從這些標(biāo)準(zhǔn)中選取“GB20799—2016”時,系統(tǒng)會將該標(biāo)準(zhǔn)的相關(guān)信息與“用戶分類:食品生產(chǎn)企業(yè)”合并成新的檢索“用戶分類:食品生產(chǎn)企業(yè):肉和肉制品經(jīng)營衛(wèi)生規(guī)范:GB20799—2016”,其SPARQL生成的算法如下:
1)對關(guān)鍵字內(nèi)容進(jìn)行分割,得到part1“用戶分類”,part2“食品生產(chǎn)企業(yè)”,part3“肉和肉制品經(jīng)營衛(wèi)生規(guī)范”,part4“GB20799—2016”。
2)對part1 進(jìn)行判斷,選擇相應(yīng)的推理模板,并將part2、part3、part4作為參數(shù)進(jìn)行傳遞。
3)SPARQL 根據(jù)推理模板生成搜索語句:由于參數(shù)中給出了標(biāo)準(zhǔn)的名稱,而標(biāo)準(zhǔn)實(shí)體名稱是獨(dú)一無二的,可以忽略其他限制條件,對SELECT*WHERE{?s?p?o.?s <標(biāo)準(zhǔn)名稱>obj.}中的obj進(jìn)行替換,將得到最終的查詢語句:
SELECT*WHERE
{?s?p?o.?s <標(biāo)準(zhǔn)名稱><GB20799-2016>.}
該SPARQL 語句限制了?s 的屬性為“標(biāo)準(zhǔn)名稱”,相應(yīng)的屬性值為“GB20799—2016”,同時又查詢與?s 相關(guān)的其他三元組作為結(jié)果返回。
本系統(tǒng)的檢索模板是通過用戶的需求人為定義的,所以隨著需要的增加和改變,檢索模板的定義也會有變更,但隨著項(xiàng)目的進(jìn)展,會根據(jù)用戶需要設(shè)計(jì)自動生成檢索模板的方法。
問答系統(tǒng)的目的是站在不同任務(wù)的角度,根據(jù)用戶的需要,發(fā)現(xiàn)對用戶來說比較重要的標(biāo)準(zhǔn)以及與該標(biāo)準(zhǔn)關(guān)聯(lián)比較緊密的其他標(biāo)準(zhǔn),這對于標(biāo)準(zhǔn)使用者或者制定者來說,能幫助他們迅速得關(guān)注到標(biāo)準(zhǔn)的核心點(diǎn)及與其他標(biāo)準(zhǔn)之間的關(guān)聯(lián)關(guān)系,能起到指導(dǎo)使用與優(yōu)化建設(shè)的輔助功能。從目前問答系統(tǒng)得到的檢索與推理結(jié)果來看,所有的結(jié)論在常識上與專業(yè)上都是可以解釋的,符合食品安全與食品檢驗(yàn)的基本規(guī)律,所以本文的食品安全標(biāo)準(zhǔn)圖譜與問答推理系統(tǒng)能有效地反映標(biāo)準(zhǔn)間的引用關(guān)系并發(fā)掘不同任務(wù)、不同需要下重點(diǎn)標(biāo)準(zhǔn)與相關(guān)標(biāo)準(zhǔn)間的關(guān)系。但由于目前考慮到的任務(wù)與需求還比較少,所以推理方式也較單調(diào),后期的實(shí)驗(yàn)與系統(tǒng)也會考慮到更多、更復(fù)雜的情況。
本文通過對現(xiàn)有收集到的食品安全國家標(biāo)準(zhǔn)進(jìn)行內(nèi)容實(shí)體與引用關(guān)系的抽取,構(gòu)建了食品安全國家標(biāo)準(zhǔn)圖譜,整個圖譜包括1 105 個節(jié)點(diǎn)和2 593 邊,其中如“GB2763”這類通用限量食品安全標(biāo)準(zhǔn)以及“GB5009”這類檢測標(biāo)準(zhǔn)所生成的節(jié)點(diǎn)連接度最高,表明這些標(biāo)準(zhǔn)在所有標(biāo)準(zhǔn)中重要程度更高。本項(xiàng)目建立了基于HACCP 的食品生產(chǎn)過程本體并完成了實(shí)體對齊,本體使得圖譜間知識的聯(lián)系更加清晰與完整,并為未來的更自動化的知識抽取提供基礎(chǔ)與依據(jù)。然后基于知識圖譜搭建了基于自然語言的問答系統(tǒng),對圖譜進(jìn)行檢索與推理,以此來挖掘不同標(biāo)準(zhǔn)間的相關(guān)性,找出不同需求下最具影響力的食品安全國家標(biāo)準(zhǔn)。實(shí)驗(yàn)結(jié)果表明,這種方式具有可行性,能實(shí)現(xiàn)“核心”標(biāo)準(zhǔn)的發(fā)現(xiàn),對于研究食品安全國家標(biāo)準(zhǔn)的結(jié)構(gòu)與內(nèi)容分布有較好的指導(dǎo)作用。但是,未來還存在一些待優(yōu)化的問題:一方面,由于缺乏可用的專業(yè)詞庫,知識抽取的自動化程度有待提高,未來隨著項(xiàng)目自建的本體的完善,可以通過對其中實(shí)體與關(guān)系的訓(xùn)練來使用更快速、更新的技術(shù)來優(yōu)化知識抽取的方法;另一方面,推理規(guī)則的生成還不能實(shí)現(xiàn)自動化,現(xiàn)在還需要通過人的分析來生成推理模板,未來將研究規(guī)則的自動生成方法。