Chinese Dialect Convert(開源中文方言分詞轉換器)
隨著《軒轅劍》的熱播,里面的男主角陳靖仇以“偶像劇方言王子”的稱號紅遍全國,他那標準的陜西漢中方言戳中了觀眾的笑點,方言逐漸被人們接受,并以各種表現形式展現在藝術的舞臺上,為大家帶來歡樂。同時,全國各地也正在加大建立有聲數據庫保護地方方言的進度。
教育部副部長、國家語委主任李衛紅介紹,中國語言資源有聲數據庫將全面科學地描寫、展示中國少數民族語言和漢語方言的面貌,保護民族語言文化遺產。該庫的最大的特點是“有聲”,將實地采集真實語音并建立真實語音及其轉寫文本的語料庫。
"語言資源有聲數據庫將記錄21世紀中國人說話的樣子,在50年、100年后讓子子孫孫聽到。”國家語委副主任、教育部語信司司長李宇明說。
那么既然我們能夠大力開發中文翻譯為英文的軟件,又為何不為保護國家文化遺產開發一款普通話轉方言的分詞翻譯軟件呢。Chinese dialect convert是一款基于方言分詞翻譯的軟件,軟件實現的核心就是基于方言分詞庫的最大粒度分詞器。下面我將詳細介紹Chinese dialect convert 軟件各部分結構和實現。
圖1 軟件整體流程介紹
方言分詞器
方言分詞器是基于IK analyzer實現的,同時也對其做了相應的修改。方言分詞器是采用基于詞庫的中文最大分詞技術,進行詞語切分。詞庫存儲采用與IK相同結構,即數組加哈希表。句子進行詞元切分采用正向最大粒度切分,取基于方言詞庫的最大匹配詞為詞元,當然在不同語境下切分的粒度應該是不定的,但是為了簡單起見,這里一律按最大匹配分詞處理。
ConfigurationDialect 類:主要負責各種方言分詞器的實例化,以及單例模式詞典的初始化啟動。
LanDictionary 類 :方言詞典的加載,以及擴展詞典的加載。
ShanXiSegmenter類:實現了陜西方言分詞,主要基于陜西方言詞典進行正向最大切分
ShanXiSegmenter類:實現了四川方言分詞,主要基于四川方言詞典進行正向最大切分
圖2 詞典存儲結構
詞典中存放著可以進行方言分詞轉換的普通話詞元,存儲結構中當數組中元素大于3時采用哈希表存儲。
IK分詞器
保留IK分詞器已有結構和類。
IKanalyzerSeg 類:提供IK分詞的接口,未匹配詞使用IK進行分詞。這里IK分詞器如何進行中文分詞不作介紹。
數據庫設計
由于方言種類繁多,如果所有都存放在內存中顯然是不可能的,將可以進行方言分詞轉換的普通話詞庫存放于內存中,用于句子的中文分詞,但將該普通話詞語對應的方言,以及用于相似度匹配的md5值,和關鍵字存放于數據庫之中,在翻譯過程中需要查詢數據庫中每種方言對應的表來獲得結果。(字符集為utf8格式)

圖3 數據庫方言表結構
結果收集器
結果收集器主要就是對數據庫查詢接口的一個封裝,直接提供對外統一接口,只需要輸入對應的普通話句子或者詞元,就能獲得方言翻譯結果,以及未匹配詞語的相似詞優先級隊列,可以選取每個在數據庫中存在的相似詞補充基于詞庫翻譯的局限性。
如:詞庫中只有“媽媽”一詞,但是用戶輸入句子是母親或者娘,其實是一個概念,但是詞庫未全部收錄這些詞,就需要進行相似詞搜索,首先根據知網詞庫獲得"媽媽"一詞的概念,對前三個概念分別進行md5值提取并合并,然后利用合并的md5值模糊查詢數據庫,目的在于獲得含有相同概念的詞元,并計算查詢詞與這些具有相同概念的相似詞之間的相似度,并對每個未翻譯普通話詞元建立其對應的相似詞優先級隊列。
圖4結果收集器整理流程
重要輔助類
原始文件提取類:ExtractFile類,根據提供的方言和普通話對應文件,建立數據庫。
主要功能:1 提取方言及其對應普通話 2 提取普通話關鍵詞 3 查詢知網概念集,提取該普通話對應的前3個概念集,若不滿則提取所有概念集,并對每個概念集進行md5值提取,合并這幾個md5值,用于后面的相似詞模糊查詢
原始文件格式:最好為 方言-普通話
數據庫連接輔助類:ConnectionHelper類,提供數據庫驅動加載,連接建立的輔助工作
數據庫采用的是mysql-5.5.20-win32版本,采用jdbc連接數據
由于能力有限,處于摸索階段,這款開源的中文方言分詞軟件設計和實現上面還有很多可以改進,同時我想隨著詞庫的擴展,以及普通話轉方言語義研究的深入,合理的將普通話轉換為對應的方言語句還是有可能的。我也希望作為一款開源的軟件,大家能夠互相交流,共同完善這款方言轉換軟件,使它的結構更加合理,翻譯更加準確,詞庫更加完備,為國家文化遺產的保留共享我們ITer的一份力量。
在此感謝IK analyzer的作者,以及基于知網語義相似度的計算作者,和北航的一位同學實現的詞語相似度計算的開源程序庫,我才能結合他們的程序和思想來初步實現自己對于方言轉換器這款軟件的設計和實現。
附錄:
該軟件sourceforge地址: https://sourceforge.net/projects/chinese-dialect/
該軟件 oschina地址: http://www.oschina.net/p/chinese-dialect/edit
我的郵件地址 : handsomestone@gmail.com