米仁沙·艾尼
(喀什大學計算機科學與技術學院,新疆 喀什 844000)
在對數據進行處理時,首先要將其轉換為計算機可以識別的格式。由于不同的數據庫中存在大量相同或相似的數據,所以需要使用一定的方法來消除這些重復和冗余的部分,從而使得數據更加簡潔、規范。目前最常見的方式是利用命名實體識別技術來達到這一目的。命名實體識別就是通過分析語料庫中的詞與詞之間的聯系,找出其中所隱含的語義信息,并且能夠準確地描述出該詞語的意思。因此,本文選擇命名實體識別技術作為主要的研究對象,以便獲得更為精準的結果。命名實體識別主要包括以下幾個步驟:第一步,確定一個領域;第二步,收集相關資料;第三步,構建知識庫;第四步,建立模型。在進行命名實體識別時,首先要對語料庫中所有的句子進行分句處理,然后再將其轉化為相應的結構化形式,最后借助計算機程序自動完成這項工作。
本文將從醫療文本中獲取到的大量信息進行分析、處理和總結后,提取出與醫療相關的命名實體。在對這些信息進行分類時,需要先確定哪些是屬于命名實體范疇內的內容,然后再去尋找與其對應的其他類別的信息。因此,首先要明確什么是命名實體以及它們之間存在怎樣的關系,為后續工作做鋪墊。本文通過引入BIESTRACK(Bidirectional information extract ion from Embeddings,從嵌入中提取雙向信息)模型來解決這一問題。該模型主要包括兩個部分:第一個部分就是對輸入文本進行預處理;第二個部分則是利用BiLSTM(雙向長短期記憶單元)模型對文本中的命名實體進行識別并輸出其名稱。在此基礎上,我們可以得到一個關于醫療領域的命名實體集合。其中,每行代表一個實體,每列代表一個實體與另一個實體之間的關系。
在對醫療領域進行研究時,需要從大量的文本中提取出相關的知識。因此,本文將利用機器學習技術來分析這些文本中所包含的信息和規律,并從中獲取有用的知識。為了更好地實現這一目標,我們首先要構建一個用于識別命名實體的分類器CRF-SVM。由于不同類型的命名實體之間在一定程度上存在聯系,所以可以使用一種特殊的方法來表示它們之間的關系。
在對醫療領域進行研究時發現,不同的實體之間可能存在著某種關聯。為了能夠更加全面地描述這種關系,本文引入詞向量來表示實體與實體之間的語義關系,并將其作為模型中的一個重要參數。因此,本文提出一種基于CRF和Word2Vec的命名實體識別方法(CRF+Word2Vec),用以實現對醫療語料庫中文本的自動分類任務。首先利用SkipGram算法從訓練集中獲取初始化的詞嵌入矩陣;然后使用TextCNN提取出句子中每個單詞對應的詞向量;最后通過計算得到每條序列的概率分布函數P(x|θ),其中θ是指序列中所有詞語出現的頻率,即該序列所包含的實體數量。
在醫療文本中,有很多與疾病相關的名詞和動詞。這些詞可以作為一個單獨的實體來處理。因此,我們將這種方法稱為“命名實體”(Named Entity)識別。本文使用了一種新的技術CRF-Bert來提取醫療文本中的實體名稱,即命名實體識別(Named Entity Recognition)。該方法首先對句子進行分片,然后通過分析每個片段之間的上下文關系,獲得每個單詞的含義以及它們之間的相互關系,最后利用已經訓練好的模型生成相應的規則,以便能夠自動地識別出文本中的實體及其屬性。
本文使用的是由復旦大學開發的中文醫療語料庫。該語料庫包含了大量與醫學相關的文本信息和結構化知識,并且已經被廣泛應用在各種領域中,如自然語言處理、機器學習等方面[1]。因此,我們可以利用這些豐富的資源來構建一個適合神經網絡訓練的醫療命名實體抽取的數據集。通過對現有文獻進行分析發現,目前還沒有學者提出過將關系作為輸入向量的方法,如果能夠把這種關系引入到命名實體識別任務當中去,就會使得整個系統更加完善。
在對醫療領域進行研究時,首先要做的就是獲取相關的數據。本文所使用到的數據是由“醫療”“命名實體識別”和“關系”組成的三元組形式,其中“醫療”指的是與該任務有關的所有信息;而“命名實體識別”則表示了該任務中需要用到的各種方法;最后一個“關系”則代表著這些信息之間存在的聯系。因此,我們將這三個元素作為輸入向量,并通過訓練來構建相應的模型,從而來完成整個任務,具體介紹如下。
(1)醫療數據集。本文所用到的數據來源于中國知網(CNKI)數據庫,從中選取其中部分文獻作為樣本庫。同時,還要保證每個樣本都包含一定量的實體名稱以及對應的屬性詞,這樣才能夠更好地滿足實驗要求。
(2)Doc2Vec模型的搭建。在進行模型搭建時,首先要對原始語料進行去噪和歸一化操作,然后再利用TF-IDF算法計算出各個詞語的權重值。由于篇幅有限,具體實現過程不再贅述。
(3)關系提取。實體與實體之間是有關聯的,所以需要把這些關系提取出來,以便后面使用。
(4)命名實體識別。將上一步中得到的結果輸入到Softmax分類器中進行訓練學習。
(5)模型評價。通過準確率、召回率等指標對模型效果進行分析評估。
在對文本進行處理時,需要將其轉換為計算機能夠理解和處理的形式。而這種轉化過程就是命名實體識別(NER)。目前已經有很多關于命名實體識別的方法,但是這些方法都存在一定的局限性,因此本文采用了一種新的方法——CRF(條件隨機場)來實現命名實體的識別。
在對醫療領域中的命名實體進行分析后發現,這些實體之間存在著各種各樣復雜的關系。為了能夠更好地利用這些信息來提高醫療領域中文本信息的處理效率和準確率,本文采用一種新的命名實體識別算法——CRF(條件隨機場)。該方法是由Liu等人提出并且已經被廣泛應用到各個領域。它主要通過建立一個包含所有可能出現的命名實體以及其上下位詞、屬性特征等相關數據的語料庫,然后使用神經網絡模型對語料庫中的實體與實體之間的關系進行學習訓練,最后得到最優化的結果[2]。這個過程可以看作是一個不斷優化的過程,也就是說隨著實驗次數的增加,模型會逐漸接近真實情況,從而達到最理想的效果。因此,本文選擇使用CRF模型來完成醫療領域的命名實體識別任務。具體步驟如下:首先將收集到的文本信息輸入到構建好的語料庫中;接著利用BiLSTM層和雙向GRU層分別提取出每個句子中的實體及其上下位詞、屬性特征等信息;再用CRF模型對這些信息進行處理,最終輸出命名實體識別的結果。
本文使用的是由復旦大學開發的中文命名實體識別(Chinese Named Entity Recognition)數據集。該數據集包括了20萬條實體對以及對應的關系和實例。其中有5%左右的實體沒有被標注出來,因此在訓練時會將這些實體剔除掉。為了方便起見,我們只保留了80%的實體作為實驗對象進行研究。結果顯示,不同類型的實體其命名方式存在較大差異。例如,“人名”“地名”等都可以直接用漢字表示;而“機構名”則需要先轉化成英文再翻譯過來。此外,還有一些實體雖然名稱相同但實際上卻并不屬于同一個類別。所以,如僅使用一個詞去代表所有的實體顯然是不合理的,必須要結合上下文才能夠更好地理解它們之間的區別。本文采用的數據集中包含了26萬條語料(每種類型的實體各選取一萬),并且已經按照一定規則對語料中的實體及其關系進行標記。在本次實驗中,我們將使用其中的50%作為訓練樣本來構建模型,剩余的50%用來驗證模型的效果。由于醫療領域的命名實體數量較多,因此選擇合適的方法顯得尤為重要。目前,國內外學者針對這一問題提出了許多不同的解決方案,如:CRF、LSTM等。
為驗證所構建模型的效果,將其與傳統方法進行比較,并采用準確率(Accuracy)、召回率(Recall)以及F值作為主要評價指標來衡量不同模型在醫療領域中命名實體識別任務上的性能。其中準確率為正確識別出的實體數量占總數的比例;召回率為正確識別出的實體數量占所有被預測成實體的數量之比;F值是指精確度和召回率兩者加權調和平均值,即:F值越大說明模型越好。相比于其他兩種方法而言,BiLSTM_CRF模型具有最高的準確性,同時也能夠達到較高的召回率及F值,因此該模型更適用于醫療領域的命名實體識別任務。
在本次實驗中,使用了Python語言、TensorFlow框架以及Keras深度學習庫。其中,Python是一種通用型計算機程序設計語言;TensorFlow是一個開源機器學習框架,它可以讓開發人員方便快捷地構建和訓練自己的應用程序,而且其提供的API非常豐富,能夠滿足各種各樣的需求;Keras是一個用C++實現的深度學習工具包,具有很好的擴展性,同時也支持多種編程范式,本文采用Pyhton作為后端平臺進行模型搭建,并將模型部署到Numpy計算平臺上運行。此外,還需要對數據集進行預處理操作以便于后續的實驗工作。首先,要把文本轉換成向量形式存儲起來,然后再通過分詞器對文本進行分句,最后得到相應的標簽序列。在這里我們使用了jieba分詞組件,這是由百度公司推出的一款自然語言處理軟件,該系統不僅功能強大、界面友好,而且速度快,占用內存少。它可以自動識別句子中的單詞和短語等信息,并按照一定規則生成對應的標簽序列。其次,將訓練集中的所有樣本都輸入到已經構建成功的神經網絡結構中去,這樣就完成了整個命名實體抽取任務。為了驗證本文提出方法的有效性,采用準確率(Accuracy)、召回率(Recall)2個指標來衡量模型性能。其中,TP指被正確預測為實體的數量;FP表示被錯誤預測為實體的數量;FN則是未出現過的實體。最后,對實驗結果進行可視化展示。
在本次實驗中,使用了2個不同的數據集進行測試。一個是來自NIST Web of Knowledge數據庫中的醫療文本數據集(Dataset);另一個是來自CMU Penn Biomedical Laboratory的醫學文獻數據集(Documents)。其中,前者包含10萬條記錄,后者包含50萬條記錄。為了驗證模型的有效性,將這兩個數據集中的實體分別作為訓練和預測對象。由于本文所采用的模型是一種通用型的命名實體識別方法,所以對于每個數據集來說,都需要單獨構建相應的模型來完成任務[3]。因此,針對每一個數據集,我們首先通過人工標注的方式獲得實體名稱,并按照一定的規則建立起該實體與其他實體之間的關系,然后再利用這些關系生成對應的語料庫文件。最后,利用上述模型進行實驗,得到最終的評價指標。

圖1 基于命名實體識別工具的抽取技術與其他技術的對比實驗圖
綜上所述,本文設計了一種基于BiLSTM編碼解碼器結構的命名實體關系抽取模型,并通過實驗證明其具有較好的性能。最后,對未來相關工作做出了展望:①進一步完善命名實體識別模型,使得模型更加符合實際應用場景,從而提升模型的實用價值。②將更多注意力放在命名實體關系抽取方面,以期為后續研究提供參考依據。■