Skip to content

[NLP][Python] 透過 opencc-python-reimplemented 套件來使用中文繁簡轉換工具 OpenCC

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 任務。


References


Read More

Tags:

Leave a Reply