徐萬民 李燕輝
摘要:詞性標注是自然語言處理的一個重要組成部分,只有正確的標注才能使機器對自然語言理解準確。目前的詞性標注系統只能對近距離的約束關系分析基本準確,若存在遠距離約束關系,系統基本無法識別。文章基于最大熵模型和遠距離搭配關系構建出的一種新的標注方法,可用于解決遠距離標注可能產生的歧義。
關鍵詞:自然語言;處理;詞性標注;遠距離標注
詞性(Part of Speech,POS)是詞匯基本的語法屬性,通常也可稱為詞類。詞性標注就是在給定句子中判定每個詞的語法范疇,確定其詞性并加以標注的過程。詞性標注是自然語言處理中一項非常重要的基礎性工作。詞性標注作為連接分詞與句法的中間步驟,它既能消除一部分由分詞產生的歧義,也能為接下來的句法分析提供正確的分析幫助。
目前大部分統計語言模型是N-gram模型,其模型簡單且有效,但是模型也存在缺陷。由于N值有限,模型只能處理短距離語言約束關系,不能有效處理長距離約束和語言遞歸現象,統計信息有時也不能反映真實的語言規律,這時,就會有歧義產生。
目前中文電子病歷還處于空白期,針對中文電子病歷的研究因為缺乏足夠的語料,研究一直在緩慢地進行。相比于通用的語料庫,電子病歷存在標準不統一、各個醫生的寫作習慣不同、存在簡寫或包含專業詞等情況。這些都無法依靠通用語料庫來解決。
本文內容主要從以下幾個方面展開:第2節主要介紹遠距離詞性標注的幾種歧義;第3節介紹這種標注歧義的解決方法;第4節介紹電子病歷與詞性標注的結合。
1.遠距離標注歧義
目前現有的詞性標注能解決大部分問題,但是針對歧義以及部分問題存在不足,采用Stanford NLP工具進行測試,進一步說明問題。
由于漢語存在一些固定搭配,例如:因為…所以…,不僅…而且…等。這些搭配本來應該無視中間出現多少詞,都應該保持詞性的不變,但現今的大部分模型是根據概率與統計的,考慮詞與詞之間的互信息最多也只可能考慮到當前詞的前后1-2個詞。也就是說當固定搭配之間存在一定距離時,詞與詞之間的聯系不強,基于統計的話概率可能不高,這樣對于詞性標注很有可能產生歧義,針對這種現象,筆者做了一些測試。
1.1固定搭配:一…就…
“一…就…”這種結構一般情況下將其標注為副詞詞性,例如下面這句話:
他/PN一/ADq:/VV就/AD是/VC 30年/NT
“一”在這里標注為副詞(AD)。從北京大學語料庫CCL中以“一…就…”這種結構提取出189個句子作為語料進行測試,結果發現:
(1)他/PN一/AD睡/VV就/AD很/AD難/AD被/SB叫醒/VV。
(2)他/PN一/CD睡/VV過/AS覺/VV就/AD精力/NN充沛/VA。
由上面幾個例子可以看出來,當一…就…之間只有一個詞的時候,對于“一”的標注都為副詞,標注正確。但是兩者之間有兩個詞的時候,系統可能將其識別成數詞。通過測試發現“一…就…”結構出現錯誤一般在將“一”的詞性由副詞詞性標注為量詞詞性,通過測試189個句子發現出現標注錯誤的句子有36個,正確率為80.9%。
1.2固定搭配:從…到…
從…到…這個常見的固定結構一般情況下將其標為介詞,以北京大學CCL語料庫中包含“從…到…”結構的751個句子作為測試語料,運用Stanford segmenter以及Stanford postagger作為測試工具,由此可以發現系統存在以下的情況:
(1)從/P北極/NR到/P南極/NR太/AD遠/VA了/SP。
(2)從/P北京/NR到/P西安/NR有/NE1000/CD公里/M。
由上面的例子可以看出,當“從…到…”之間連接的是一個詞的時候,“到”的標注一般為介詞詞性(P),這種標注正確,但是當中間詞過多時,就會出現以下情況:
(1)從/P寒冷/VA的/DEC北京/NR到/VV溫暖/VA的/DEC西安/NR有/VE 1000/CD公里/M。
(2)從/P有/VE北極熊/NN存在/VV的/DEC北極/NR到/VV企鵝/NN存在/VV的/DEC南極/NR太/AD遠/VA了/SP。
由上面的例子可以看出來,句子主要意思并沒有發生變化,但是通過增加修飾語,使的“從…到…”之間的距離發生變化,“到”的詞性由介詞(P)變成了動詞(vv),顯然存在標注錯誤。
可以推斷出這種錯誤是由于固定搭配之間的距離變遠了,使系統無法正確識別出來。測試了751個句子,發現存在“從…到”標注錯誤的句子有212個,正確率只有71.8%。
2.改進措施
針對以上情況,筆者提出以下方案。
2.1針對“一…就…”結構
通過上面的測試,可以發現:“一…就…”這個結構出現時,一般情況下,兩者都標注為介詞,但是,我們不能忽略以下情況:
(1)一個/CD三角形/NN就/AD是/VC三/CD條/M邊/NN。
(2)一個/CD凳子/NN就/AD是/VC四/CD條/M腿/NN。
當“一”后面接的是量詞的情況下,即使存在“一…就…”這個結構,也不能適用這種搭配,這里的“一”只能作為數詞(CD)成立。所以構建模型時不能忽視這種情況,因此,可以將特征函數定義為:
定義解釋為:當存在“一…就…”結構,先判斷“一”后面的詞性標注是否為量詞(M),若不是則標注“一”為副詞(AD);若是則標注為數詞(CD)。
2.2對于“從…到…”結構
“從…到…”結構可以看作是“from…to…”結構,一般可將“到”標注為介詞(P),但是,通過試驗發現這種結構也會存在一些特例:
(1)從/P資本主義/NN過渡/VV到/VV社會主義/NN。
(2)從/P原始社會/NN進步/VV到/vv現代/JJ社會/NN。
雖然有“從…到…”結構存在,但因為有“到”前面存在過渡這個動詞,所以這里的“到”標注為動詞(v)是合理的。構建模型時,仍需要考慮這種情況的發生。整合一下兩種情況,可以將特征函數定義為:
定義解釋為:當存在“從…到…”結構,先判斷“到”前面的詞性標注是否為動詞(vv),若不是則標注“一”為介詞(P);若是則標注為動詞(vv)。
但也可能存在這種情況:在/P從/P個體/NN學習/VV到/VV合作/BIN學習/VV的/DEC觀念/NN轉變/VV過程中/NN。
雖然“到”的前面接的是動詞(vv),但是個體學習和合作學習是類似概念,這里“到”與學習并不是修飾關系,個體學習和合作學習都應該為名詞(NN),這里屬于標注錯誤,若標注為名詞,這項規則依然成立。
3.詞性標注與電子病歷結合
目前國內外的詞性標注都是以有監督的學習方式作為主要研究方向,通過與規則相結合,增加領域詞典來解決語料匱乏造成的歧義問題。
通過收集電子病歷,可以發現電子病歷一般含有以下幾個板塊:
現病史:描述患者的現在病情狀況。過去史:記錄患者以往的病情狀況。各器官病史:描述各個系統有無不良癥狀。家庭史及個人環境:患者家庭是否存在遺傳病史和患者周圍環境因素對病情的影響。診斷結果:醫生根據病況對患者病情下定義。
通過對這些數據進行提取和分析,發現這些語料存在以下特點:
專業詞匯過多:腦梗塞、淺表淋巴結等;句法結構過于簡單:無強直、無反跳疼、無鼻出血等;存在特殊符號及專業英文字符:質中觸疼(+)、HBsAg、抗HCv等。
4.對于固定搭配無法理解:一…就…與從…到…
前3項特點可以通過擴充領域詞庫或者建立特定領域詞庫來解決,句法結構簡單可以在句法分析中擴充完整結構來彌補分析不準確。本文主要以遠距離詞性標注來解決固定搭配產生的歧義。
固定搭配歧義一般出現在患者過去病史、現在病史以及患者周圍環境這3個模塊,例如下面這些句子:某患者一接觸堅果類食物就會引發過敏癥狀;患者發病癥狀從2015年6月3日一直持續到2015年6月5日;患者家庭是從血吸蟲高度流行區域搬遷到現在所在地等句子。如果只是以通用系統進行分析處理,大部分系統無法識別出這種固定搭配結構。通過添加上文提到的兩個模型,能有效地處理這種固定搭配引起的分析錯誤,為計算機正確識別和處理電子病歷奠定基礎。
5.結語
本文針對遠距離產生詞性標注錯誤的案例進行分析,在Stanford NLP工具的基礎上提出了一種對于遠距離的標注方法,先對固定搭配所出現的語言現象進行分析,總結出其規律。根據總結出來的固定搭配構建一個規則庫,當系統匹配到固定搭配時,針對相應的規則對其進行精確標注。將總結出的規則庫用在電子病歷上進行分析,針對某些特殊的固定搭配有著良好的識別能力。但由于目前統計的固定搭配還不算完整,所以后期工作還要繼續完善相應的工作。