lao-word-splitter
Version:
A utility to split Lao language sentences into individual words
63 lines (42 loc) • 3.59 kB
Markdown
ເຄື່ອງມືສຳລັບແຍກປະໂຫຍກພາສາລາວ ອອກເປັນແຕ່ລະຄຳອີງຕາມໂຄງສ້າງພາສາ.
A utility to split Lao language sentences into individual words based on syllable structure rules.
```bash
npm install lao-word-splitter
```
```typescript
import { splitLao } from 'lao-word-splitter';
// Example 1: Basic usage
const sentence = "ສະບາຍດີຕອນເຊົ້າ";
const words = splitLao(sentence);
console.log(words); // ["ສະ", "ບາຍ", "ດີ", "ຕອນ", "ເຊົ້າ"]
// Example 2: Mixed Lao and non-Lao text
const mixedText = "ພາສາລາວ Lao language 101";
const mixedWords = splitLao(mixedText);
console.log(mixedWords); // ["ພາ", "ສາ", "ລາວ", "Lao", "language", "101"]
```
- ແຍກປະໂຫຍກພາສາລາວ ອອກເປັນແຕ່ລະຄຳ
- ຮອງຮັບເນື້ອຫາທີ່ເປັນພາສາລາວປົນກັບອັກສອນອື່ນໆ
- ບັນຈຸກົດເກນທາງດ້ານພາສາສາດ ເພື່ອແຍກຄຳພາສາລາວທີ່ຖືກຕ້ອງ
- Splits Lao sentences into individual words
- Supports mixed Lao and non-Lao text
- Implements linguistic rules for correct Lao word segmentation
ຟັງຊັນນີ້ໃຊ້ກົດເກນທາງດ້ານໂຄງສ້າງພະຍາງຄຳພາສາລາວເພື່ອກຳນົດຂອບເຂດຂອງຄຳ, ໂດຍອີງໃສ່:
- ຕົວອັກສອນທີ່ບົ່ງບອກການເລີ່ມຕົ້ນຄຳໃໝ່ (ເຊັ່ນ: ເ, ແ, ໂ, ໄ, ໃ)
- ຕົວອັກສອນກາງຄຳ (ສະຫຼະ, ວັນນະຍຸດ)
- ໂຄງສ້າງພິເສດ (ເຊັ່ນ: ກວ, ຫວ)
- ການຕັດແບ່ງເມື່ອມີການປ່ຽນແປງລະຫວ່າງພາສາລາວ ແລະ ພາສາອື່ນ
This function uses Lao syllable structure rules to determine word boundaries, based on:
- Characters indicating the start of new words (e.g., ເ, ແ, ໂ, ໄ, ໃ)
- Mid-word characters (vowels, tone marks)
- Special structures (like digraphs: ກວ, ຫວ)
- Segmentation at transitions between Lao and non-Lao text
## ປະສິດທິພາບ / Performance
ອານຸພາບການຄຳນວນ (Time Complexity): **O(n)** ໝາຍຄວາມວ່າໄວຂອງຟັງຊັນຂຶ້ນຢູ່ກັບຄວາມຍາວຂອງປະໂຫຍກທີ່ປ້ອນເຂົ້າໄປ. ການແຍກປະໂຫຍກແມ່ນໄວ ແລະ ມີປະສິດທິພາບເນື່ອງຈາກການແຍກເກີດຂຶ້ນພຽງແຕ່ໃນຮອບດຽວເທົ່ານັ້ນໂດຍບໍ່ມີຮອບວົນຊ້ອນກັນ.
Time Complexity: **O(n)** where n is the length of the input sentence. This means the algorithm's performance scales linearly with the input size. The segmentation is fast and efficient as it processes the text in a single pass without nested loops.
## ລິຂະສິດ / License
MIT