Last Updated on 2021-03-31 by Clay
在處理各式各樣的 NLP 任務當中,難免會遇到有工具針對繁體、或簡體特別適合的情況 —— 畢竟這可能跟訓練語料有關。這時候,我們很有可能會需要能自動幫我們轉換中文簡繁的工具。而在 Python 當中,我覺得最方便的工具非 OpenCC 莫屬。
OpenCC 據說是 Open Chinese Convert 的縮寫,支援多平台,包括 Windows、Linux、Mac 都能正常運作。
從名字我們可以知道,這是一個開源的專案,有興趣的人可以參閱文末的連結。若只是單純想要試用看看 OpenCC 的功能的話,你也可以參考以下網站: https://opencc.byvoid.com/
那麼,以下我就開始介紹如何使用 Python 來調用 OpenCC 來達成繁簡轉換的任務吧!
事前準備
首先,我們可以參考以下這個 Github ,其中他使用了 pure Python 去實作 opencc-python 這個套件: https://github.com/yichen0831/opencc-python
我們透過以下指令在專案中下載此套件:
pip3 install opencc-python-reimplemented
如此一來就裝好了 OpenCC 在 Python 中調用的套件。
OpenCC 使用方法
在 Python 當中的使用方法其實非常簡單,以下帶來一個簡單的示範:
# -*- coding: utf-8 -*- from opencc import OpenCC cc = OpenCC('t2s') text = '傅達仁今將執行安樂死,卻突然爆出自己20年前遭緯來體育台封殺,他不懂自己哪裡得罪到電視台。' print(cc.convert(text))
Output:
傅达仁今将执行安乐死,却突然爆出自己20年前遭纬来体育台封杀,他不懂自己哪里得罪到电视台。
首先,我們只需要使用:
from opencc import OpenCC
就可以在專案中 import OpenCC 這個套件。然後我們使用 OpenCC('填入要轉換的模式')
來初始化我們的轉換器。
轉換的模式有非常多種,大概有以下這幾種:
hk2s
: 繁體中文 (香港) -> 簡體中文s2hk
: 簡體中文 -> 繁體中文 (香港)s2t
: 簡體中文 -> 繁體中文s2tw
: 簡體中文 -> 繁體中文 (台灣)s2twp
: 簡體中文 -> 繁體中文 (台灣, 包含慣用詞轉換)t2hk
: 繁體中文 -> 繁體中文 (香港)t2s
: 繁體中文 -> 簡體中文t2tw
: 繁體中文 -> 繁體中文 (台灣)tw2s
: 繁體中文 (台灣) -> 簡體中文tw2sp
: 繁體中文 (台灣) -> 簡體中文 (包含慣用詞轉換 )
通過上面不同模式的說明,可以看出我們目前使用的只是單純的『繁轉簡』,若是要連一些常用的詞彙都進行轉換,那麼我們需要換一種模式:
# -*- coding: utf-8 -*- from opencc import OpenCC cc = OpenCC('tw2sp') text = '傅達仁今將執行安樂死,卻突然爆出自己20年前遭緯來體育台封殺,他不懂自己哪裡得罪到電視台。' print(cc.convert(text))
Output:
傅达仁今将运行安乐死,却突然爆出自己20年前遭纬来体育台封杀,他不懂自己哪里得罪到电视台。
其中最明顯的,莫過於原本的『執行』被轉換成了『运行』。類似的例子還有很多,比如『公車』會被轉換成『公交車』…… 大家不妨試試看各式各樣的轉換。
那麼,以上關於使用 Python 調用 opencc-python 進行繁簡轉換的介紹就到這裡,這是非常好用的工具,可以幫助我們進行不同的 NLP 任務。