{"id":16443138,"url":"https://github.com/andreihar/taibun","last_synced_at":"2025-03-21T05:30:30.804Z","repository":{"id":191731151,"uuid":"653413497","full_name":"andreihar/taibun","owner":"andreihar","description":"Taiwanese Hokkien Transliterator and Tokeniser","archived":false,"fork":false,"pushed_at":"2024-05-20T10:42:30.000Z","size":6743,"stargazers_count":10,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-21T11:25:12.785Z","etag":null,"topics":["hokkien","natural-language-processing","nlp","nlp-library","poj","python","romanisation","romanization","taigi","taiwanese","tl","tokenisation","tokeniser","tokenization","tokenizer","transliteration","transliterator","zhuyin"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/taibun/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andreihar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-14T02:28:16.000Z","updated_at":"2024-06-25T02:53:14.606Z","dependencies_parsed_at":"2023-08-31T11:54:25.826Z","dependency_job_id":"8c780349-47f4-41dc-8ce3-548095247a46","html_url":"https://github.com/andreihar/taibun","commit_stats":null,"previous_names":["andreihar/taibun"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreihar%2Ftaibun","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreihar%2Ftaibun/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreihar%2Ftaibun/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreihar%2Ftaibun/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreihar","download_url":"https://codeload.github.com/andreihar/taibun/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244113584,"owners_count":20400176,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hokkien","natural-language-processing","nlp","nlp-library","poj","python","romanisation","romanization","taigi","taiwanese","tl","tokenisation","tokeniser","tokenization","tokenizer","transliteration","transliterator","zhuyin"],"created_at":"2024-10-11T09:19:32.951Z","updated_at":"2025-03-21T05:30:29.992Z","avatar_url":"https://github.com/andreihar.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[台語](readme/README-oan.md) | [國語](readme/README-cmn.md)\n\n\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/andreihar/taibun\"\u003e\n    \u003cimg src=\"https://github.com/andreihar/taibun/raw/main/readme/logo.png\" alt=\"Logo\" width=\"90\" height=\"80\"\u003e\n  \u003c/a\u003e\n  \n# Taibun\n\n\n\n\u003c!-- PROJECT SHIELDS --\u003e\n[![Contributions][contributions-badge]][contributions]\n[![Live Demo][demo-badge]][demo]\n[![Tests][tests-badge]][tests]\n[![Release][release-badge]][release]\n[![Licence][licence-badge]][licence]\n[![LinkedIn][linkedin-badge]][linkedin]\n[![Downloads][downloads-badge]][pypi]\n\n**Taiwanese Hokkien Transliterator and Tokeniser**\n\nIt has methods that allow to customise transliteration and retrieve any necessary information about Taiwanese Hokkien pronunciation.\u003cbr /\u003e\nIncludes word tokeniser for Taiwanese Hokkien.\n\n[Report Bug][bug] •\n[PyPI][pypi]\n\n\u003c/div\u003e\n\n\n\n---\n\n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails open\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\u003ca href=\"#versions\"\u003eVersions\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#install\"\u003eInstall\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\n          \u003ca href=\"#converter\"\u003eConverter\u003c/a\u003e\n          \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"#system\"\u003eSystem\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#dialect\"\u003eDialect\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#format\"\u003eFormat\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#delimiter\"\u003eDelimiter\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#sandhi\"\u003eSandhi\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#punctuation\"\u003ePunctuation\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#convert-non-cjk\"\u003eConvert non-CJK\u003c/a\u003e\u003c/li\u003e\n          \u003c/ul\u003e\n        \u003c/li\u003e\n        \u003cli\u003e\n          \u003ca href=\"#tokeniser\"\u003eTokeniser\u003c/a\u003e\n          \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"#keep-original\"\u003eKeep original\u003c/a\u003e\u003c/li\u003e\n          \u003c/ul\u003e\n        \u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#other-functions\"\u003eOther Functions\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#example\"\u003eExample\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#data\"\u003eData\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgements\"\u003eAcknowledgements\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#licence\"\u003eLicence\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n\n\u003c!-- OTHER VERSIONS --\u003e\n## Versions\n\n[![JavaScript Version][js-badge]][js-link]\n\n\n\n\u003c!-- INSTALL --\u003e\n## Install\n\nTaibun can be installed from [pypi][pypi]\n\n```bash\n$ pip install taibun\n```\n\n\n\n\u003c!-- USAGE --\u003e\n## Usage\n\n### Converter\n\n`Converter` class transliterates the Chinese characters to the chosen transliteration system with parameters specified by the developer. Works for both Traditional and Simplified characters.\n\n```python\n# Constructor\nc = Converter(system, dialect, format, delimiter, sandhi, punctuation, convert_non_cjk)\n\n# Transliterate Chinese characters\nc.get(input)\n```\n\n#### System\n\n`system` String - system of transliteration.\n\n* `Tailo` (default) - [Tâi-uân Lô-má-jī Phing-im Hong-àn][tailo-wiki]\n* `POJ` - [Pe̍h-ōe-jī][poj-wiki]\n* `Zhuyin` - [Taiwanese Phonetic Symbols][zhuyin-wiki]\n* `TLPA` - [Taiwanese Language Phonetic Alphabet][tlpa-wiki]\n* `Pingyim` - [Bbánlám Uē Pìngyīm Hōng'àn][pingyim-wiki]\n* `Tongiong` - [Daī-ghî Tōng-iōng Pīng-im][tongiong-wiki]\n* `IPA` - [International Phonetic Alphabet][ipa-wiki]\n\n| text | Tailo   | POJ     | Zhuyin      | TLPA      | Pingyim | Tongiong | IPA         |\n| ---- | ------- | ------- | ----------- | --------- | ------- | -------- | ----------- |\n| 台灣 | Tâi-uân | Tâi-oân | ㄉㄞˊ ㄨㄢˊ | Tai5 uan5 | Dáiwán  | Tāi-uǎn  | Tai²⁵ uan²⁵ |\n\n#### Dialect\n\n`dialect` String - preferred pronunciation.\n\n* `south` (default) - [Zhangzhou][zhangzhou-wiki]-leaning pronunciation\n* `north` - [Quanzhou][quanzhou-wiki]-leaning pronunciation\n* `singapore` - Quanzhou-leaning pronunciation with [Singaporean characteristics][singapore-wiki]\n\n| text           | south                       | north                       | singapore                  |\n| -------------- | --------------------------- | --------------------------- | -------------------------- |\n| 五月節我啉咖啡 | 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 |\n\n#### Format\n\n`format` String - format in which tones will be represented in the converted sentence.\n\n* `mark` (default) - uses diacritics for each syllable. Not available for TLPA\n* `number` - add a number which represents the tone at the end of the syllable\n* `strip` - removes any tone marking\n\n| text | mark    | number    | strip   |\n| ---- | ------- | --------- | ------- |\n| 台灣 | Tâi-uân | Tai5-uan5 | Tai-uan |\n\n#### Delimiter\n\n`delimiter` String - sets the delimiter character that will be placed in between syllables of a word.\n\nDefault value depends on the chosen `system`:\n\n* `'-'` - for `Tailo`, `POJ`, `Tongiong`\n* `''` - for `Pingyim`\n* `' '` - for `Zhuyin`, `TLPA`, `IPA`\n\n| text | '-'     | ''     | ' '     |\n| ---- | ------- | ------ | ------- |\n| 台灣 | Tâi-uân | Tâiuân | Tâi uân |\n\n#### Sandhi\n\n`sandhi` String - applies the [sandhi rules of Taiwanese Hokkien][sandhi-wiki].\n\nSince it's difficult to encode all sandhi rules, Taibun provides multiple modes for sandhi conversion to allow for customised sandhi handling.\n\n* `none` - doesn't perform any tone sandhi\n* `auto` - closest approximation to full correct tone sandhi of Taiwanese, with proper sandhi of pronouns, suffixes, and words with 仔\n* `exc_last` - changes tone for every syllable except for the last one\n* `incl_last` - changes tone for every syllable including the last one\n\nDefault value depends on the chosen `system`:\n\n* `auto` - for `Tongiong`\n* `none` - for `Tailo`, `POJ`, `Zhuyin`, `TLPA`, `Pingyim`, `IPA`\n\n| text             | none                    | auto                   | exc_last               | incl_last              |\n| ---------------- | ----------------------- | ---------------------- | ---------------------- | ---------------------- |\n| 這是你的茶桌仔無 | 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ō |\n\nSandhi rules also change depending on the dialect chosen.\n\n| text | no sandhi | south   | north / singapore |\n| ---- | --------- | ------- | ----------------- |\n| 台灣 | Tâi-uân   | Tāi-uân | Tài-uân           |\n\n#### Punctuation\n\n`punctuation` String\n\n* `format` (default) - converts Chinese-style punctuation to Latin-style punctuation and capitalises words at the beginning of each sentence\n* `none` - preserves Chinese-style punctuation and doesn't capitalise words at the beginning of new sentences\n\n| text                                                                           | format                                                                                            | none                                                                                                 |\n| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |\n| 這是臺南，簡稱「南」（白話字：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）。 |\n\n#### Convert non-CJK\n\n`convert_non_cjk` Boolean - defines whether or not to convert non-Chinese words. Can be used to convert Tailo to another romanisation system.\n\n* `True` - convert non-Chinese character words\n* `False` (default) - convert only Chinese character words\n\n| text      | False                   | True                    |\n| --------- | ----------------------- | ----------------------- |\n| 我食pháng | ㆣㄨㄚˋ ㄐㄧㄚㆷ˙ pháng | ㆣㄨㄚˋ ㄐㄧㄚㆷ˙ ㄆㄤˋ |\n\n### Tokeniser\n\n`Tokeniser` class performs [NLTK wordpunct_tokenize][nltk-tokenize]-like tokenisation of a Taiwanese Hokkien sentence.\n\n```python\n# Constructor\nt = Tokeniser(keep_original)\n\n# Tokenise Taiwanese Hokkien sentence\nt.tokenise(input)\n```\n\n#### Keep original\n\n`keep_original` Boolean - defines whether the original characters of the input are retained.\n\n* `True` (default) - preserve original characters\n* `False` - replace original characters with characters defined in the dataset\n\n| text         | True                 | False                |\n| ------------ | -------------------- | -------------------- |\n| 臺灣火鸡肉饭 | ['臺灣', '火鸡肉饭'] | ['台灣', '火雞肉飯'] |\n\n### Other Functions\n\nHandy functions for NLP tasks in Taiwanese Hokkien.\n\n`to_traditional` function converts input to Traditional Chinese characters that are used in the dataset. Also accounts for different variants of Traditional Chinese characters.\n\n`to_simplified` function converts input to Simplified Chinese characters.\n\n`is_cjk` function checks whether the input string consists entirely of Chinese characters.\n\n```python\nto_traditional(input)\n\nto_simplified(input)\n\nis_cjk(input)\n```\n\n\n\n\u003c!-- EXAMPLE --\u003e\n## Example\n\n```python\n# Converter\nfrom taibun import Converter\n\n## System\nc = Converter() # Tailo system default\nc.get('先生講，學生恬恬聽。')\n\u003e\u003e Sian-sinn kóng, ha̍k-sing tiām-tiām thiann.\n\nc = Converter(system='Zhuyin')\nc.get('先生講，學生恬恬聽。')\n\u003e\u003e ㄒㄧㄢ ㄒㆪ ㄍㆲˋ, ㄏㄚㆶ˙ ㄒㄧㄥ ㄉㄧㆰ˫ ㄉㄧㆰ˫ ㄊㄧㆩ.\n\n## Dialect\nc = Converter() # south dialect default\nc.get(\"我欲用箸食魚\")\n\u003e\u003e Guá beh īng tī tsia̍h hî\n\nc = Converter(dialect='north')\nc.get(\"我欲用箸食魚\")\n\u003e\u003e Guá bueh īng tū tsia̍h hû\n\nc = new Converter({ dialect: 'singapore' });\nc.get(\"我欲用箸食魚\");\n\u003e\u003e Uá bueh ēng tū tsia̍h hû\n\n## Format\nc = Converter() # for Tailo, mark by default\nc.get(\"生日快樂\")\n\u003e\u003e Senn-ji̍t khuài-lo̍k\n\nc = Converter(format='number')\nc.get(\"生日快樂\")\n\u003e\u003e Senn1-jit8 khuai3-lok8\n\nc = Converter(format='strip')\nc.get(\"生日快樂\")\n\u003e\u003e Senn-jit khuai-lok\n\n## Delimiter\nc = Converter(delimiter='')\nc.get(\"先生講，學生恬恬聽。\")\n\u003e\u003e Siansinn kóng, ha̍ksing tiāmtiām thiann.\n\nc = Converter(system='Pingyim', delimiter='-')\nc.get(\"先生講，學生恬恬聽。\")\n\u003e\u003e Siān-snī gǒng, hág-sīng diâm-diâm tinā.\n\n## Sandhi\nc = Converter() # for Tailo, sandhi none by default\nc.get(\"這是你的茶桌仔無\")\n\u003e\u003e Tse sī lí ê tê-toh-á bô\n\nc = Converter(sandhi='auto')\nc.get(\"這是你的茶桌仔無\")\n\u003e\u003e Tse sì li ē tē-to-á bô\n\nc = Converter(sandhi='exc_last')\nc.get(\"這是你的茶桌仔無\")\n\u003e\u003e Tsē sì li ē tē-tó-a bô\n\nc = Converter(sandhi='incl_last')\nc.get(\"這是你的茶桌仔無\")\n\u003e\u003e Tsē sì li ē tē-tó-a bō\n\n## Punctuation\nc = Converter() # format punctuation default\nc.get(\"太空朋友，恁好！恁食飽未？\")\n\u003e\u003e Thài-khong pîng-iú, lín-hó! Lín tsia̍h-pá buē?\n\nc = Converter(punctuation='none')\nc.get(\"太空朋友，恁好！恁食飽未？\")\n\u003e\u003e thài-khong pîng-iú，lín-hó！lín tsia̍h-pá buē？\n\n## Convert non-CJK\nc = Converter(system='Zhuyin') # False convert_non_cjk default\nc.get(\"我食pháng\")\n\u003e\u003e ㆣㄨㄚˋ ㄐㄧㄚㆷ˙ pháng\n\nc = Converter(system='Zhuyin', convert_non_cjk=True)\nc.get(\"我食pháng\")\n\u003e\u003e ㆣㄨㄚˋ ㄐㄧㄚㆷ˙ ㄆㄤˋ\n\n\n# Tokeniser\nfrom taibun import Tokeniser\n\nt = Tokeniser()\nt.tokenise(\"太空朋友，恁好！恁食飽未？\")\n\u003e\u003e ['太空', '朋友', '，', '恁好', '！', '恁', '食飽', '未', '？']\n\n## Keep Original\nt = Tokeniser() # True keep_original default\nt.tokenise(\"爲啥物臺灣遮爾好？\")\n\u003e\u003e ['爲啥物', '臺灣', '遮爾', '好', '？']\n\nt.tokenise(\"为啥物台湾遮尔好？\")\n\u003e\u003e ['为啥物', '台湾', '遮尔', '好', '？']\n\nt = Tokeniser(False)\nt.tokenise(\"爲啥物臺灣遮爾好？\")\n\u003e\u003e ['為啥物', '台灣', '遮爾', '好', '？']\n\nt.tokenise(\"为啥物台湾遮尔好？\")\n\u003e\u003e ['為啥物', '台灣', '遮爾', '好', '？']\n\n\n# Other Functions\nfrom taibun import to_traditional, to_simplified, is_cjk\n\n## to_traditional\nto_traditional(\"我听无台语\")\n\u003e\u003e 我聽無台語\n\nto_traditional(\"我爱这个个人台面\")\n\u003e\u003e 我愛這个個人檯面\n\nto_traditional(\"爲啥物\")\n\u003e\u003e 為啥物\n\n## to_simplified\nto_simplified(\"我聽無台語\")\n\u003e\u003e 我听无台语\n\n## is_cjk\nis_cjk('我食麭')\n\u003e\u003e True\n\nis_cjk('我食pháng')\n\u003e\u003e False\n```\n\n\n\n\u003c!-- DATA --\u003e\n## Data\n\n- [Taiwanese-Chinese Online Dictionary][online-dictionary] (via [ChhoeTaigi][data-via])\n- [iTaigi Chinese-Taiwanese Comparison Dictionary][itaigi-dictionary] (via [ChhoeTaigi][data-via])\n\n\n\n\u003c!-- ACKNOWLEDGEMENTS --\u003e\n## Acknowledgements\n\n- Samuel Jen ([Github][samuel-github] · [LinkedIn][samuel-linkedin]) - Taiwanese and Mandarin translation\n\n\n\n\u003c!-- LICENCE --\u003e\n## Licence\n\nBecause Taibun is MIT-licensed, any developer can essentially do whatever they want with it as long as they include the original copyright and licence notice in any copies of the source code. Note, that the data used by the package is licensed under a different copyright.\n\nThe data is licensed under [CC BY-SA 4.0][data-cc]\n\n\n\n\u003c!-- MARKDOWN LINKS --\u003e\n\u003c!-- Badges and their links --\u003e\n[contributions]: https://github.com/andreihar/taibun/issues\n[contributions-badge]: https://img.shields.io/badge/Contributions-Welcomed-be132d?style=for-the-badge\u0026logo=github\n[demo]: https://taibun.andreihar.com/\n[demo-badge]: https://img.shields.io/badge/Live_Demo-222222?style=for-the-badge\u0026logo=homeadvisor\u0026logoColor=white\n[tests]: https://github.com/andreihar/taibun/actions\n[tests-badge]: https://img.shields.io/github/actions/workflow/status/andreihar/taibun/ci.yaml?style=for-the-badge\u0026logo=github-actions\u0026logoColor=ffffff\n[release-badge]: https://img.shields.io/github/v/release/andreihar/taibun?color=38618c\u0026style=for-the-badge\n[release]: https://github.com/andreihar/taibun/releases\n[licence-badge]: https://img.shields.io/github/license/andreihar/taibun?color=000000\u0026style=for-the-badge\n[licence]: LICENSE\n[linkedin-badge]: https://img.shields.io/badge/LinkedIn-0077b5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=ffffff\n[linkedin]: https://www.linkedin.com/in/andreihar/\n[js-badge]: https://img.shields.io/badge/JS_Version-f7df1e?style=for-the-badge\u0026logo=javascript\u0026logoColor=000000\n[js-link]: https://github.com/andreihar/taibun.js\n[downloads-badge]: https://img.shields.io/pypi/dm/taibun.svg?style=for-the-badge\n\n\u003c!-- Technical links --\u003e\n[pypi]: https://pypi.org/project/taibun\n[bug]: https://github.com/andreihar/taibun/issues\n[online-dictionary]: http://ip194097.ntcu.edu.tw/ungian/soannteng/chil/Taihoa.asp\n[itaigi-dictionary]: https://itaigi.tw/\n[data-via]: https://github.com/ChhoeTaigi/ChhoeTaigiDatabase\n[data-cc]: https://creativecommons.org/licenses/by-sa/4.0/deed.en\n[tailo-wiki]: https://en.wikipedia.org/wiki/T%C3%A2i-u%C3%A2n_L%C3%B4-m%C3%A1-j%C4%AB_Phing-im_Hong-%C3%A0n\n[poj-wiki]: https://en.wikipedia.org/wiki/Pe%CC%8Dh-%C5%8De-j%C4%AB\n[zhuyin-wiki]: https://en.wikipedia.org/wiki/Taiwanese_Phonetic_Symbols\n[tlpa-wiki]: https://en.wikipedia.org/wiki/Taiwanese_Language_Phonetic_Alphabet\n[pingyim-wiki]: https://en.wikipedia.org/wiki/Bb%C3%A1nl%C3%A1m_p%C3%ACngy%C4%ABm\n[tongiong-wiki]: https://en.wikipedia.org/wiki/Da%C4%AB-gh%C3%AE_t%C5%8Dng-i%C5%8Dng_p%C4%ABng-im\n[ipa-wiki]: https://en.wikipedia.org/wiki/International_Phonetic_Alphabet\n[zhangzhou-wiki]: https://en.wikipedia.org/wiki/Zhangzhou_dialects\n[quanzhou-wiki]: https://en.wikipedia.org/wiki/Quanzhou_dialects\n[singapore-wiki]: https://en.wikipedia.org/wiki/Singaporean_Hokkien\n[nltk-tokenize]: https://nltk.org/api/nltk.tokenize.html\n[sandhi-wiki]: https://en.wikipedia.org/wiki/Taiwanese_Hokkien#Tone%20sandhi:~:text=thng%E2%9F%A9%20(%22soup%22).-,Tone%20sandhi,-%5Bedit%5D\n\n\u003c!-- Socials --\u003e\n[samuel-github]: https://github.com/SSSam\n[samuel-linkedin]: https://www.linkedin.com/in/samuel-jen/","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreihar%2Ftaibun","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreihar%2Ftaibun","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreihar%2Ftaibun/lists"}