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