NLP信息提取工作記錄

主要任務

將各個醫院不同格式的病歷中的信息提取出來,這些信息包括姓名、出生地、年齡、疾病史、出院情況、出院有什麼症狀,有哪些治療歷史等信息。信息提取後還應將這些信息按照項目一個個的存儲到mysql數據庫中。

 

具體實現過程

由簡至繁的的描述。簡單和複雜的區別主要由待提取的信息的複雜度來描述。

1,有限可窮舉情況

最簡單的爲性別,只有兩種匹配,男、女。更多的則是婚姻情況,如已婚、未婚、離異等。再多的則是職業,如工人、農民、醫生等,職業的可能性可以達到幾十種。再多一些的可能是手術名稱,有幾百種,醫院名稱,上千種。一般來說利用上千個醫院名同時匹配時間就會很長了。

2,關鍵詞的提取

上面的性別信息男女直接敲上去就可以了,但是你可能沒有一個庫,這個庫包含所有的手術名或醫院名。如何得到這個庫呢?一般來說會針對具有某些特徵的語句進行分詞詞頻統計,通過詞頻來賽選出目標詞庫。

3,基於概率論的方法

自然語言處理最基本的算法就是n-gram,而分詞1-gram則應是最基礎的。基本上自然語言處理傳統方法都是圍繞求當前的序列的概率最大來操作。如在分詞時,找到一個組合方式,讓這個句子出現的概率最大;詞性標註時,找到一個最優的詞性標註,讓此詞性標註的概率最大;條件隨機場、給定這句話,給出一個概率最大的詞性標註。

在信息提取時,如在查找手術名稱時,我們會預測截斷詞,如一般手術名稱中,術字都是末尾字,因此會正則表達式找出所有以術字爲尾的語句,然後通過統計的方法找到應在句子前面的哪裏截斷,找到概率最大的那個截斷詞,然後取截斷詞和術字中間的部分作爲手術名稱。

4,傳統方法與機器學習方法的區別

傳統方法如1-gram可以通過詞頻統計得到一個轉移矩陣表格,但是有可能在實際應用中遇到沒見過轉移情況,遇到這種情況時一般會採用一些折中的方法來解決。因此用機器學習的術語來解釋即是傳統方法基本上沒有泛化能力。而由於機器學習模型是連續的預測模型,因此對未見過的情況可以認爲它會有相關的泛化、推理能力。

 

 

 

 

 

 

1,簡單正則表達式提取

姓名、出生日期就是直接正則表達式,一般格式都是姓名:XXX,因此如此方式正則表達式提取。

 

2,關鍵詞提取

如職業、民族信息,職業、醫院名的詞很少,如(工人、農民、醫生、公務員。。。。)。民族也一樣,因此直接匹配病歷中的相關詞就是病人的信息,一般是這樣。

 

3,針對區域的關鍵詞提取

提取當前醫院中的手術歷史情況時,有些病人的病歷中會有上次在別家醫院的手術記錄,因此直接手術名稱全文匹配會導致將上次的治療也混入到本次治療中。因此應首先講搜索區域定位到治療的那段文字上,或者刪除掉治療歷史的相關部分後再進行信息提取。

 

4,找到關鍵詞

結合固定區域的方法,再利用分詞和統計方法,即可以提取到關於一個項目的關鍵詞。如找所有病例中和出院情況這個詞距離近的詞(本文距離近是指在文中詞與詞之間中間的詞的數量)。找到後分詞、統計詞頻,再去掉的、是這些無意義的詞後,按詞頻排序即可得到關鍵詞。

 

5,關鍵詞之間的相關性

可以以逗號和句號和分號將所有的語句分開,分開後,我們要得到一個人某些部位的情況,如眼睛清涼、身體是否有囊腫。簡單來說就是通過查看同時出現的次數來賽選,同時出現越高說明相關性越大。複雜來說得到各個詞同時出現的頻率統計,得到一個矩陣,此矩陣表示了相關性

 

 

正則表達式、精通。主要用於一些模式很少或者模式很多但是擁有所有模式的元素的情況來使用,如查找文檔中的性別、職業等信息時。還有就是提取某些關鍵詞相關的信息時候可能會用,如找某些身體器官相關的疾病,限定統計範圍。

概率論、條件概率、馬爾科夫鏈、協方差矩陣、詞頻矩陣、PLSA、LDA算法。

PLSA、LDA相關深度學習算法爲CBOW或skip-gram。這兩個word embeddding的主要差異是輸出部分,自然語言處理的主要難點就是詞太多導致矩陣或向量的維數特別大,比如我們項目的詞的數量就達到上萬,賽選掉詞頻低的和是、的類的詞還有好幾千。

CBOW或skip-gram主要是訓練1-gram,即是一階馬爾科夫鏈,訓練一個模型,給定一個詞,預測下一個詞的概率,最後僅使用將詞抽象爲特徵向量的矩陣。

而PLSA和LDA類似,給定一定數量的文章,再給定一個主題數量,用類似聚類的流程訓練模型,最終收斂。實現過plsa模型,一開始是網上copy的,但是其中矩陣運算都是for循環,因此修改爲矩陣運算,但是擬合速度仍舊很慢,修改爲用gpu進行矩陣運算也是很慢,而gensim很快,查找原因是採用稀疏矩陣算的。

PLSA和LDA是項目搜索引擎要用,擴充用戶的搜索詞用的。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章