董國鵬,徐旭升
(中鐵七局集團有限公司勘測設計研究院,鄭州 450016)
自動化安全知識管理對于從業者和研究者都是一個普遍的問題。在工程行業中,由于工業化和專業化的不斷發展,安全管理已被認為對控制危險具有重要意義。雖然研究人員已經探索出各種方法來減少事故發生率。但是建筑工地的死亡和傷害仍然經常發生,大量的事故和人員傷亡的使建筑工程成為中國最危險的行業。為了改善施工現場的安全管理,提高了管理人員的安全意識,并督促他們防止建筑工作中的事故或問題,研究人員開始收集和組織事故報告、法律法規,然后公開發表。但是,隨著積累的報告和文件數量的增加,如何提高管理效率,成了問題的關鍵[1-3]。
傳統上,從文本數據中提取關鍵信息然后組織文檔在很大程度上取決于人工解釋和處理,這既費力又費時。自然語言處理技術能夠將非結構化的文本轉化為結構化信息[4-6]。然而雖然基于深度神經網絡的自然語言過程(natural language process,NLP)模型已經實現了自然語言理解的多種突破,但是對于工程行業或其他專業領域,還是有大量的技術術語,它們會生成特定領域的注釋,標簽和關系。要收集這些數據并標記信息,必須與領域專家緊密合作,并在很大程度上依賴于他們的主觀經驗。此外,在這些行業內,信息項提取通常具有特定的目標。隨著大規模的公共知識數據集訓練,它對專業領域的知識處理不起作用。
知識管理經歷了建筑管理研究的激增。它對安全績效、工人行為和預防與工作有關的事故的影響極大地引起了研究學者和工程師的關注。Bamel等[7]通過文獻計量和系統的文獻網絡分析研究了安全氣候知識認識論。Duryan等[8]強調從優秀實例、事故、事故隱患和失敗的項目中學習知識的重要性。Auch等[9]調查了項目團隊文化對知識管理和轉移的影響。他們發現人們有不同的優先級和議程,因為他們在不同的項目團隊和不同的職能組中且具有不同的角色。
數據是決策過程的基礎,尤其是在建筑業中,最典型的數據類型是圖紙、表格和文本。為了促進知識管理,研究人員非常關注數據分析和自動知識提取。然后提出了各種工具和模型來改善安全管理。Kim等[10]著重于建筑安全管理,開發了一個建筑事故風險知識管理系統。Zou等[11]提出了一種基于NLP的方法來提高建設項目風險管理中信息檢索的效率和性能。薛蕊等[12]分析和總結了NLP技術在智能鐵路中的應用。李舟軍等[13]改進了BERT和XLNet模型,顯著提升了自然語言處理技術中預訓練技術的效果。為了組織大量與施工管理相關的文件并提取關鍵信息,Chen等[14]提出了一種基于本體和自然語言處理的自動文檔知識圖和推理網絡模型。為了處理建筑、工程和建筑行業中設計流程中的意外更改,Dawood等[15]提出了一種通過整合行業基礎課程數據和自然語言處理來驗證和直觀識別變更請求結果的方法。雷坤等[16]通過語義檢索技術分析某省全年建設工程施工合同糾紛訴訟案例中引用的法律條文和訴訟成因,為建筑工程行業風險管理提供參考。
總結當前的研究成果,以解決建筑行業中知識管理的不同問題,研究人員提出了各種模型和方法。然而,它們通常專注于應用邏輯。信息項識別是所有應用程序的基礎。沒有可靠的方法來解決所有問題,對于每個應用案例,需要新模型訓練。如果沒有靈活有效的訓練方法來避免對大規模數據集進行訓練,那么所提出和建立的方法將很難在實踐中使用。
因此,行業中需要自動信息提取模型,該模型可以用小樣本進行訓練,并且可以與書寫語言系統的功能保持獨立。針對這一問題,現提出一種基于自然語言處理的小樣本訓練方法。該方法能夠充分利用有限的樣本,通過字符語義編碼、BiLSTM-CRF分類模型和數據增強技術,建立能夠自動處理和組織文本數據中語義信息的自動提取模型,具有較高的魯棒性,在工程行業以及其他專業領域中具有較大優勢。
小樣本自動信息提取模型由三部分組成。第一部分是基于詞嵌入的字符語義編碼;第二部分是基于長短期記憶(long-short term memory,LSTM)網絡的字符分類模型,第三部分是基于交叉組合的數據增廣算法??傮w框架如圖1所示。

圖1 模型的總體框圖
首先,將小樣本數據集的原始數據直接用于模型訓練中。通過字符語義編碼,將文本數據轉換為語義向量,然后把這些向量作為字符分類模型的輸入。通過分類模型,根據對應的信息項類別對字符進行處理,然后將屬于同一信息項類別的相鄰字符識別為一個信息項目標。根據模型對初始數據集的預測精度,通過交叉組合增廣算法對訓練數據集進行增強,以合成包含預測精度值較低的目標的樣本。然后,使用擴展數據集重新訓練模型。通過數據擴充,可以將初始的小樣本數據集擴充為大型數據集而無需更多注釋。然后可以增強模型的可靠性和魯棒性。
在該框架中,字符被視為基本語義單元。對于不同的書寫語言系統,“字符”的含義可能會有不同的解釋。在英語語言系統中,字符可以是數字、標點、符號或字母表中的字母,一個或多個字符組成一個單詞。在中文語言系統中,一個字既可以是一個字,也可以是一個字的一部分。為了消除這種混淆,在本文中,“字符”被定義為文本數據的處理單元,其中一個字符在一個句子中具有最小的語義。由于每個字符都是一個處理單元,句子可以自然地劃分為字符而不考慮分詞。所以語義編碼是獨立于自然語言書寫系統的。
為了量化字符串符號,目前,整數編碼表示、獨熱編碼表示和分布式表示是語言符號處理的三種最常見的編碼風格。在整數編碼模型中,字符用唯一的整數進行編碼,而整數值具有自然有序的關系,這可能會影響模型預測精度。獨熱編碼將整數值轉換為二進制值,對應位的“1”值表示一個特定的字符串符號。單熱編碼消除了順序關系,但編碼將非常長,因為自然語言系統中有大量唯一的字符串符號。對于分布式表示,使用連續值代替離散的1和0。因此,字符串符號不再局限于一個單元,短編碼可以代表大量的概念。在本框架中,使用了分布表示方法。
首先,生成一個字符表,所有文本數據都以字符串格式作為語料庫讀取。然后將字符串分成最小的語義單元(字符),并刪除重復的語義單元。再根據出現順序為每個單元分配一個唯一的整數作為編號。最后,收集到的具有編號的語義單元由字符表組成。
然后,根據字符表,可以將一個句子翻譯成一組編號。盡管編號是數字值,但它不包含語義,每個字符都是一個獨立的單元。編號可以用于標識不同的字符,但不能表示字符之間的關系。另一方面,信息項通常是包含多個字符的短語或句子片段。因此,通過將內容建模為字符編碼,可以使信息提取過程更高效。在這項工作中,利用單詞嵌入算法進行內容學習,然后生成字符的語義編碼。
圖2為嵌入算法的過程。Xi是一個句子中的第i個字符。周圍內容的窗口大小為C,因此,總共選擇2C個字符(C項在左邊,C項在右邊)作為Xi的周圍內容。如果句子長度不夠,則會附加空字符。W是一個權值矩陣,窗口大小中的所有項共享一個權值矩陣。Xi維度為1×V,W維度為V×N。V為初始編碼字符的長度,N為語義編碼的長度。然后,通過式(1)和式(2)的過程,可以生成一個指標向量Yi,并且通過訓練W矩陣和W′矩陣讓Yi值等于Xi值。然后,可以將Xi×W的結果視為Xi字符的語義向量Si。這可以看作是一種通過輸入周圍內容的語義向量來預測句子中第i個字符的預測模型。

圖2 特征語義編碼訓練模型
(1)
(2)
窗口大小C決定目標的內容區域。V是字符的初始代碼的長度,例如,如果采用單字符表示,則V是字符表的長度,它影響計算效率。N是語義向量的長度,其中N越大,語義向量可以包含的信息越多。通過語義編碼模型,每個字符都由一個N維向量表示,該向量包含量化的內容信息。
信息項通常由一個或多個字符組成。通過語義編碼,可以識別字符之間的相似性和差異。但是,為了捕獲有意義的信息項,必須進一步確定字符的特定合成圖案。LSTM網絡由于具有良好的處理長距離依賴性分析的功能,因此被認為是檢測長序列數據中模式的良好模型。采用BiLSTM-CRF模型作為檢測核心,對字符進行分類,然后檢測信息項的組合模式。
BiLSTM-CRF模型由兩部分組成:雙向LSTM網絡,包括前向和反向LSTM網絡;以及條件隨機場(conditional random field,CRF)層。首先,生成每個字符的語義向量,然后將語義向量作為BiLSTM模型的輸入。通過堆疊兩個LSTM神經網絡,一個處理向前的句子,另一個處理反向的句子。BiLSTM模型為每個字符學習左右的語義信息。然后通過對帶注釋的數據進行訓練,根據字符的語義對字符進行分類。
BiLSTM模型的輸入是預訓練的字符語義向量,可以通過基于詞嵌入的字符語義編碼算法獲得,輸出是與每個字符的預定義信息相對應的權重分布值 字符。從理論上講,通過為每個字符選擇權重值最高的類別,可以提取信息項。但是,BiLSTM模型的預測結果并非100%正確,并且可能沒有出色的權重值。為了優化預測性能,在BiLSTM輸出層上附加了一個CRF層。通過使用CRF層,可以消除不符合語法規則但具有最高權重值的情況。
無論是語義編碼還是LSTM模型訓練,都需要大量的訓練樣本。由于訓練樣本的標注需要大量的時間和勞動成本,使得訓練數據更加有限。因此,為了擴大樣本數據,設計了一個基于交叉組合的數據增廣算法來自動生成更多的訓練數據。
第一步,根據預先定義的信息抽取目標,對小樣本數據集進行手工標注;第二步,收集所有貼有標簽的信息項目,并根據項目類別將它們分成不同的組;第三步,消除初始訓練數據集中所有句子的信息項,生成句子模板;第四步,隨機選擇一個句子模板,從收集到的信息項組中,按照被淘汰項的類型重新分配信息項,生成新的句子。該過程如圖3所示。

圖3 基于交叉組合的數據增強程序
如果初始小訓練數據集中有M條記錄,定義p種信息項目標。然后有p個信息項組,生成M個句子模板。對于每個句子模板,將有最多的(M-1)p個新句子。因此,通過設計的基于交叉組合的數據增強,能夠生成M(M-1)p新的標注記錄。
為了驗證所提出的自動信息抽取小樣本訓練框架,首先建立了一個小型事故新聞報道中文數據集。首先,將初始數據集直接用于模型訓練,然后根據預測結果,針對預測精度較低的目標,利用所設計的交叉組合增廣算法合成目標數量較多的新句子。然后利用增廣數據集對預測模型進行再次訓練,對訓練精度、召回率進行交叉驗證評估。
本案例一共收集兩個數據集,第一個數據集共包含95個建筑事故新聞報道。第二個數據集包含從互聯網上收集的50個事故新聞報道。7個典型的信息項被標注為信息項提取的目標。它們是報告的事故的概況信息,包括日期、地點、事故類型、原因、傷亡情況,以及報告中涉及的組織。所定義的7個提取目標的標注和說明如表1所示。由于一個信息項可以是由幾個字符組成的短語或句子的子部分,因此應該確定上下文中信息項的邊界。

表1 定義的信息項的編碼和含義
對于文本數據,每個字符都有一個代碼。第一個數據集用于評估數據增強后模型的訓練性能和可靠性。第二個數據集用于評估模型的魯棒性。這兩個數據集都是手工標注的,表2給出了數據集的總結。

表2 數據集中的每個信息項計數
由于以B-開頭的代碼表示信息項的首個字符,而I-表示項內容字符,因此以I開頭的代碼數量要比以B開頭的代碼數量大得多。
利用TensorFlow深度神經網絡平臺實現了BiLSTM-CRF模型。該平臺提供了預定義的LSTM單元,可以簡化實現。構建的BiLSTM-CRF模型的概要如表3所示。

表3 BiLSTM-CRF模型訓練參數
在初始階段,第一個數據集中的95條記錄僅包含222個句子,總共生成214個句子模板。由于數據集樣本較小,對于每個信息抽取目標,條目的數量非常有限。特別是對于“單位”項目(OR)只有6個目標,“原因”項目(CA)只有43個目標,“事故地點”項目(LC)只要62個目標,這使得模型在這三個信息項上的預測準確度明顯弱于其他信息項。
因此,通過選取包含OR、CA和LC項的句子模板,共選取97個句子模板作為數據擴展模板。其中有4個OR相關模板,40個CA相關模板,57個LC相關模板,有些模板可能同時包含一個或多個目標?;谶@97個模板和從初始數據集中提取的信息項,將生成一個更大的數據集。結合初始數據集,最終生成的數據集包含16 392個句子,每個信息項目標的詳細計數如表4所示。與 B-OR項目的目標數目由6個增至4 380個,B-CA項目由43個增至1 193個,B-LC項目由62個增至17 306個。

表4 增強數據集中項目計數
模型的檢測精度隨訓練過程的變化如圖4和圖5所示。由于數據的增強減小了訓練樣本中目標比例的差異,使得模型對各種目標檢測的訓練更加穩定,在訓練過程中沒有明顯的波動,這也使得模型收斂速度更快。在比較以B-和I-開頭的項目的訓練進度時,以I-開頭的項目收斂速度更快。在2個訓練周期后,平均準確率達到0.9,而在超過7個訓練周期后,除B-CA和B-OR外,以B-開頭的項目準確率達到0.9。產生此結果的一個原因是,以B-開頭的項的標記僅表示信息項的第一個字符,而以I-開頭的項的標記表示信息項所包含的所有字符。說明訓練數據集的大小直接影響訓練精度。

圖4 信息項首字符的提取精度

圖5 信息項中間字符的提取精度
為了驗證模型的魯棒性,在增強數據集上進行了六-折疊交叉驗證,測試的準確率和召回率分布如圖6所示。除CA項外,其他項的檢測準確率和召回率收斂為1。雖然CA項目檢測的準確率和召回率有0.2范圍的波動,但準確率和召回率的平均值均高于0.98。交叉驗證表明,通過增強數據訓練,該模型能夠很好地檢測到預定義的目標。結果表明,所設計的交叉組合算法可以提高模型的性能。

圖6 交叉驗證的檢測精度與召回率
由于增強數據集是人工合成的,為了驗證模型在真實數據集上的性能,第二個數據集被用作測試數據集。表5和表6列出了模型的初始數據集以及增強數據上的訓練后的檢測結果的對比。結果表明,所有預定義的目標都能很好地檢測到。

表5 初始模型檢測結果

表6 增強模型檢測結果
值得注意的是所有標簽結果的檢測,通過增強數據訓練后得到了有效的提升,特別是對于OR、CA項目,初始模型幾乎無法進行檢測。但對于增強后的模型B-OR 達到了 0.43, I-OR為0.31, B-CA為0.33, I-CA為0.43。通過結果對比,基于交叉合并的數據增強方法有效地提升了模型的魯棒性。
提出了一個基于自然語言處理的小樣本訓練模型,以建筑工程行業中安全事故報道為案例對模型進行了研究,得到如下結論。
(1)設計了一種字符語義編碼集成的深度神經網絡,建立了一個自動信息提取模型。由于采用了字符編碼,省去了分詞過程。因此,所設計的模型能夠與書寫語言系統的特征保持獨立。
(2)提出了一種基于交叉組合的文本數據增強算法。通過交叉和組合操作,可以從初始數據集生成新的記錄。利用句子模板保存標注信息。因此,本文提出的數據增強算法可以對數據集進行增強,無需更多的人工標注。
(3)以建筑工程事故報道數據集為例進行了研究。測試結果驗證了所建立的自動信息提取模型的性能,并對所提出的小樣本訓練框架進行了評估,該框架能夠很好地處理小樣本訓練,具有較高的可靠性和魯棒性。