目錄
Taibun 可以通過 npm 安裝
$ npm install taibun --save
Converter
類別使用開發人員指定的參數將中文字音譯為所選的音譯系統。適用於繁體和簡體字符。
// 建構子
c = new Converter({ system, dialect, format, delimiter, sandhi, punctuation, convertNonCjk });
// 音譯中文字
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
- 最接近臺灣話的正確音調變音,包括代詞、後綴和帶有「仔」詞的音調變音excLast
- 除了最後一個音節之外,每個音節都變調inclLast
- 包括最後一個音節在內,每個音節都變調
預設值取決於所選的 system
:
auto
- 對於Tongiong
none
- 對於Tailo
,POJ
,Zhuyin
,TLPA
,Pingyim
,IPA
文本 | none | auto | excLast | inclLast |
---|---|---|---|---|
這是你的茶桌仔無 | 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)。 |
convertNonCjk
Boolean - 定義是否轉換非中文單詞。可用於將臺羅拼音轉換為其他羅馬拼音系統。
true
- 轉換非中文字詞false
(預設) - 僅轉換中文字詞
文本 | false | true |
---|---|---|
我食pháng | ㆣㄨㄚˋ ㄐㄧㄚㆷ˙ pháng | ㆣㄨㄚˋ ㄐㄧㄚㆷ˙ ㄆㄤˋ |
Tokeniser
類別對臺灣話句子執行類似 NLTK wordpunct_tokenize 的標記化。
// 建構子
t = new Tokeniser(keepOriginal);
// 標記臺灣語句
t.tokenise(input);
keepOriginal
Boolean - 定義是否保留輸入的原始字符。
true
(預設) - 保留原始字符false
- 使用資料集中定義的字符替換原始字符
文本 | true | false |
---|---|---|
臺灣火鸡肉饭 | ['臺灣', '火鸡肉饭'] | ['台灣', '火雞肉飯'] |
實用的臺灣話 NLP 助手函式。
toTraditional
函式將輸入轉換為繁體字元以便於資料集使用。也可應對繁體字符變體。
toSimplified
函式將輸入轉換為簡體字元。
isCjk
函式檢查輸入字串是否完全由中文字符組成。
toTraditional(input);
toSimplified(input);
isCjk(input);
// Converter
const { Converter } = require('taibun');
//// System
c = new Converter(); // system 預設值: Tailo
c.get('先生講,學生恬恬聽。');
>> Sian-sinn kóng, ha̍k-sing tiām-tiām thiann.
c = new Converter({ system: 'Zhuyin' });
c.get('先生講,學生恬恬聽。');
>> ㄒㄧㄢ ㄒㆪ ㄍㆲˋ, ㄏㄚㆶ˙ ㄒㄧㄥ ㄉㄧㆰ˫ ㄉㄧㆰ˫ ㄊㄧㆩ.
//// Dialect
c = new Converter(); // dialect 預設值: south
c.get("我欲用箸食魚");
>> Guá beh īng tī tsia̍h hî
c = new 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 = new Converter(); // 在 Tailo 中,format 預設值: mark
c.get("生日快樂");
>> Senn-ji̍t khuài-lo̍k
c = new Converter({ format: 'number' });
c.get("生日快樂");
>> Senn1-jit8 khuai3-lok8
c = new Converter({ format: 'strip' });
c.get("生日快樂");
>> Senn-jit khuai-lok
//// Delimiter
c = new Converter({ delimiter: '' });
c.get("先生講,學生恬恬聽。");
>> Siansinn kóng, ha̍ksing tiāmtiām thiann.
c = new Converter({ system: 'Pingyim', delimiter: '-' });
c.get("先生講,學生恬恬聽。");
>> Siān-snī gǒng, hág-sīng diâm-diâm tinā.
//// Sandhi
c = new Converter(); // 在 Tailo 中,sandhi 預設值: none
c.get("這是你的茶桌仔無");
>> Tse sī lí ê tê-toh-á bô
c = new Converter({ sandhi: 'auto' });
c.get("這是你的茶桌仔無");
>> Tse sì li ē tē-to-á bô
c = new Converter({ sandhi: 'excLast' });
c.get("這是你的茶桌仔無");
>> Tsē sì li ē tē-tó-a bô
c = new Converter({ sandhi: 'inclLast' });
c.get("這是你的茶桌仔無");
>> Tsē sì li ē tē-tó-a bō
//// Punctuation
c = new Converter(); // punctuation 預設值: format
c.get("太空朋友,恁好!恁食飽未?");
>> Thài-khong pîng-iú, lín-hó! Lín tsia̍h-pá buē?
c = new Converter({ punctuation: 'none' });
c.get("太空朋友,恁好!恁食飽未?");
>> thài-khong pîng-iú,lín-hó!lín tsia̍h-pá buē?
//// Convert non-CJK
c = new Converter({ system: 'Zhuyin' }); // convertNonCjk 預設值: false
c.get("我食pháng");
>> ㆣㄨㄚˋ ㄐㄧㄚㆷ˙ pháng
c = new Converter({ system: 'Zhuyin', convertNonCjk: true });
c.get("我食pháng");
>> ㆣㄨㄚˋ ㄐㄧㄚㆷ˙ ㄆㄤˋ
// Tokeniser
const { Tokeniser } = require('taibun');
t = new Tokeniser();
t.tokenise("太空朋友,恁好!恁食飽未?");
>> ['太空', '朋友', ',', '恁好', '!', '恁', '食飽', '未', '?']
//// Keep Original
t = new Tokeniser(); // keepOriginal 預設值: true
t.tokenise("爲啥物臺灣遮爾好?");
>> ['爲啥物', '臺灣', '遮爾', '好', '?']
t.tokenise("为啥物台湾遮尔好?");
>> ['为啥物', '台湾', '遮尔', '好', '?']
t = new Tokeniser(false);
t.tokenise("爲啥物臺灣遮爾好?");
>> ['為啥物', '台灣', '遮爾', '好', '?']
t.tokenise("为啥物台湾遮尔好?");
>> ['為啥物', '台灣', '遮爾', '好', '?']
// Other Functions
const { toTraditional, toSimplified, isCjk } = require('taibun');
//// toTraditional
toTraditional("我听无台语");
>> 我聽無台語
toTraditional("我爱这个个人台面");
>> 我愛這个個人檯面
toTraditional("爲啥物");
>> 為啥物
//// toSimplified
toSimplified("我聽無台語");
>> 我听无台语
//// isCjk
isCjk('我食麭')
>> true
isCjk('我食pháng');
>> false
- 台華線上對照典 (藉由 ChhoeTaigi)
- iTaigi華台對照典 (藉由 ChhoeTaigi)
因為 Taibun 是 MIT 許可的,所以任何開發人員基本上都可以用它做任何他們想做的事情,只要他們在源代碼的任何副本中包含原始版權和許可聲明。 請注意,該包使用的數據已獲得不同版權的許可。
數據已獲得 CC BY-SA 4.0 許可