如何自訂 OpenCC 字彙轉換表

OpenCC 已提供十分優質的繁簡轉換,不過呢,實際使用下來難免會有些不到位的地方。所幸,OpenCC 的架構開放又有彈性,修改 json 設定檔就能載入自訂轉換字典,如果對既有轉換表或轉換規則不滿意,OpenCC 開放源碼,絕對讓你改到開心為止。

用個簡單例子示範如何自訂字彙轉換。假設我想將「黑暗執行緒在雲霄飛車上吃便當」翻成簡體,如使用包含常用詞彙轉換的設定檔 tw2sp.json,轉換結果如下:

輸出結果為「黑暗綫程在云霄飞车上吃便当」,而我希望保留「執行緒」不要翻成「綫程」,並將「云霄飞车」與「便当」 翻成大陸用語「过山车」與「盒饭」。

遇到 OpenCC 未包含的轉換字彙,最簡單的解決方法是在 json 設定加掛自訂的轉換表。如下圖,每行文字以 Tab 鍵相隔,前方是繁體中文詞彙,後方是希望轉換的簡體中文詞彙:

將 tw2sp.json 另存為 my-tw2sp.json 再修改加入{ "type": "text", "file": "TWCustMapping.txt" }:

改用 my-tw2sp.json,「过山车」與「盒饭」對了,但「綫程」沒改過來:

細究原因,是 TWPhrasesRev.ocd 裡定義了將「執行緒」轉為「綫程」。要修正這點可從原始碼中找到 TWPhrasesRev.txt,新增一條專有名詞,指定「黑暗執行緒」還是翻成「黑暗執行緒」,值得注意的是 TWPhrasesRev.txt 每一行前後都是繁體。

如下圖,我們將 TWPhrasesRev.ocd 換成 TWPhrasesRev.txt,type 則改成 "text":

重跑一次,結果就完全符合預期了:

OpenCC 支援 .txt 跟 .ocd 兩種格式的字典檔,修改並改用 TWPhrasesRev.txt 即可自訂轉換詞彙,如希望提高轉換效率,可利用 opencc_dict.exe 工具將修改版 .txt 轉換成 .ocd。(注意:.ocd 檔 32/64 位元有別,請用正確位元版本的 opencc_dict.exe 進行轉換)

掌握以上技巧,我們就能微調轉換結果,符合客戶的各式要求囉~ 祝大家轉換愉快。

歡迎推文分享:
Published 13 June 2018 10:34 PM 由 Jeffrey
Filed under:
Views: 2,694



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<June 2018>
SunMonTueWedThuFriSat
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication