山東科技大學測繪與空間信息學院 王鐘岳 劉洋
在隨著人工智能的快速發展和大數據時代的到來,如何在大量的數據中快速的并準確的獲取我們所有需要的數據成為了現在計算機技術發展的重要方向,由于中文地名的復雜性對當前的地名地址識別工作起到了較大的困擾。本文利用基于深度學習的模型對中文機構名的識別和匹配進行研究,先通過CRF++訓練分詞模型,然后通過有限狀態機模型結合的狀態轉移函數,對分詞后的地址進行識別,能夠準確地對地名地址進行識別,研究結果有很大的現實意義。
隨著地理信息和大數據的快速發展,如何準確的識別出我們需要的信息成為現在研究的關鍵,中文地名地址的命名實體識別是自然語言處理的一項重要任務[1]。命名實體識別是進行信息匹配的前提,命名實體識別是對文本中的重要名詞和專有名詞進行定位和分類的問題,地名和我們的生活緊密結合在了一起,所以如何準確并快速的檢索到我們需要的地名成為了現在研究的關鍵。
中文地址成分識別是地址解析中地址分詞的一個領域,歸類總結,可以將這些方法分為以下3 個類別:基于詞典、基于地址規則、基于規則和統計相結合。梁南元[2]教授最先提出了基于詞典匹配的方法。于濱[3]提出了一種先通過訓練樣本來建立起標準地址庫,然后再通過推理機對模糊地址進行判斷的專家系統,這種方法的缺點在于標準地址庫規模的大小嚴重影響系統的識別率。2006 年錢晶和張杰等提出了基于最大熵的地名識別方法[4],利用最大熵來進行訓練提取特征值,同時結合不斷變化的詞表和規則對地名進行識別,對于地名地址識別有很好的效果。孫存群等[5]提出了分級地址庫模型,簡化了實現流程,減少了維護分詞的步驟。鄔倫[6]等提出了基于條件隨機場的中文地名識別方法,通過統計地名用字的特征,設計特征模板,根據特征模板構建特征函數,從而完成命名實體識別。隨著有限狀態機模型的成熟,可以建立中文地址中存在的成分狀態轉換關系與狀態轉換函數,運用地址數據訓練狀態轉移概率,可大大減少各個地址要素之間的相互影響。因此,在解決地址成分識別的問題上,有限狀態機模型逐漸成為一種切實可行的方法。
地名的分類是進行地名識別的首要工作,地名應便于記憶,并能幫助運用者能聯想起地名與地理實體之間穩定的聯想關系。那些容易與特定地理實體建立起關聯,能生動地反映當地特點、體現地域文化特征的地名,因指位效能強而受到社會的青睞[7]。地名用字是地名構成的重要部分,根據不同的目的和原則,可以采用不同的地名分類法[8]。因此本文想要通過縮減地名中地址要素的分類,通過幾個大類對地名進行整體概括,包括了行政區劃、道路、居民區、地址、興趣點、組織機構名等一共6 大類作為有限狀態機識別狀態的基礎。

表1 中文地址要素分類Tab.1 Classification of Chinese address elements
現有的中文分詞方法主要有以下幾種:
(1)基于匹配的分詞方法。基于匹配的分詞方法又稱為機械分詞的方法。它是指按照一定的方法將需要分詞的字符串與詞典中的詞條進行匹配,完成分詞。主要有最大匹配法,最大匹配法包括正向最大匹配法、反向最大匹配法和雙向最大匹配法。
例如對于青島市直屬機關來說我們的詞典中有青島市、青島、直屬、市直屬、機關。進行正向最大匹配的時候第一個識別的詞語就是青島市,第二個詞為直屬,第三個詞為機關。結果為{青島市、直屬、機關}進行逆向最大匹配的時候識別的第一個詞為機關,第二個詞為市直屬,第三個詞為青島,結果為{青島、市直屬、機關},而利用雙向最大匹配算法的結果為{青島市、直屬、機關}。
(2)基于理解的分詞方法。基于理解的分詞方法就是讓計算機去理解學習人腦對句子的理解,從而進行分詞。它的主要區別與基于規則的方法的特點就是,再進行分詞的同時對語句的信息構詞以及相對應的語境進行理解,從而達到減少錯誤的出現。主要包括3 個關鍵,分詞系統、句子語義理解、總控制。在總控制的幫助下,分詞系統和語義理解系統對分詞結果進行檢查,減少錯誤的出現,模擬了人腦進行處理的過程,但它有一定的缺點,需要大量的語言知識和信息,再加上漢語知識的復雜性,很難將信息組織成機器可以學習讀取的形式。
(3)基于統計的分詞方法。基于統計的分詞方法就是在有大量已經分詞的數據的前提下,利用機器學習模型學習分詞切分的規律,從而實現對分詞任務的切分。對訓練文本中詞組合的頻度進行統計,計算他們之間互現的信息,根據他們出現的頻率從而認為他們構成了一個詞,也是一種無詞典的分詞方法。隨著各種大規模標注語料庫的建立,基于統計學習的分詞方法漸漸成為了主流的方法。
本文選擇利用統計的CRF++分詞方法,CRF++的分詞思路主要是通過對詞語進行標注,對句子中的字進行標注,既考慮了文字出現的頻率也同時考慮了上下文信息,具有很好的學習能力,而且對未登錄詞和具有歧義的分詞結果有較好的效果。
中文地址分詞工具采用條件隨機場的基本工作原理,CRF 將句子中每個單詞根據所在位置進行分類,是目前的主流序列標記算法[9]。CRF++把中文分詞任務看作是序列標注任務,通過BMES 四字標注法進行標注,B 代表詞首,M 代表詞中,E 代表詞尾,S 代表其他。
通常我們將等待分詞的語句稱之為輸入序列,分詞完成后的結果為輸出序列,所以CRF++分詞的目的就是:在給定輸入序列A 的條件下,找到輸出概率最大標注結果B。將分詞后的結果作為模型的輸入,輸入進本文的有限狀態機模型中。
本文的基本識別思路是:首先,利用中文地址分詞工具對地址串進行分詞標注;然后將分詞好的地址串依次打入有限狀態機模型,利用標注及特征詞完成成分級別的識別,若存在由一種狀態引出兩條方向的情況,則采用訓練好的轉移函數判斷分支權重,識別為權重較大的狀態。最后,利用構建好的驗證函數對狀態轉移進行驗證,判斷是否無誤。整個地址串成分全部完成有限狀態機流程,則完成成分識別。
作為在有限狀態機中最重要的部分,狀態轉換函數能夠識別各個地址成分中的特征標注及特征詞,按照特征詞來完成狀態的識別,并將其打入相應的狀態。而遇到在成分中不包含特征詞的情況下,這時候我們無法通過標注以及特征詞來判定該成分的狀態,也就是說此時會存在兩種及兩種以上的狀態轉移可能,所以狀態轉移分支權重這時候會起到很重要的作用。
當地址成分通過轉換函數進入某一狀態后,對于地址串中的行政區劃部分我們往往能夠做到準確的識別,但對于地址串后面的街道名、機構名等往往簡單識別會產生歧義。因此,本文特建立驗證函數,根據某一成分的后一個狀態來進一步驗證某一地址元素的正確狀態。
地址串根據轉換函數暫確定狀態后,需要進行進一步的驗證。對于地址串“a,b,c, d”,從左至右依次將成分輸入模型,輸入a 成分,根據狀態轉換函數暫定某個狀態A,此時成分a 進入待定驗證過程,進而根據下一個成分b 的狀態來進行判斷,是否根據狀態轉換關系能夠從a 到b,如果可以,則a 可以確定為狀態A,如果a 為終止成分,則a 也可以判定為獨立狀態A,下一步將輸入b 成分同樣進行驗證,否則的話,成分ab 則暫時被看為一個狀態B。
此時進入循環,將ab 作為一個成分輸入模型,ab進入待定驗證過程,如果根據狀態轉換關系能夠從ab到c 或者ab 為終止成分,則ab 可以看成一個獨立狀態,驗證結束。如果ab 不能夠到c,則將abc 暫看成一個狀態,繼續執行循環驗證abc 的狀態,從而完成識別。
本文的實驗語料與上文同樣是通過高德的開放數據API 的AddressComponent 對象,是從高德地圖上爬取地址成分識別實驗所需的語料。本次實驗總共爬取了山東省的地址數據總共11270 條的地址數據,三組模型都對這11270 條數據來進行識別測試,作為統一的實驗語料。然后輸入有限狀態機、HMM 和CRF 識別方法進行對比。
對于實驗當然是需要實驗評價的指標,本文將采用召回率、準確率以及綜合指標F 值[10]3 個指標來評價實驗以及做實驗之間的對比。
通過統計3 種模型的實驗結果,得到的測試結果如表2 所示。

表2 各模型實驗結果Tab.2 Experimental results of various models
地址成分的識別是地址匹配技術階段的第一步,也是利用地址信息導航以及定位系統的基礎性的一項技術,這些技術與人們的生活有著息息相關的聯系,對人們的生活有著重要的影響。
對于本文而言,主要的核心工作集中在以下幾點:
(1)對中文地名地址的成分進行分析,將中文地址進行分類;
(2)通過分詞對中文地址的成分進行劃分,更好的理解中文地址的構成成分;
(3)為了使有限狀態機起到更加準確的效果,本文還提出了構建驗證函數,建立判別條件來不斷驗證地址成分。地址成分通過有限狀態機轉換函數被判定為某狀態后,經過狀態驗證函數可進一步消除識別歧義,達到更好的識別效果。
基于有限狀態機模型的地址成分識別方法是具有一定優勢的,但是還存在需要改進的地方。
(1)地址的分詞采用CRF++訓練的方法,雖然準確率較高,但分詞的結果會影響后續標注的正確率。因此,在后續的研究中應該嘗試改進這一弊端,這需要大量的準確標注的數據。
(2)對于有限狀態機的驗證函數,應該不僅僅局限于通過后面的成分來進行判別,應該需要考慮多地址成分之間的關系,加大對地址成分構成的要素分析與統計,把握中文地址不同類別地址之間的差距與區別,在識別的時候能更好地把握地址成分的完整性。