于 淼,呂雅娟,蘇勁松,李賢華
(中國科學(xué)院 計算技術(shù)研究所 智能信息處理重點實驗室,北京 100190)
隨著信息技術(shù)的發(fā)展,不同語言之間的溝通和交流變得越來越重要,在此背景下機器翻譯等自然語言處理技術(shù)得到長足發(fā)展。作為當(dāng)前研究熱點之一,命名實體翻譯技術(shù)正廣泛應(yīng)用于諸多自然語言處理任務(wù)中,例如,機器翻譯、跨語言信息檢索等。在機器翻譯中命名實體的翻譯也成為影響機器翻譯性能的重要因素之一。在人名的翻譯任務(wù)利用音譯技術(shù)基本完成之后,地址等非音譯信息的翻譯成為命名實體翻譯研究的重點,對命名實體翻譯具有重要的意義。
目前,研究地名翻譯的工作很多[1-2],但是針對完整地址翻譯的工作比較少,大致可以分為兩類方法。一類是基于規(guī)則的方法[3-4],雖然這種方法翻譯的準確性很高,但是規(guī)則的撰寫耗時耗力。另一類是基于統(tǒng)計的方法,該方法[5]主要包括基于字的、基于詞的以及基于短語的方法,雖然它具有很強的模型學(xué)習(xí)能力,無需人工介入,但受限于地址雙語語料規(guī)模的有限性,基于統(tǒng)計的方法難以充分發(fā)揮它的優(yōu)勢,以達到較高的翻譯質(zhì)量。針對這些問題,本文提出了規(guī)則和統(tǒng)計相結(jié)合的中文地址翻譯方法,實現(xiàn)在訓(xùn)練語料規(guī)模匱乏的條件下,盡可能減少人工參與,使得系統(tǒng)在擁有較好的模型學(xué)習(xí)能力的同時完成高質(zhì)量的中文地址翻譯。
本文通過深入研究中文地址的組成特點,提出了基于規(guī)則的中文地址分詞及類型標注方法。通過收集總結(jié)區(qū)劃詞典、關(guān)鍵字詞典、模式表,然后據(jù)此進行正向最大匹配得到中文地址分詞及詞語類型標注。其中區(qū)劃詞典是本文的一個重要工作,我們整理了大到省、市、區(qū)、縣,小到村、鎮(zhèn)、鄉(xiāng)等近16萬個詞條,能夠很好的切分縮略地址而且能夠解決大部分切分歧義。在得到準確率較高的分詞結(jié)果之后,本文根據(jù)分詞結(jié)果的詞語類型設(shè)計了中文地址分塊方法,從而將原始地址劃分為具有邏輯獨立性的小地址單元。最后,在統(tǒng)計層次短語翻譯模型[6-7]基礎(chǔ)上加上少量的翻譯詞典和人工模板以地址單元為單位進行翻譯,再將翻譯結(jié)果以逆序粘合在一起形成最終譯文。
形式上,中文地址由一系列地址單元組成,每個地址單元包含行政區(qū)劃、機構(gòu)名或者地址輔助信息。以下是中文地址的三個典型實例。
(1) 江蘇省南通市海安縣海安鎮(zhèn)?;?8號
(2) 北京市海淀區(qū)五道口華清嘉園7號樓
(3) 江蘇通州市龍壩村人民路北10米處
通過對大量實例進行歸類、分析、總結(jié),本文得到中文地址的四個組成特點。
(1) 中文地址由較小的獨立的地址單元組成;
(2) 標準的中文地址大都由地名加關(guān)鍵字組成,例如,“某縣”、“某鎮(zhèn)”、“某路”、“某號”;
(3) 中文地址中會直接出現(xiàn)地名而后面省略了關(guān)鍵字,例如,“五道口”全稱應(yīng)該是“五道口街道”;
(4) 有些地址單元存在復(fù)雜多變的輔助地址信息,例如,“……路北……米處”。
根據(jù)以上分析,我們總結(jié)出中文地址固有的詞語類型。
1. 強關(guān)鍵字(StrongKey):關(guān)鍵字且前面必須有地名相搭配,例如,“鎮(zhèn)”、“村”、“路”。
2. 弱關(guān)鍵字(WeakKey):關(guān)鍵字可獨立出現(xiàn)也可前有地名相搭配,例如,“山東省曲阜市小雪經(jīng)濟園區(qū)”中的關(guān)鍵字“經(jīng)濟園區(qū)”前有地名“小雪”相搭配,“湖南省婁底市婁星區(qū)經(jīng)濟園區(qū)百寶街”中的關(guān)鍵字“經(jīng)濟園區(qū)”是獨立出現(xiàn)的,所以關(guān)鍵字“經(jīng)濟園區(qū)”是弱關(guān)鍵字。
3. 大行政區(qū)劃(LargeDivision):行政區(qū)劃名稱,例如,“省”、“市”、“區(qū)”的名稱。
4. 小行政區(qū)劃(SmallDivision):行政區(qū)劃名稱,例如,“村”、“鎮(zhèn)”、“鄉(xiāng)”的名稱。
5. 普通地名(CommonName):未在行政區(qū)劃表中出現(xiàn)的普通地名,例如,“人民路”中的“人民”。
6. 數(shù)詞(Number):例如,“28號”中的“28”。
7. 方位詞(Direction):例如,“南段”、“北側(cè)”、“東口”、“西首”等。
8. 模式(Pattern):用以表達地址輔助信息。例如,“……與……交叉口”,“……路北……米處”。
本文整理的行政區(qū)劃表以中華人民共和國行政區(qū)劃代碼為依據(jù),給出了大到省、市、區(qū)、縣,小到村、鎮(zhèn)、鄉(xiāng)、社區(qū)居委會等行政區(qū)劃的名稱和行政區(qū)劃編碼。我們從網(wǎng)上下載到的原始行政區(qū)劃表如表1所示。
表1 原始行政區(qū)劃表
(1) 區(qū)劃名稱
我們將行政區(qū)劃分為大行政區(qū)劃(區(qū)劃編碼后六位為0)和小行政區(qū)劃(區(qū)劃編碼后六位不為0)的原因是對于小行政區(qū)劃的關(guān)鍵字有很多簡稱和變化,如果一一存儲很費空間。例如,“東華門街道辦事處”可以寫成“東華門街道辦”,“東華門街道”,“東華門一街”,“東華門二街”等。對于大行政區(qū)劃,為了支持簡稱,我們既存儲名稱加關(guān)鍵字的形式又存儲只有名稱的形式。例如,“北京市”和“北京”。經(jīng)我們整理后的區(qū)劃表如表2所示。
表2 整理后的行政區(qū)劃表
豐富的區(qū)劃表有助于幫助我們解決切分歧義問題。例如,“清水村鎮(zhèn)寧西路”既可以切分成“清水村/鎮(zhèn)寧西路”又可以切分成“清水村鎮(zhèn)/寧西路”,已有的方法[8]是利用層次關(guān)系表,但是此例中“路”不僅隸屬于“村”也隸屬于“鎮(zhèn)”,因此解決不了該切分歧義。我們的方法是利用區(qū)劃表進行正向最大匹配切分,而“清水村”即在表中,歧義問題就可以有效的解決。
(2) 區(qū)劃編碼
區(qū)劃編碼由12位數(shù)字組成,組織成樹狀層級目錄,從區(qū)劃編碼可以看出區(qū)劃之間的隸屬關(guān)系。引入?yún)^(qū)劃編碼的優(yōu)點在于可以減少切分錯誤。我們的區(qū)劃表支持區(qū)劃簡稱的同時也容易產(chǎn)生切分錯誤,尤其是兩個字的簡稱很容易出錯,例如,“廣西平南鎮(zhèn)江濱大道”中的“鎮(zhèn)江”容易被當(dāng)成是“鎮(zhèn)江市”的簡稱,因此被誤切為“廣西/平南/鎮(zhèn)江/濱大道”,但是有了區(qū)劃編碼這種錯誤就不會發(fā)生,因為鎮(zhèn)江的編碼“321100000000”并不是廣西的編碼“450000000000”的子碼。
這里我們總結(jié)的關(guān)鍵字包括,強關(guān)鍵字、弱關(guān)鍵字以及方位詞。表中除了有關(guān)鍵字的名稱還有關(guān)鍵字的類型以及關(guān)鍵字前的詞語類型約束(無約束用None表示),如表3所示。
表3 關(guān)鍵字表
這里存儲關(guān)鍵字前的詞語類型約束能夠幫助我們減少切分錯誤,像表中的關(guān)鍵字“房”既有可能出現(xiàn)在“101 房”(作為關(guān)鍵字)又可能出現(xiàn)在“鵝房街”(作為非關(guān)鍵字),我們通過檢查“房”前面的詞語是不是數(shù)字即可判斷是否進行關(guān)鍵字切分。
中文地址輔助信息大多由數(shù)詞、方位詞組成。本文通過對大量的中文地址進行觀察與分析,總結(jié)出如圖1所示的模式表,用以刻畫復(fù)雜多變的地址輔助信息,提高切分的正確率。
圖1 模式表
本文利用上述收集和總結(jié)的區(qū)劃表、關(guān)鍵字表以及模式表對中文地址進行正向最大匹配,從而得到分詞及詞語類型標注結(jié)果。具體某個窗口內(nèi)的切分步驟如下。
(1) 查區(qū)劃表
若存在于區(qū)劃表中并且當(dāng)前的區(qū)劃編碼隸屬于前一個區(qū)劃編碼則進行切分并檢查區(qū)劃編碼的低六位,若低六位均為0,則標記詞語類型為大區(qū)劃(LargeDivision),否則標記詞語類型為小區(qū)劃(SmallDivision)。若不存在于區(qū)劃表中,則轉(zhuǎn)第二步。
(2) 查關(guān)鍵字表
若存在于關(guān)鍵字表中則檢查關(guān)鍵字前的詞語類型是否符合約束,若是則進行切分并標記詞語類型為關(guān)鍵字類型,否則轉(zhuǎn)第三步。
(3) 查模式表
若存在于模式表中,則進行切分并標記詞語類型為模式(Pattern),否則轉(zhuǎn)到下一窗口。
所謂地址單元劃分,是指把已經(jīng)分好詞的中文地址劃分成較小的獨立的地址單元。之所以要進行地址單元劃分是因為中文地址是按照獨立地址單元逆序進行翻譯,符合翻譯規(guī)律。其次,基于層次短語的翻譯模型對長距離調(diào)序處理不好,若按照整體翻譯很難達到較高質(zhì)量的譯文,例如,分詞正確的中文地址“北京市 宣武區(qū) 廣安門 北街 20 號樓”在不分塊的情況下,利用層次短語模型會被翻譯成“Building Guang’ anmen 20 North St , Xuanwu District, Beijing”。從例子可以看出規(guī)則在“廣安門 北街 20 號樓”中都使用了,導(dǎo)致調(diào)序混亂,若是限制只在地址單元中使用,則不會出現(xiàn)這種情況,因此地址單元劃分是十分必要的。本文的地址單元劃分方法主要是對已分好詞的詞語類型進行地址單元枚舉。枚舉規(guī)則如下:
(1) LargeDivision
(2) SmallDivision|CommonName|Num + StrongKey +(Direction)
(3) (SmallDivision|CommonName)+WeakKey+(Direction)
(4) Pattern
其中,“|”代表或,“+”代表前后詞語類型的連接, “()”代表括號里的詞語類型可有可無。例如,分好詞并且標記詞語類型的中文地址“河南省/LargeDivision 商丘市/LargeDivision 睢陽區(qū)/LargeDivision 南京/CommonName 路/StrongKey 中段/Direction 159/Number 號/StrongKey”的地址單元劃分結(jié)果為[河南省] [商丘市] [睢陽區(qū)] [南京 路 中段] [159 號]。
層次短語翻譯模型[9]是當(dāng)今統(tǒng)計機器翻譯的主流模型之一,該模型融合了傳統(tǒng)短語翻譯模型和句法翻譯模型的優(yōu)點,使得翻譯性能相比傳統(tǒng)短語翻譯模型有了較大幅度的提高,在具有較強調(diào)序能力的同時又避免了句法分析帶來的分析錯誤和系統(tǒng)負擔(dān)。
中文地址結(jié)構(gòu)大都是由嵌套的短語組成,非常適合用層次短語模型進行翻譯。例如,“人民 路 東側(cè)”可以用“X1 路|||X1 Road”和“X1 東側(cè)|||East of X1”兩條規(guī)則翻譯即可。但是由于訓(xùn)練語料較小,抽取出來的有用規(guī)則數(shù)量不多,所以本文在層次短語模型的基礎(chǔ)上引入詞典和人工模板對中文地址單元進行翻譯。詞典相當(dāng)于不帶變量的規(guī)則即詞匯化規(guī)則,例如,“蒙古|||Inner Mongolia”。人工模板相當(dāng)于帶變量的規(guī)則,例如,“X1 與 X2 交叉口|||Intersection of X1 and X2”。具體詞典和人工模板與CYK的解碼融合過程如下所示。
For len = 1 to n
For i = 1 to n
j = i + len - 1
Select dict_rules in span(i,j)
Select template_rules in span(i,j)
Select common_rules in span(i,j)
其中“dict_rules”代表詞典,“template_rules”代表人工模板,“common_rules” 代表從雙語對齊的訓(xùn)練語料中抽取的規(guī)則。最后將翻譯結(jié)果以逆序粘合在一起形成最終譯文。
本部分對中文地址分詞、地址單元劃分,以及翻譯三個模塊的效果分別進行了測試。本文所使用的樣例來自于平時收集的12 699條企業(yè)地址信息。
對于分詞模塊,本文所使用的測試集從12 699條數(shù)據(jù)中隨機抽取的200條,使用的資源有含153 719 條數(shù)據(jù)的區(qū)劃表,含633條數(shù)據(jù)的關(guān)鍵字表,含27條數(shù)據(jù)的模式表。分別測試了分詞的正確率、召回率和F值并和ICTCLAS的分詞結(jié)果進行了對比。實驗結(jié)果,如表4所示。
表4 分詞模塊測試結(jié)果
從表4可以看出,和ICTCLAS相比,文中系統(tǒng)的正確率、召回率和F值分別提高18.14%、27.52% 和23.06%。分詞錯誤大都是由一些地名特殊而導(dǎo)致的,例如,“北京市海淀區(qū)上園村3號”,此處的“上園村”并不是一個真正的村,因此發(fā)生切分錯誤,若把“上園村”作為普通地名添加到關(guān)鍵字表中,則可得到正確切分。
我們從12 699條數(shù)據(jù)中隨機抽取300條作為測試集,先進行分詞,然后通過人工挑選出200條分詞完全正確的結(jié)果作為最終的測試。正確率為97.71%,召回率為98.35%,F(xiàn)值為98.02%。
結(jié)果表明,分塊錯誤多是由模式表數(shù)據(jù)不足造成,例如,“乍浦 鎮(zhèn) 雅山 西路 21號 東起 1-5 號”被分塊的結(jié)果為[乍浦 鎮(zhèn)] [雅山 西路] [21號 東起] [1-5 號],正確的分塊為[乍浦 鎮(zhèn)] [雅山 西路] [21號] [東起 1-5 號]。此例方位詞“東起”被劃分到與“21號”為一塊,因為方位詞大都修飾前面的詞語,但此例是個特例,因此若在模式表中加入“東起 X1 號”即可得到正確分塊。
本文將12 699條數(shù)據(jù)隨機分成三份,分別作為訓(xùn)練集(10 162句)、開發(fā)集(1 270句)和測試集(1 267句)。使用srilm工具訓(xùn)練四元語言模型。本文共做了三組測試,第一組用ICTCLAS分詞,解碼用普通的層次短語模型。第二組用本文的分詞方法,解碼也是普通的層次短語模型,第三組用本文的分詞加地址單元劃分方法,解碼用引入詞典和人工模板的層次短語模型,其中詞典含9 656個詞條,人工模板含490個模板。采用BLEU評分作為翻譯性能的評價指標,結(jié)果如表5所示。
表5 翻譯模塊測試結(jié)果
從結(jié)果可以看出,本文分詞比ICTCLAS分詞更加準確,抽取的規(guī)則更好,從而提高了翻譯質(zhì)量。而在分詞的基礎(chǔ)上進行地址單元劃分,改善了句子的長距離調(diào)序能力。實驗中最好的BLEU值為0.773 2,這樣的BLEU值相當(dāng)于人工評測正確率達到90%以上,可見本文的方法針對中文地址翻譯具有較好的翻譯性能。
本文對翻譯錯誤以及翻譯不準確的地址實例進行分析,發(fā)現(xiàn)錯誤主要有以下幾種類型。
(1) 分詞或地址單元劃分錯誤
中文地址:鶴崗市工農(nóng)區(qū)東解放路南三道街9號
參考答案:No.9, Nansandao Street, Jiefang Road, East of Gongnong District, Hegang
翻譯結(jié)果:No.9, Nansandao Street, Dongjiefang Road, Gongnong District, Hegang
由于分詞時“_東_”未被切分,所以導(dǎo)致翻譯錯誤。由于一個字的方位詞“東”、 “南”、 “西”、 “北”容易引起切分歧義,所以本文未把他們加入到關(guān)鍵字表中,對他們的切分處理的并不好。
(2) 詞典或人工模板不足
中文地址:新疆庫爾勒市英下路
參考答案:Yingxia Road, Korla, Xinjiang
翻譯結(jié)果:Yingxia Road, Kuerle, Xinjiang
由于一些地名的翻譯不是通過拼音直譯的,而“庫爾勒市”又不存在于詞典中,所以導(dǎo)致翻譯錯誤,將它添加到詞典即可解決這一問題。
本文針對中文地址的組成特點,提出了規(guī)則和統(tǒng)計相結(jié)合的中文地址翻譯方法。首先利用區(qū)劃詞典、關(guān)鍵字詞典以及模式表進行正向最大匹配分詞并給出每個詞的詞語類型。在分詞結(jié)果的基礎(chǔ)上本文又給出了根據(jù)詞語類型進行地址單元劃分的方法,從而將原始地址劃分為具有邏輯獨立性的小地址單元。最后,在層次短語模型基礎(chǔ)上加上少量的翻譯詞典和人工模板以地址單元為單位進行翻譯,再將翻譯結(jié)果以逆序粘合在一起形成最終譯文。實驗表明,本文提出的中文分詞、地址單元劃分以及翻譯方法都十分有效,能夠完成高質(zhì)量的中文地址翻譯。
為了進一步提高翻譯性能,還需要把中文地址分詞做的更加細致,盡量消除切分歧義并且考慮自動獲取關(guān)鍵字、模式、翻譯詞典的方法,擴大我們現(xiàn)有的資源。
[1] 孫樂樂. 中文地名翻譯淺談[J]. 科技經(jīng)濟市場,2006,11:358-359.
[2] 彭月華,張向京. 地名短語文化內(nèi)涵與翻譯[J]. 中國科技翻譯,2008,2:54-57.
[3] 王松.中文機構(gòu)名稱及地址的漢英翻譯方法研究[D].哈爾濱工業(yè)大學(xué)碩士學(xué)位論文.2008:57-67.
[4] 苗文彥. 高精度中文機構(gòu)名稱與地址機譯策略研究[D].哈爾濱工業(yè)大學(xué)碩士學(xué)位論文.2009.
[5] 王松,楊沐昀,趙鐵軍.基于統(tǒng)計的命名實體翻譯[C]//第七屆中文信息處理國際會議論文集.2007,10.
[6] David Chiang. A hierarchical phrase-based model for statistical machine translation[C]//Proceedings of ACL 2005, 263-270.
[7] David Chiang. Hierarchical phrase-based translation[J]. Computational Linguistics, 2007,33(2):201-228.
[8] 中華人民共和國行政區(qū)劃代碼[S],GB/T 226042002.
[9] 苗文彥,趙鐵軍,周向根,等.面向機器翻譯的中文機構(gòu)地址切分方法[J].計算機科學(xué),2009,04.
[10] Peter F. Brown, Stephen A. Della Pietra, Vincent J. Della Pietra, et al. The mathematics of statistical machine translation: parameter estimation[J]. Computational Linguistics, 1994,19(2):263-311.