陳雨暉,皮 洲,姜滕圣,李 響,王 震,奚雪峰,3,吳宏杰,3,付保川,3
1.蘇州科技大學 電子與信息工程學院,江蘇 蘇州 215009
2.蘇州市公安局,江蘇 蘇州 215009
3.蘇州科技大學 蘇州智慧城市研究院,江蘇 蘇州 215009
在高速發展的大數據環境下,要想建設能夠很好提升資源效率、改善人民生活水平的智慧城市,準確、多樣的地址信息空間是不可或缺的,這就需要高效、精確的非標中文地址匹配方法。傳統的中文地名地址匹配技術主要建立在標準地址庫的設置之上,但是隨著地址建筑的日益增多,以及數據來源、數據結構標準的不同,傳統中文地址匹配技術在處理非標中文地址需要迎接新的挑戰。建立能夠應對不規范、不準確的中文地址匹配方法,實現地址數據校驗、地址可視化等功能,是我國發展智慧城市的必經之路。
知識圖譜[1]原本是谷歌用來實現知識搜索功能的,在學術界和工業界被廣泛使用,是各類結構化知識庫的統稱。知識圖譜就是將人類知識結構化形成的知識系統,是人工智能研究和智能信息服務的基礎核心技術,可以實現實體關系準確查找、智能推薦等功能[2]。因此將知識圖譜運用在存儲地址信息上也有很好的前景,不僅可以實現可視化查詢地址關系,還可以起到地址清洗、地址補全的功能,更能在中文地址匹配方法中起到良好的效果。
傳統的中文地址匹配方法主要分為三大類:(1)基于中文分詞的地址匹配算法[3-4]。該類算法是基于建立未登錄詞的詞典庫對中文文本進行分詞匹配,即直接匹配字符串。其中,逆向最大匹配BMM算法在進行中文文本分詞時最為常用,這是因為中文文本的詞義中心通常相對靠后,但是該方法需要建立完善的詞典庫,每當出現未登錄詞時,都需要及時對現有的詞典庫進行補充。(2)基于統計分詞的地址匹配方法[5]。統計分詞主要研究地址歷史信息,若兩個字符在地址信息中出現的詞頻較高,就能夠推測這兩個字符較可能構成一個詞。該方法主要基于詞頻進行分詞,不需要詞典庫支持,但對常用詞的識別精度較差,在處理中文地址匹配時劣勢較為明顯。(3)基于語義理解的地址匹配算法[6]。中文地址由豐富的語義信息組成,通過對地址名稱中不同的地址要素進行特征提取,可以在匹配時獲取較高的精確率?;谏厦孢@些方法,趙陽陽等人[7]提出了地址要素識別機制的地名地址分詞算法,但是需要建立完備的詞典庫;張雪英等人[8]提出了一種基于規則的中文地址要素解析方法,但在處理包含POI(point of interest,興趣點)特征的標準中文地址時,僅能基于統計分詞分析上下文進行解析,識別率差;謝婷婷等人[9]提出了一種基于統計的中文地址位置語義解析方法,不需要建立詞典庫,但是忽略了地址語義信息,難以應對實際需求;許普樂等人[10]提出了基于貝葉斯推理的中文地名地址匹配方法,通過Spark大處理框架對中文地址解析,但對數據的質量和硬件的要求較高;鄒恩岑等人[11]提出了一種面向中文非標建筑地址標準化的自動匹配方法,通過使用字符串匹配[12]的方法應對中文地址非標準的問題,但匹配效果不理想。
綜上,現有的方法存在需要不斷更新詞典庫、地址切分不明確、面向非標準中文地址時匹配準確率不高等問題。針對這些問題,本文提出了一種基于知識圖譜的中文地址匹配方法研究。該方法通過提取分層特征對標準地址數據、POI地址數據分別建立知識圖譜,以應對地址多樣性的問題;利用待測地址的間接信息建立待測地址知識圖譜,通過基于選擇性注意力機制的知識圖譜的關系抽取方法對待測地址進行地址分類;最后通過計算知識圖譜實體相似度的方法實現對非標中文地址的地址匹配。
本文采用基于知識圖譜的非標中文地址匹配方法,該方法的具體匹配流程如圖1所示。
知識圖譜通常以實體、關系及事實三元組[13]進行組織。對于事實三元組中的任意事實,使用(h,r,t)進行表示,其中h代表頭實體,t代表尾實體,r代表頭尾實體之間的關系。當應用在地址信息空間時,實體就是地址的詳細名稱、省名、市名、區名、道路名稱等等;關系存在與各個實體之間,例如所在省、所在市、所在區、所在道路等等,可簡單用“位于”表示。知識圖譜中的實體關系包括了地址信息的各類屬性,例如地址的行政區劃代碼、經緯度信息、行業分類等。
1.1.1 標準地址知識圖譜
標準地址庫作為地址匹配的數據基礎,其質量的好壞將會直接影響地址匹配的準確率,在知識圖譜中也是如此。為了保證數據的準確性,首先需要對獲取到的標準地址庫進行數據預處理后才能構建知識圖譜。原地址庫中包含了至少千萬數量級的地址數據,需要從中挑選出合適的信息作為實體名稱以及實體屬性,實體屬性包括每條地址的所在行政區劃、經緯度等等。遍歷整個標準地址庫后,對挑選出的數據進行全角/半角處理,去除掉數據中的非法字符以及會影響實體關系的英文字母或數字,減少因干擾項而引起的匹配誤差。數據清洗完畢后,選擇通過提取地址要素對作為地址知識圖譜的實體。根據實際需要進行簡化后的地址要素如表1所示。

圖1 基于知識圖譜的非標中文地址匹配方法流程Fig.1 Process of non-standard Chinese address matching based on knowledge graph

表1 地址要素特征Table 1 Feature of address element
根據該中文地址要素特征表,可以建立53種不同的實體和分別表示上下關系與同級關系的“位于”與“同級”2種實體關系。
通過分析提取標準地址庫中的行政區劃完整信息后,根據不同級別的地址要素信息,建立地址要素跨級間的關系圖譜,作為標準地址知識圖譜的基本框架,其地址要素結構框架如圖2所示。
接著,通過對標準地址數據進行逆向最大匹配算法,從地址右側開始進行字符串配對,提取出標準地址中級別最低的地址要素信息作為知識圖譜三元組中的尾實體,即提取“路、街、大街、大道”等特征字直到遇到下一個不同級別的地址要素特征字為止。例如地址的名稱為“木瀆鎮金山路33號”,將地址本身作為頭實體,提取出“金山路”作為尾實體,“位于”作為實體關系,“33號”則作為實體屬性,構造結果如圖3所示。

圖2 知識圖譜中的地址要素結構框架Fig.2 Structural framework of address element in knowledge graph

圖3 知識圖譜地址實體實例Fig.3 Address entity instance in knowledge graph
盡管名稱為“木瀆鎮金山路33號”的地址中只包含了2個地址要素,但是依靠知識圖譜的網絡特性,可以根據“木瀆鎮”作為頭實體連接的其他實體關系,在知識圖譜中進行多步跳轉,通過推理規則達到知識補全的效果。例如“木瀆鎮”又與“吳中區”相連,之間具有實體關系,通過層層遞推,即可將原本的地址名稱補全為“江蘇省蘇州市吳中區木瀆鎮金山路33號”。
最后,將所有的數據清洗過的標準地址進行實體特征提取并按上述規則錄入,就能成功構建出標準地址知識圖譜。
1.1.2 POI地址知識圖譜
雖然標準地址知識圖譜中包含了準確的地址實體關系,且可以通過實體屬性明確得知地址的準確信息從而進行更精確的地址匹配,但僅僅使用標準地址知識圖譜進行地址匹配并不能滿足所有地址情況,在處理僅帶有POI特征的中文地址數據時往往出現劣勢,甚至會產生極大的誤差判斷。
POI[14-15]興趣點表示地圖上本身不包含任何地址要素但有實際地理意義的點,如某某銀行、小區、學校等等都可以被稱為一個POI。POI地址在標準地址庫中也會有所記錄,可作為“道路”的再下一級的地址要素,如表2所示。但大部分POI特征作為地址單獨出現,因此選擇在建立標準地址知識圖譜進行地址匹配的基礎上,創建了POI地址知識圖譜進行數據融合,共同解決地址匹配問題,這在一定程度上提高了匹配的準確性與泛用性。

表2 POI作為地址要素Table 2 POI as address element
POI地址數據選擇從百度地圖API接口爬取獲得,根據一級、二級行業對地址進行詳細分類,其分類結果可以很好地作為實體屬性特征,具體分類情況如表3所示。
盡管大多獲取到的POI地址數據名稱中并不包含地址要素,但是通過地址信息中記錄的行政區劃,可以通過代碼轉化補全一定的地址要素信息,擴充地址實體間的實體關系,構建知識圖譜單元。這在一定程度上縮小了實體匹配范圍,增大了匹配效率。
同時,建立POI地址知識圖譜可以省去地址的共指消歧。例如,標準地址“江蘇省蘇州市虎丘區學府路99號”與POI地址“蘇州科技大學”代表的是同一個地址,這樣可以減少數據冗余帶來的影響。
1.1.3 待測地址知識圖譜
待測地址知識圖譜的構建綜合了上述兩種方法,首先基于提取的特征要素對待測數據進行地址分類處理[16-17]。考慮到非標中文地址的特異性,根據是否能提取到實體關系特征將待測地址分為兩種類型:包含特征要素的地址以及不包含特征的無效地址。同時,基于提取的特征要素不同選用不同的實體構造方法:當提取到“道路”地址要素時,選用與標準地址知識圖譜相同的構造方法,反之則與POI地址知識圖譜構建方法一致。
首先要對待測知識圖譜中的每一個地址實體進行地址分類,決定進行實體對齊的對象。但地址名稱有時分別包含了兩種不同的特征要素,例如“中國石化殼牌交通加油站太倉路店”。
因此不能直接根據提取到的特征要素進行地址分類,選擇使用基于選擇性注意力機制[18]的知識圖譜實體關系抽取方法,通過基于語句級別選擇性注意力機制的神經網絡模型[19],提取每個知識圖譜單元的決定性特征,該方法使用神經網絡來提取地址名稱中的地址語義特征并以語義向量的形式來呈現。為了充分利用地址中的所有地址要素信息,以及避免遠程監督帶來的地址錯誤標注問題,該方法根據地址要素級別在地址語義向量上引入了注意力機制,從而動態地減少噪聲實例所對應的權重,同時有效提升有效實體對應權重。最后,將利用注意力機制計算的權重與對應實例向量的加權求和作為特征向量來進行關系抽取,從而得出較為準確的分類結果。
當標準地址知識圖譜以及POI地址知識圖譜構建完備之后,便能夠與待測地址知識圖譜進行地址的實體匹配。在進行地址匹配時,現根據高層次的實體單元,如“市”“區”等縮小實體匹配范圍,再選擇待測地址知識圖譜中底層的實體單元與匹配地址進行基于實體關系權重的余弦相似度計算[20],從而判斷是否成功地址匹配。
假定待測地址Ai按照其實體關系進行切分形成序列Xi,匹配知識圖譜中的地址Aj按相同方法形成序列Xj,使用文本空間向量表示法將Xi、Xj表示成兩個n維的向量,即Xi=(Xi1,Xi2,…,Xin),Xj=(Xj1,Xj2,…,Xjn),n表示兩個地址名稱的序列總數,Xi與Xj的夾角余弦可以用公式(1)進行計算,當余弦值越趨近于1,兩個地址文本就越相似。

一個的實體通常包括多個實體關系。不同的實體關系在辨識和區分實體方面的能力呈現出不同的差異。在不具有相同實體的數據集中,實體關系越完整且相互間差異性越大的實體識別能力往往越好。在實體匹配過程中實體的關系所具備的識別能力越穩定,被分配的權重[21]也就更高。
由于在標準地址知識圖譜中,其地址實體中基于地址要素產生了包括所在市、所在區、所在道路等等實體關系,這些實體關系因地址要素不同對地址信息的影響權重也不同,地址要素所在級別越小,賦予的實體關系權重就越高,權重的具體數值通過對待測地址數據進行實驗分析得出?;趯嶓w關系權重的實體相似度計算公式(2)如下:

其中,N表示實體對共有實體關系數,E1、E2表示實體,E1ai、E2ai表示實體E1、E2的第i個實體關系,表示共有實體關系的相似度。
對于待測地址中不包含地址要素的POI地址,則通過對POI特征設立權重,其實體相似度方法與上述相同。為了獲取各個特征要素所占的權重值,從中選取10%的地址數據作為訓練集,5%的地址數據作為測試集進行實驗。經過對300條非標中文地址數據的人工分析,綜合得出符合需求的最優的權重分配,如表4所示即為地址要素權值分類示例。

表4 地址要素權值Table 4 Example of assigning weights to address elements
近年來,隨著公安智能監控系統的不斷建設,智能感知監控設備逐漸實現城市的大面積覆蓋。智能監控設備的應用在管理和保護城市上已經起到了不可或缺的作用。早期的智能監控設備的數據錄入工作是依靠地方派出所民警實地記錄完成,但缺少統一規范的操作要求,不可避免地出現了其檔案數據中大多地址名稱不標準、不明確,所記錄的地址經緯度信息與實際設備所在地址經緯度誤差較大等問題。為了驗證本文方法的有效性,選擇使用該方法對126 640條設備檔案記錄種的非標中文地址進行地址匹配。126 640條數據對應生成126 640個地址實體。首先對待測地址進行地址清洗、歧義消除,再將地址進行分類,分類結果如表5所示。

表5 待測地址分類結果Table 5 Results of address classification to be tested
對于此地址分類結果,主要對無效地址進行精確度評估并建立相應的測試集:在126 640條一機一檔數據中,抽樣選取了100條無效地址,和200條可匹配地址(包含地址要素和包含POI特征的地址各100條),并進行了人工的分析校驗,部分地址數據如表5所示。其中100條無效地址中分類正確的有97條,錯誤的僅有3條。200條可匹配地址中正確的有177,錯誤的則為23條。因此,可以證明該地址分類方法基本準確,也保證了之后地址匹配的準確性。

表6 部分地址示例Table 6 Partial address example
在進行地址匹配方法的有效性驗證時,一般通過計算該方法的匹配率與準確率。
由于待測地址的數據中包含的地址要素數量與匹配地址中的相比差別過大,導致計算得出的相似度值普遍偏低。從待測地址中抽取了300條匹配結果,通過人工校驗發現其中僅有173條數據可視為匹配成功,因此按照經驗決定將相似度閾值定為0.6。匹配地址實體中還包含了經緯度屬性。當兩個地址完成匹配后,分別提取其經緯度屬性,由于兩個地址數據記錄方式以及來源不同,經緯度的坐標系也不同。通過對經緯度進行坐標系轉換后,計算兩個經緯度的間隔距離,將間距的閾值定為1 000 m。最終決定將地址文本相似度大于0.6的視為匹配成功,成功匹配的地址中相似度大于0.7且兩個地址實體經緯度間距小于1 000 m的視為匹配準確。
匹配率計算公式如下:

準確率計算公式如下:

其中,RM表示匹配率,M表示匹配成功的地址個數,N表示待匹配地址的總數。RA表示準確率,TP表示匹配準確的地址個數,FP表示有正確的可匹配對象但匹配錯誤的地址個數,TN表示無匹配對象而匹配錯誤的地址個數,FN設為0。
實驗采用基于Jaccard相似度[22]的地址匹配方法、基于動態規劃的地址匹配方法[23]、基于Sorensen Dice的全文檢索地址匹配方法[24]、基于bert4keras預訓練[25]的地址匹配方法和本文方法分別對300條非標中文地址數據進行匹配率和準確率的計算。
基于Jaccard相似度的方法在信息檢索或者搜索引擎中經常用到,在地址長度相同時有較好的效果;基于動態規劃的地址匹配方法不需要進行地址分詞,也不需要進行地址要素的特征提取,而是通過動態規劃直接計算文本的Levenshtein距離作為相似度判斷;基于Sorensen Dice的全文檢索地址匹配方法則是當地址要素信息齊全時該方法的匹配結果較好;基于bert4keras預訓練的地址匹配方法,采用包含語義的LCQMC數據集并在其基礎上加入250條地址語料進行文本相似度的計算,計算耗時3天左右,匹配結果較好。
實驗硬件環境:文中使用計算服務器為8核Intel Xeon E5-2640 V2,2.00 GHz處理器,128 GB內存。
由于測試地址數據集中包含了很多無效地址,極大影響了方法對高質量的非標中文地址的有效性檢驗。因此選擇去除其中的無效地址,僅對有效地址進行匹配率和準確率的計算。通過人工的方法從有效地址即包含特征要素的地址中隨機抽取300條匹配結果進行測試,實驗結果對比如表7所示。

表7 對非標中文地址的匹配結果比較Table 7 Comparison of results of different matching methods for non-standard Chinese addresses %
從實驗結果可以看出,本文方法對該非標中文地址數據集有較好的匹配率和準確率,相較于前三種方法分別提高了5.37%、20.62%、2.23%和11.05%、15.30%、11.05%,對于基于bert4keras預訓練的地址匹配方法在地址準確率上也有0.95%的提高,匹配率可能由于訓練數據集中包含了針對特殊地址的相似度判斷處理,因此稍高于本文的方法。
本文提出了一種基于知識圖譜的中文地址匹配方法研究,與現有的中文地址匹配方法不同,該方法運用到了知識圖譜作為存儲方式,將地址名稱作為實體,地址所包含的特征要素作為實體間關系,構建匹配地址的知識圖譜,并且可以隨時可視化查詢待測地址相關信息。同時對待測地址進行特征分析,構建待測地址的知識圖譜,最后選用了基于實體關系權重的相似度算法進行地址匹配。實驗結果表明,該算法在處理非標中文地址時優于的常見地址匹配算法,極大提高了地址的匹配率以及準確率。
知識圖譜本質上是一種圖結構數據,通過圖建立知識和數據之間的關系,可以與圖神經網絡等深度學習技術進行融合。接下來的工作將致力于研究把知識圖譜和圖神經網絡引入自然語言處理[26]之中,更好地對非標中文地址進行文本分類、關系抽取以及特征選擇,同時結合實體對齊方法[27],優化地址匹配算法,提高非標中文地址匹配效率,也為地址匹配相關地實戰應用做出基礎支撐。