余 俊,于文年,彭艷兵
(1.武漢郵電科學研究院,湖北武漢 430070;2.南京烽火天地通信科技有限公司,江蘇南京 210019)
外賣、網上購物、共享單車等互聯網資源的普及化和大眾化,衍生出了大量的中文地址信息,中文地址信息中包含著一個人每天的行動路線和個人信息,這類信息若可以獲得高效利用,將會是一筆極其寶貴的資源,使得對中文地址信息解析[1]的研究顯得尤為重要,而中文地址標準化是對地址信息解析的基礎,這些都離不開中文地址分詞。
不同于英文單詞,由于中文有著自身的語言屬性,不同詞之間缺乏顯著的切分憑據,而且中文詞語本身有語法結構[2],中文地址信息容易出現歧義、缺失、冗余[3]等情況,使得該分詞面臨巨大困難。如今,國內外很多學者在該領域也展開了較為豐富的研究。
將字符串作為基礎的匹配[4]方法,能按照一定規則掃描相關詞條,直至找到需要匹配的字符串,實現簡單,但是無法識別匹配速度偏慢且有歧義和缺失的字段;針對該方法存在的缺點,文獻[5]中將標志詞作為基礎,搭建相應地址分詞算法,該方法可以實現正向自適應長度匹配,并針對缺失的地址要素,給出相應的補償,從而解決分詞問題,可以有效消除字段缺失,進一步降低了時間復雜度,從而提升匹配速度,但是無法解決未登錄詞[6],且完全依賴于字典,對字典的長期維護也是一個極大的問題。
為了更好地提升中文地址分詞的性能,文中將ELMo[7]模型應用于中文地址分詞中,并借助于實驗對該分詞模型的有效性進行相應驗證。
文中的研究數據由南京烽火星空科技有限公司提供,抽取了50 000 條南京市地址數據信息作為數據源,數據中包含了不同的地址層級。
由于數據源中地址的不規范性,存在大量重復、字段缺失、地址錯誤且含有字符等信息錯亂的地址,為了對復雜多樣的地址展開高效的數據處理,借助于文獻[8]分布式框架對數據展開分析與并行處理,包括諸多非結構、結構化數據的處理。文中使用南京烽火星空科技有限公司自主研發的ETL[9]數據治理工具對數據進行處理,以保證測試數據集有較高的質量,減少由于數據源的原因導致實驗結果不理想。
通過采用sql+的模式下發任務,并通過開發自定義函數(udf,udaf)來定制化地處理樣本數據,以便針對數據集中各種數據進行去重、刪除錯亂地址和補充缺失字段。
一條地址往往包含多個地址要素,將這些地址要素提煉出來,為方便起見,主要將標準地址劃分為12 個地址層級:國家、省、市、區(縣)、街道、社區、路、號、小區、樓棟號、單元、樓層、室;每類都有其對應的特征詞,地址層級如表1 所示。

表1 地址層級
ELMo 模型通過采用兩個階段的方式對整個模型進行訓練。第一階段主要是利用語言模型對其進行預訓練;第二階段是在完成下游任務之時,借助預訓練網絡,通過單詞網絡對有關Word Embedding 進行提取,并將其視作新的特征補充到下游任務之中[10]。
循環神經網絡被廣泛應用于命名實體識別[11]、中文分詞、智能推薦等自然語言領域,經典的RNN[12]模型中因存在某些原因產生了無法解決長時記憶的問題,比如梯度消失和梯度爆炸。而LSTM[13](Long-Short Term Momory neural Network)通過對RNN 算法進行改進,解決了長期依賴的問題。
該模型還運用了多層LSTM,同時還新增了后向語言模型,即為backward LM,當前階段的輸出通常情況下不僅與之前的狀態有關,還可能與未來的狀態有關。譬如對一句話中的重復單詞進行預測,不僅需要根據當前狀態進行判斷,還需要考慮之后的內容,真正做到基于上下文判斷。
該模型中的預訓練過程,不僅對單詞的Word Embedding 進行了學習,同時還能很好地掌握雙層雙向LSTM 網路結構。ELMo的雙向LSTM 模型如圖1所示。

圖1 ELMo的雙向LSTM模型
前向LSTM 結構如式(1)所示。

后向LSTM 結構如式(2)所示:

將前、后向語言模型相結合,同時還對該模型的對數最大似然函數最大化后得到:

其中,θx表示token的參數,θs表示softmax 分類的參數,分別表示前、后向語言模型LSTM 層的參數。
ELMo 模型訓練好之后,在下游序列中會產生不同的token,即:

下游任務充分利用了各種表示,同時利用了有關分配權重,即:

式中,softmax 通過歸一化處理之后得到的權重是stask,而且準許任務模型縮放,并得到完整的ELMo向量γtask,其也是標量參量。
對于LSTM 而言,利用訓練方法可以得到需要遺忘或者需要記憶的信息,然而借助它進行建模時,存在一定的局限性,即很難借助于編碼形式獲取由后往前的信息,這些信息會丟失,然而借助BiLSTM 模型就能很好地捕捉雙向語義依賴,不僅保存了向前的上下文信息,還考慮了向后的上下文信息,因此其在對中文地址分詞中性能更優。
在序列標注任務中,BiLSTM-CRF 模型能取得極好的效果,BiLSTM-CRF 在時間上的展開圖如圖2所示。

圖2 BiLSTM在時間上的展開圖
即便神經網絡有著較高水平的非線性擬合功能,且能得出較佳的模型,然而該模型僅僅考慮了標簽上下文關系,只需要輸出概率最大的標注,沒有考慮到輸出標注間的關系。
為此,借助于CRF[14]開展詞性標注,由于要對臨近單詞詞性進行標注,因此,對于序列CRF 模型而言,借助于BiLSTM 模型的狀態序列向量,將其用作CRF 層輸入,同時運用維特比算法,解決訓練和解碼問題,得出最好的地址標注序列。
對于BiLSTM-CRF 模型而言,要明確輸入序列,輸入序列用X表示,而輸出的相應序列是y,預測輸出為:

S(X,y)為計算出來的最終得分,通過維特比算法計算出最好的地址標注序列。
對于BiLSTM 而言,在學習語句時,由于模型大小的約制,使得關鍵信息出現丟棄問題,為此可以在該模型中新增CNN層,并提取當前局部特征。而且這種方式還是典型、高效的方法,可以對詞的形態信息進行抽取,譬如詞的后、前綴等。又由于BiLSTM 得到的128維是整個地址對當前位置的信息,而CNN得到的是當前位置前后窗口大小的局部信息,兩者拼接相當于綜合考慮了全局信息和局部信息。
圖3 中,BiLSTM的I、O 層都運用了dropout 層,結果顯示它可以明顯提升模型性能。

圖3 基于BiLSTM-CNN-CRF的中文地址
實驗的主要環境參數如下:CPU 為Intel(R)Core(TM) i7-9750H CPU @ 2.60 GHZ 2.59 GHZ,GPU:NVIDIA GeF orce GTX 1660 T-i with Max-Q Design,操作系統為Window10 64 bits,而且使用了Tensorflow[15]Bi-LSTM 模型和allennlp 下的ELMo。
模型訓練參數如表2 所示。

表2 模型訓練參數
因為ELMo 預訓練模型權重通常比隨機初始化權重更優,為此在具體修改時要更具精細性,文中使用更小的學習率來應對訓練時的表現,使用0.15的學習率能使效果更好;在遴選dropout 層時要慎重進行選擇,如果dropout 層過低會產生過擬合問題,在隱藏與輸入層中,可以運用兩層的dropout,就能使模型的泛化能力得到明顯提升;使用正交化優化策略使方差和偏差兩者保持均衡,通過增加網路的深度、訓練時間長度來減小偏差,以及通過增加訓練數據、正則化等方式來降低方差,循環該過程,直至達到平衡。
在標注詞性時,可以將其詞位標注細分成4、6,詞位標注也會對分詞性能造成影響。
該指標主要涉及到均值、精確率與召回率,計算公式如下:

式中,F1為均值,P為精確率,R為召回率。
在以上實驗環境下,使用如下訓練模型對同一測試樣例數據進行地址分詞性能對比,選用隨機抽取已經治理好的南京市的50 000 條地址作為測試數據集進行分詞性能對比;在表3 中,BiLSTM-CRF 比單獨使用BiLSTM 高了接近1.2 個百分點,可能是由于CRF 能夠限制模型標注間的輸出,BiLSTM 能夠雙向記憶,能夠記憶過去的地址信息和未來地址的信息;整體的實驗結果表明BiLSTM-CRF 在地址分詞中有很好的性能,除了BiLSTM 和BiLSTM-CRF 之外,ELMo 模型的召回率均大于90%,原因可能是測試數據集中存在較多的歧義地址,ELMo 模型在處理地址歧義方面有天然的優勢。加入了CNN 模型之后,效果略有增強。

表3 模型整體分詞性能對比
表5 中,1~6 分別表示BiLSTM4 詞位標注,BiLSTM6 詞位標注、BiLSTM-CRF4 詞位標注、BiLSTM-CRF6 詞位標注、ELMo-BiLSTM-CRF4 詞位標注、ELMo-BiLSTM-CRF6 詞位標注,使用同樣的測試數據集分別對1~6 模型進行性能測試,結果表明,采用6 位詞性標注的性能均比采用4 位詞性標注的分詞性能好。

表4 模型訓練時間

表5 不同標注下模型分詞性能對比
文中將地址信息按照地址層級進行分級,并使用標注體系進行中文地址標注,根據ELMo、BiLSTM、CRF 模型特點,將幾者結合起來并進行實驗對比,結果表明,按照層級進行地址標注更加符合地址的真實情況,利用MapReduce 分布式計算,處理數據更高效,使得地址標注更貼切實際,粒度更細致,為后續的工作做了良好的鋪墊。
文中研究了ELMo-BiLSTM-CRF 模型在地址分詞領域中的應用,并對BiLSTM、BiLSTM-CRF 地址分詞性能進行對比分析,發現針對地址歧義的地址數據ELMo 模型有明顯的性能優勢,BiLSTM-CRF 整體效果較佳,單獨使用BiLSTM 模型分詞效果不佳。
文中使用dropout 和Adam 優化[16]提高實驗效果,并使用正交優化策略保證方差和偏差的平衡,使用較小的學習率使模型表現更加精細,并加入CNN 模型,使得模型更加豐滿,在分詞性能上有更好的表現。