Skip to content

Latest commit

 

History

History
456 lines (318 loc) · 15.2 KB

README-cmn.md

File metadata and controls

456 lines (318 loc) · 15.2 KB

台語 | English


Logo

Taibun.js

Contributions Live Demo Tests Release Licence LinkedIn Downloads

臺灣話音譯器和標記器

它具有允許自定義音譯,和檢索有關臺灣話發音的任何必要信息的方法
包括臺灣話的單詞標記器

報告軟件缺陷npm


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

版本

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("为啥物台湾遮尔好?");
>> ['為啥物', '台灣', '遮爾', '好', '?']


// Other Functions
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 許可