張佳斌
1.煤炭科學(xué)研究總院有限公司 北京 100013;
2.天地科技股份有限公司北京技術(shù)研究分公司 北京 100013
煤炭資源一直是中國經(jīng)濟發(fā)展的重要支撐,但也存在安全事故和資源浪費等問題。為了解決這些問題,煤礦智能化建設(shè)日益受到關(guān)注。知識圖譜作為一種高效的數(shù)據(jù)結(jié)構(gòu),可以將領(lǐng)域內(nèi)的知識和信息進(jìn)行整合,有望為煤礦智能化建設(shè)提供更加智能化、精準(zhǔn)化的技術(shù)支持。在煤礦智能化建設(shè)中,涉及多方面的知識如煤礦生產(chǎn)、機電設(shè)備、安全管理等領(lǐng)域。這些知識形成的海量數(shù)據(jù)難以有效整合和挖掘,而知識圖譜可以通過抽取、建模、推理等方法將這些知識與信息組織起來,從而幫助人工智能系統(tǒng)有效地理解和利用領(lǐng)域內(nèi)的知識和信息[1]。例如,知識圖譜可以幫助煤礦工人管理設(shè)備、預(yù)測故障、優(yōu)化生產(chǎn)過程,實現(xiàn)節(jié)能減排和安全生產(chǎn)等目標(biāo)。
因此,研究面向煤礦智能化建設(shè)領(lǐng)域的工業(yè)知識圖譜具有重要的研究意義。該研究可以促進(jìn)煤礦智能化建設(shè)的整體發(fā)展,提高生產(chǎn)效率和安全水平,減少資源浪費和人員傷亡風(fēng)險,同時也有助于推動國內(nèi)人工智能、大數(shù)據(jù)等相關(guān)領(lǐng)域的發(fā)展。
要根據(jù)知識圖譜中的結(jié)構(gòu)化知識,簡潔而準(zhǔn)確地回答用戶的問題,需要解決以下兩個問題:第一是如何存儲數(shù)以億計的結(jié)構(gòu)化知識,依據(jù)結(jié)構(gòu)化查詢語句對知識快速訪問;第二是自然語言與結(jié)構(gòu)化查詢之間的語義鴻溝,導(dǎo)致自然語言難以直接映射為查詢語句。本文設(shè)計的系統(tǒng)能夠允許用戶輸入自然語言問題,它能準(zhǔn)確地理解用戶意圖,將問題映射為結(jié)構(gòu)化查詢語句并訪問知識圖譜提取候選答案,最后展示給用戶簡潔而準(zhǔn)確的答案,提高用戶的查詢體驗。為了設(shè)計并實現(xiàn)目標(biāo)系統(tǒng),現(xiàn)將需求詳細(xì)介紹如下。
基于知識圖譜面向煤礦智能化建設(shè)領(lǐng)域的工業(yè)知識系統(tǒng)存在多方面的功能要求,主要分為問題接收與結(jié)果展示功能和知識圖譜問答功能[2]。一方面,系統(tǒng)需要提供友好的用戶交互界面,該界面既允許用戶提交自然語言問題,又能夠?qū)⒋鸢负啙嵉卣故窘o用戶。另一方面,系統(tǒng)能夠接收用戶的請求,并將其提交給后臺服務(wù)端對問題進(jìn)行處理,基于知識圖譜中的結(jié)構(gòu)化知識產(chǎn)生問題的答案,以此實現(xiàn)知識圖譜的面向煤礦智能化建設(shè)領(lǐng)域的工業(yè)知識系統(tǒng)的整體需求。面向煤礦智能化建設(shè)領(lǐng)域的工業(yè)知識系統(tǒng)提出的主要功能如下[3]:①資源存?。悍胖妙~外的資源或是其他相關(guān)知識文件。②相關(guān)知識點推薦:系統(tǒng)推薦所查詢的相關(guān)知識點,減少再次搜尋數(shù)據(jù)的時間。
因此本課題構(gòu)建一個基于知識圖譜的面向煤礦智能化建設(shè)領(lǐng)域的工業(yè)知識系統(tǒng)來解決上述的問題。
用戶輸入界面輸入想要搜尋的信息,經(jīng)由通過查詢器處理,向存儲知識點本體數(shù)據(jù)庫要求相關(guān)信息回傳至面向煤礦智能化建設(shè)領(lǐng)域的工業(yè)知識系統(tǒng)后,呈現(xiàn)在用戶界面。系統(tǒng)采用的系統(tǒng)架構(gòu)為三層式主從架構(gòu)。三層式主從架構(gòu)是為了解決兩層式主從架構(gòu)的客戶端問題。系統(tǒng)的設(shè)計原則是從整體性、全面性、系統(tǒng)性的角度進(jìn)行考慮,為了使得設(shè)計出的系統(tǒng)不僅能整體運行良好,而且更重要的是具備可擴展性、具有良好的兼容性、還具有很好的維護(hù)性。因此必須遵守一定的系統(tǒng)設(shè)計原則[4-5]:①由于每個系統(tǒng)都與數(shù)據(jù)打交道,因此對數(shù)據(jù)的存儲能力的設(shè)計和大量數(shù)據(jù)之間的交互能力的設(shè)計是首先要考慮的設(shè)計因素,一個好的系統(tǒng)對數(shù)據(jù)的讀取和寫入要流暢快速,便于進(jìn)行大數(shù)據(jù)的挖掘分析等工作。②不僅具有強大的數(shù)據(jù)存儲能力,還要實現(xiàn)對數(shù)據(jù)的快速處理和多通道處理的設(shè)計需求。③為了便于數(shù)據(jù)的高效查詢,對數(shù)據(jù)庫的索引的建立、分區(qū)的創(chuàng)建、Sql的優(yōu)化等內(nèi)容進(jìn)行設(shè)計,提高數(shù)據(jù)庫不同分區(qū)的讀寫速度。④為了減少系統(tǒng)數(shù)據(jù)庫的空間開銷,通常利用各種壓縮算法設(shè)計,以此來提高數(shù)據(jù)庫內(nèi)數(shù)據(jù)的壓縮率。
為更加準(zhǔn)確、高效地從工業(yè)知識文本中抽取出相關(guān)實體,將基于BiLSTM網(wǎng)絡(luò)和LSTM網(wǎng)絡(luò)設(shè)計一種編碼器框架用于工業(yè)知識實體的抽取,此外在模型輸入和實體識別過程中考慮了多種特征(Multi-features),由此提出一種基于多特征融合的工業(yè)知識領(lǐng)域命名實體識別模型(Multi-features-based BiLSTMLSTM for Named Entity Recognition in Threat Intelligence),記作MF-BiLSTM-LSTM。MF-BiLSTM-LSTM工業(yè)知識實體抽取框架中,針對工業(yè)知識句子序列,綜合考慮了詞特征、字符特征以及句法依存特征,將三類特征融合后作為模型的輸入,進(jìn)而利用BiLSTM網(wǎng)絡(luò)對輸入特征進(jìn)行編碼,得到更高級的句子序列特征[6]。由于自注意力機制(Self-attention,SelfAtt)可以直接學(xué)習(xí)序列中任意兩個詞之間的依賴權(quán)重,因此在BiLSTM網(wǎng)絡(luò)之后引入自注意力權(quán)重的計算,進(jìn)一步提升句子特征的表達(dá)[7]。在上述工業(yè)知識實體抽取框架中,采用LSTM作為標(biāo)簽解碼器,而非傳統(tǒng)被廣泛使用的CRF模型,是由于當(dāng)標(biāo)簽空間較豐富時,在模型訓(xùn)練過程中,前者已被證明比鏈?zhǔn)紺RF模型更快。
本畢業(yè)設(shè)計將冗長的工業(yè)知識等詳細(xì)的信息,以及報告內(nèi)所有的資源等使用MySQL關(guān)系式數(shù)據(jù)庫做存取,其作為本課題中的統(tǒng)常態(tài)數(shù)據(jù)庫。為了呈現(xiàn)使用信息技術(shù)課程知識本體內(nèi)object的關(guān)系特性,本課題利用符合相同領(lǐng)域的類別所屬的知識點,作為推薦用于用戶查詢知識點的擴展。
本系統(tǒng)開發(fā)了2套爬蟲代碼,分別去爬取了兩個不同的網(wǎng)站:爬取時候設(shè)置了cookies和headers才繞過了反扒機制。解析html文本,清洗數(shù)據(jù)準(zhǔn)備訓(xùn)練模型。使用精靈標(biāo)注工具對數(shù)據(jù)進(jìn)行標(biāo)注,得到標(biāo)注后的json文本,在編輯轉(zhuǎn)換代碼將json文件轉(zhuǎn)換為bio標(biāo)注。
過去也曾有許多研究想要為工業(yè)知識做抽取分類,且比起通過知識特征,更多論文傾向用特征為工業(yè)知識做抽取分類,所以我們運用IDCNN與BiLSTM兩種方法來將工業(yè)知識到適合的抽取。
2.2.1 數(shù)據(jù)預(yù)處理。中文斷詞采用預(yù)先訓(xùn)練好的斷詞模型將句子中的每個字詞分隔,不僅能夠?qū)?biāo)點符號與字詞分開,也能將縮寫字拆分成單一的單詞。刪除停用詞(Stop Words)指的是在中文中非常常用的字詞,通常不太影響抽取分類,刪除停用詞能夠幫助模型更加正確的分類文句抽取。本模塊通過中文斷詞將云漏洞庫數(shù)據(jù)進(jìn)行前處理,經(jīng)去除無用及噪音文字,再以詞典內(nèi)編制字詞與文本比對,產(chǎn)生斷詞結(jié)果并進(jìn)行詞頻統(tǒng)計,分析出最常出現(xiàn)的字詞。
2.2.2 字詞向量。以本文采用Word2Vec做字詞向量,Word2Vec是Google 2013年由Tomas Mikolov等人所提出,通過學(xué)習(xí)大量沒有標(biāo)簽的文本數(shù)據(jù),將字詞用數(shù)學(xué)向量的方式來代表他們的語意。并將字詞嵌入到一個空間后,讓語意相似的單字可以有較近的距離,可用來表示詞與詞之間的語意關(guān)系[8]。
2.2.3 模型構(gòu)建。本文BiLSTM來做煤礦智能化建設(shè)領(lǐng)域的工業(yè)知識抽取分類。通過將四種特征合并成一個字段且限制每筆字段長度為500,經(jīng)過 Word2Vec的Embedding后,通過單層32個、雙層64個BiLSTM 神經(jīng)元運算出的平均結(jié)果,找出最理想的抽取分類結(jié)果[9]。除了情報信息為較長的文字特征將每筆字段長度限制為500之外,其余3個文字特征長度限制都設(shè)置為20。圖1為MF-BiLSTM-LSTM(M9)我們除了一樣將較長的文字特征,通過IDCNN取得進(jìn)階的文字特征后,再交由BiLSTM學(xué)習(xí)序列關(guān)系的抽取特征之外,將其余3個較短的文字特征交由BiLSTM分類與M8做比較。
圖1 MF-BiLSTM-LSTM(M9)模型架構(gòu)圖
2.2.4 模型訓(xùn)練。我們訓(xùn)練命名實體識別模型,訓(xùn)練了99個epoch,將誤差從145降低到1.02左右。
2.3.1 neo4j數(shù)據(jù)庫構(gòu)建。我們利用模型訓(xùn)練出數(shù)據(jù),結(jié)合定義的本體規(guī)則生成知識圖譜三元組,將三元組數(shù)據(jù)人工細(xì)節(jié)處理一遍,然后通過create_node創(chuàng)建本文的威脅知識節(jié)點,通過create_relation創(chuàng)建這些節(jié)點之間的關(guān)系。通過Graph類實現(xiàn)將知識圖譜存入neo4j數(shù)據(jù)庫。
2.3.2 django系統(tǒng)構(gòu)建。構(gòu)建django的rel數(shù)據(jù)庫模型,將數(shù)據(jù)庫存入sqlite數(shù)據(jù)庫中,開發(fā)查詢功能,實現(xiàn)知識圖譜根據(jù)某些關(guān)鍵字查詢其鄰居結(jié)點[10]。生成對應(yīng)的json數(shù)據(jù),傳給vue和d3js開發(fā)的知識圖譜可視化的前端頁面,形成網(wǎng)站交互功能。
本節(jié)將展示基于知識圖譜的面向煤礦智能化建設(shè)領(lǐng)域的工業(yè)知識系統(tǒng)的系統(tǒng)平臺首頁,用戶搜索主界面,搜索結(jié)果展示。系統(tǒng)平臺的首頁,上方的功能列中有搜尋答案。以下將以本課題的知識點來演示系統(tǒng)的實現(xiàn)。
用戶搜尋的主界面,用戶可以輸入相關(guān)的關(guān)鍵詞來獲取對應(yīng)的知識點。首先需要對問句進(jìn)行過濾,然后基于特征詞進(jìn)行對問句進(jìn)行分類,最后基于對問句的分類來進(jìn)行具體的答案提醒。詳細(xì)的過程是python通過check_medical對問題進(jìn)行過濾,找到問題的核心關(guān)鍵詞,如果通過函數(shù)check_words來判斷該關(guān)鍵詞是否在本系統(tǒng)的詞典中。然后通過answer_prettify搜尋相關(guān)問題的答案,具體根據(jù)question_type的類型來進(jìn)行,具體都是通過查找相關(guān)的詞典來進(jìn)行。
通過基于知識圖譜的工業(yè)知識分析可以很好地為煤礦管理人員提供相關(guān)參考。本文的研究可以促進(jìn)煤礦智能化建設(shè)的整體發(fā)展,提高生產(chǎn)效率和安全水平,減少資源浪費和人員傷亡風(fēng)險,同時也有助于推動國內(nèi)人工智能、大數(shù)據(jù)等相關(guān)領(lǐng)域的發(fā)展。為了使該系統(tǒng)功能性能更加完善,本文的未來工作主要有以下幾點[11-12]:①在問題預(yù)處理模塊的實體鏈接階段,為了能夠更加準(zhǔn)確的進(jìn)行實體鏈接,在未來研究中可借鑒現(xiàn)有實體消歧方法,結(jié)合更多的知識信息定位問題中的知識圖譜實體。②進(jìn)一步完善數(shù)據(jù)庫的內(nèi)容,使數(shù)據(jù)庫的內(nèi)容更加的豐富,以滿足更多用戶的使用需求,未來將不僅僅局限于工業(yè)知識的知識內(nèi)容。