Skip to content

Latest commit

 

History

History
456 lines (318 loc) · 15.1 KB

README-oan.md

File metadata and controls

456 lines (318 loc) · 15.1 KB

國語 | English


Logo

Taibun.js

Contributions Live Demo Tests Release Licence LinkedIn Downloads

台語音譯器佮標記器

伊有允許自己設定音譯,佮揣出關於台語發音所需要的資料的方法
包括台語的單詞標記器

回報程式缺點npm


目錄
  1. 版本
  2. 安裝
  3. 用法
  4. 數據
  5. 致謝
  6. 牌照

版本

Python Version

安裝

Taibun 會曉通過 npm 安裝

$ npm install taibun --save

用法

Converter

Converter 類別使用開發人員指定的參數將中文字音譯為所選的音譯系統。繁體佮簡體攏合用。

// 建構仔
c = new Converter({ system, dialect, format, delimiter, sandhi, punctuation, convertNonCjk });

// 音譯中文字
c.get(input);

System

system String - 音譯系統。

文本 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

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

format String - 轉換後的句子中表示聲調的格式。

  • mark (預設) - 每个音節攏用變音符號。毋支援拼音
  • number - 加入一个代表音節尾端聲調的數字
  • strip - 刪除任何音調標記
文本 mark number strip
台灣 Tâi-uân Tai5-uan5 Tai-uan

Delimiter

delimiter String - 設定欲放佇詞音節中間的分隔符。

預設值看所選的 system 決定:

  • '-' - 對著 Tailo, POJ, Tongiong
  • '' - 對著 Pingyim
  • ' ' - 對著 Zhuyin, TLPA, IPA
文本 '-' '' ' '
台灣 Tâi-uân Tâiuân Tâi uân

Sandhi

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

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

convertNonCjk Boolean - 定義轉換非中文單詞。會當用台羅來做其他羅馬拼音系統。

  • true - 轉換非中文字詞
  • false (預設) - 干焦轉換中文字詞
文本 false true
我食pháng ㆣㄨㄚˋ ㄐㄧㄚㆷ˙ pháng ㆣㄨㄚˋ ㄐㄧㄚㆷ˙ ㄆㄤˋ

Tokeniser

Tokeniser 類別佇台語句子做類似 NLTK wordpunct_tokenize 的標記化。

// 建構仔
t = new Tokeniser(keepOriginal);

// 標記台語句
t.tokenise(input);

Keep original

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  tsia̍h 

c = new Converter({ dialect: 'north' });
c.get("我欲用箸食魚");
>> Guá bueh īng  tsia̍h 

c = new Converter({ dialect: 'singapore' });
c.get("我欲用箸食魚");
>>  bueh ēng  tsia̍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   ê -toh-á 

c = new Converter({ sandhi: 'auto' });
c.get("這是你的茶桌仔無");
>> Tse  li ē -to-á 

c = new Converter({ sandhi: 'excLast' });
c.get("這是你的茶桌仔無");
>> Tsē  li ē --a 

c = new Converter({ sandhi: 'inclLast' });
c.get("這是你的茶桌仔無");
>> Tsē  li ē --a 

//// Punctuation
c = new Converter(); // punctuation 預設值: format
c.get("太空朋友,恁好!恁食飽未?");
>> Thài-khong pîng-, lín-! Lín tsia̍h- buē?

c = new Converter({ punctuation: 'none' });
c.get("太空朋友,恁好!恁食飽未?");
>> thài-khong pîng-iú,lín-hó!lín tsia̍h- 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("为啥物台湾遮尔好?");
>> ['為啥物', '台灣', '遮爾', '好', '?']


// 其他的函式
const { toTraditional, toSimplified, isCjk } = require('taibun');

//// toTraditional
toTraditional("我听无台语");
>> 我聽無台語

toTraditional("我爱这个个人台面");
>> 我愛這个個人檯面

toTraditional("爲啥物");
>> 為啥物

//// toSimplified
toSimplified("我聽無台語");
>> 我听无台语

//// isCjk
isCjk('我食麭')
>> true

isCjk('我食pháng');
>> false

數據

致謝

牌照

因為 Taibun 合和 MIT 許可,所以任何開發人員基本上攏會當用伊做任何𪜶欲做的代誌,只欲𪜶佇源代碼的任何副本中含原始版權佮許可聲明。 請注意,彼包使用的資料已經拿著不同版權的許可。

數據已獲得 CC BY-SA 4.0 許可