目錄
Taibun 可以通過 pypi 安裝
$ pip install taibun
Converter
類別使用開發人員指定的參數將中文字音譯為所選的音譯系統。適用於繁體和簡體字符。
# 建構子
c = Converter(system, dialect, format, delimiter, sandhi, punctuation, convert_non_cjk)
# 音譯中文字
c.get(input)
system
String - 音譯系統。
Tailo
(預設) - 臺灣羅馬字拼音方案POJ
- 白話字Zhuyin
- 臺語方音符號TLPA
- 臺灣語言音標方案Pingyim
- 閩南話拼音方案Tongiong
- 臺語通用拼音IPA
- 國際音標
文本 | Tailo | POJ | Zhuyin | TLPA | Pingyim | Tongiong | IPA |
---|---|---|---|---|---|---|---|
台灣 | Tâi-uân | Tâi-oân | ㄉㄞˊ ㄨㄢˊ | Tai5 uan5 | Dáiwán | Tāi-uǎn | Tai²⁵ uan²⁵ |
dialect
String - 首選發音。
文本 | south | north | singapore |
---|---|---|---|
五月節我啉咖啡 | Gōo-gue̍h-tseh guá lim ka-pi | Gōo-ge̍h-tsueh guá lim ka-pi | Gōo-ge̍h-tsueh uá lim ko-pi |
format
String - 轉換後的句子中表示聲調的格式。
mark
(預設) - 每個音節都使用變音符號。不支持拼音number
- 添加一個代表音節末尾聲調的數字strip
- 刪除任何音調標記
文本 | mark | number | strip |
---|---|---|---|
台灣 | Tâi-uân | Tai5-uan5 | Tai-uan |
delimiter
String - 設定放置在單詞音節之間的分隔符。
預設值取決於所選的 system
:
'-'
- 對於Tailo
,POJ
,Tongiong
''
- 對於Pingyim
' '
- 對於Zhuyin
,TLPA
,IPA
文本 | '-' | '' | ' ' |
---|---|---|---|
台灣 | Tâi-uân | Tâiuân | Tâi uân |
sandhi
String - 應用臺灣話變調規則。
由於編碼所有變調規則困難,Taibun 提供多種模式變調轉換以支援自訂變調處理。
none
- 不執行任何變調auto
- 最接近臺灣話的正確音調變音,包括代詞、後綴和帶有「仔」詞的音調變音exc_last
- 除了最後一個音節之外,每個音節都變調incl_last
- 包括最後一個音節在內,每個音節都變調
預設值取決於所選的 system
:
auto
- 對於Tongiong
none
- 對於Tailo
,POJ
,Zhuyin
,TLPA
,Pingyim
,IPA
文本 | none | auto | exc_last | incl_last |
---|---|---|---|---|
這是你的茶桌仔無 | Tse sī lí ê tê-toh-á bô | Tse sì li ē tē-to-á bô | Tsē sì li ē tē-tó-a bô | Tsē sì li ē tē-tó-a bō |
變調規則也會根據所選擇的方言而變化。
文本 | 沒有變調 | south | north / singapore |
---|---|---|---|
台灣 | Tâi-uân | Tāi-uân | Tài-uân |
punctuation
String
format
(預設) - 將中文標點符號轉換為英文標點符號,並將每個句子開頭的單詞大寫none
- 保留中文風格的標點符號,並且新句子開頭的單詞不大寫
文本 | format | none |
---|---|---|
這是臺南,簡稱「南」(白話字:Tâi-lâm;注音符號:ㄊㄞˊ ㄋㄢˊ,國語:Táinán)。 | Tse sī Tâi-lâm, kán-tshing "lâm" (Pe̍h-uē-jī: Tâi-lâm; tsù-im hû-hō: ㄊㄞˊ ㄋㄢˊ, kok-gí: Táinán). | tse sī Tâi-lâm,kán-tshing「lâm」(Pe̍h-uē-jī:Tâi-lâm;tsù-im hû-hō:ㄊㄞˊ ㄋㄢˊ,kok-gí:Táinán)。 |
convert_non_cjk
Boolean - 定義是否轉換非中文單詞。可用於將臺羅拼音轉換為其他羅馬拼音系統。
True
- 轉換非中文字詞False
(預設) - 僅轉換中文字詞
文本 | False | True |
---|---|---|
我食pháng | ㆣㄨㄚˋ ㄐㄧㄚㆷ˙ pháng | ㆣㄨㄚˋ ㄐㄧㄚㆷ˙ ㄆㄤˋ |
Tokeniser
類別對臺灣話句子執行類似 NLTK wordpunct_tokenize 的標記化。
# 建構子
t = Tokeniser(keep_original)
# 標記臺灣語句
t.tokenise(input)
keep_original
Boolean - 定義是否保留輸入的原始字符。
True
(預設) - 保留原始字符False
- 使用資料集中定義的字符替換原始字符
文本 | True | False |
---|---|---|
臺灣火鸡肉饭 | ['臺灣', '火鸡肉饭'] | ['台灣', '火雞肉飯'] |
實用的臺灣話 NLP 助手函式。
to_traditional
函式將輸入轉換為繁體字元以便於資料集使用。也可應對繁體字符變體。
to_simplified
函式將輸入轉換為簡體字元。
is_cjk
函式檢查輸入字串是否完全由中文字符組成。
to_traditional(input)
to_simplified(input)
is_cjk(input)
# Converter
from taibun import Converter
## System
c = Converter() # system 預設值: Tailo
c.get('先生講,學生恬恬聽。')
>> Sian-sinn kóng, ha̍k-sing tiām-tiām thiann.
c = Converter(system='Zhuyin')
c.get('先生講,學生恬恬聽。')
>> ㄒㄧㄢ ㄒㆪ ㄍㆲˋ, ㄏㄚㆶ˙ ㄒㄧㄥ ㄉㄧㆰ˫ ㄉㄧㆰ˫ ㄊㄧㆩ.
## Dialect
c = Converter() # dialect 預設值: south
c.get("我欲用箸食魚")
>> Guá beh īng tī tsia̍h hî
c = Converter(dialect='north')
c.get("我欲用箸食魚")
>> Guá bueh īng tū tsia̍h hû
c = new Converter({ dialect: 'singapore' });
c.get("我欲用箸食魚");
>> Uá bueh ēng tū tsia̍h hû
## Format
c = Converter() # 在 Tailo 中,format 預設值: mark
c.get("生日快樂")
>> Senn-ji̍t khuài-lo̍k
c = Converter(format='number')
c.get("生日快樂")
>> Senn1-jit8 khuai3-lok8
c = Converter(format='strip')
c.get("生日快樂")
>> Senn-jit khuai-lok
## Delimiter
c = Converter(delimiter='')
c.get("先生講,學生恬恬聽。")
>> Siansinn kóng, ha̍ksing tiāmtiām thiann.
c = Converter(system='Pingyim', delimiter='-')
c.get("先生講,學生恬恬聽。")
>> Siān-snī gǒng, hág-sīng diâm-diâm tinā.
## Sandhi
c = Converter() # 在 Tailo 中,sandhi 預設值: none
c.get("這是你的茶桌仔無")
>> Tse sī lí ê tê-toh-á bô
c = Converter(sandhi='auto')
c.get("這是你的茶桌仔無")
>> Tse sì li ē tē-to-á bô
c = Converter(sandhi='exc_last')
c.get("這是你的茶桌仔無")
>> Tsē sì li ē tē-tó-a bô
c = Converter(sandhi='incl_last')
c.get("這是你的茶桌仔無")
>> Tsē sì li ē tē-tó-a bō
## Punctuation
c = Converter() # punctuation 預設值: format
c.get("太空朋友,恁好!恁食飽未?")
>> Thài-khong pîng-iú, lín-hó! Lín tsia̍h-pá buē?
c = Converter(punctuation='none')
c.get("太空朋友,恁好!恁食飽未?")
>> thài-khong pîng-iú,lín-hó!lín tsia̍h-pá buē?
## Convert non-CJK
c = Converter(system='Zhuyin') # convert_non_cjk 預設值: False
c.get("我食pháng")
>> ㆣㄨㄚˋ ㄐㄧㄚㆷ˙ pháng
c = Converter(system='Zhuyin', convert_non_cjk=True)
c.get("我食pháng")
>> ㆣㄨㄚˋ ㄐㄧㄚㆷ˙ ㄆㄤˋ
# Tokeniser
from taibun import Tokeniser
t = Tokeniser()
t.tokenise("太空朋友,恁好!恁食飽未?")
>> ['太空', '朋友', ',', '恁好', '!', '恁', '食飽', '未', '?']
## Keep Original
t = Tokeniser() # keep_original 預設值: True
t.tokenise("爲啥物臺灣遮爾好?")
>> ['爲啥物', '臺灣', '遮爾', '好', '?']
t.tokenise("为啥物台湾遮尔好?")
>> ['为啥物', '台湾', '遮尔', '好', '?']
t = Tokeniser(False)
t.tokenise("爲啥物臺灣遮爾好?")
>> ['為啥物', '台灣', '遮爾', '好', '?']
t.tokenise("为啥物台湾遮尔好?")
>> ['為啥物', '台灣', '遮爾', '好', '?']
# 其他函式
from taibun import to_traditional, to_simplified, is_cjk
## to_traditional
to_traditional("我听无台语")
>> 我聽無台語
to_traditional("我爱这个个人台面")
>> 我愛這个個人檯面
to_traditional("爲啥物")
>> 為啥物
## to_simplified
to_simplified("我聽無台語")
>> 我听无台语
## is_cjk
is_cjk('我食麭')
>> True
is_cjk('我食pháng')
>> False
- 台華線上對照典 (藉由 ChhoeTaigi)
- iTaigi華台對照典 (藉由 ChhoeTaigi)
因為 Taibun 是 MIT 許可的,所以任何開發人員基本上都可以用它做任何他們想做的事情,只要他們在源代碼的任何副本中包含原始版權和許可聲明。 請注意,該包使用的數據已獲得不同版權的許可。
數據已獲得 CC BY-SA 4.0 許可