Skip to content

Commit 48d61a9

Browse files
committed
Update transliterate_wiktionary
1 parent df82ac6 commit 48d61a9

4 files changed

Lines changed: 31 additions & 14 deletions

File tree

docs/api/transliterate.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ Modules
1717

1818
The `transliterate` function serves as a versatile transliteration tool, offering a range of transliteration engines to choose from. It provides flexibility and customization for your transliteration needs.
1919

20+
.. autofunction:: transliterate_wiktionary
21+
:noindex:
22+
2023
.. autofunction:: pronunciate
2124
:noindex:
2225

@@ -27,6 +30,9 @@ Modules
2730

2831
The `puan` function offers a unique transliteration feature known as "Puan." It provides a specialized transliteration method for Thai text and is an additional option for rendering Thai text into English characters.
2932

33+
.. autofunction:: get_word_dict
34+
:noindex:
35+
3036
.. autoclass:: pythainlp.transliterate.wunsen.WunsenTransliterate
3137
:members:
3238

pythainlp/transliterate/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
"pronunciate",
99
"puan",
1010
"romanize",
11-
"th_pron_transliterate",
1211
"transliterate",
12+
"transliterate_wiktionary",
1313
]
1414

1515
from pythainlp.transliterate.core import pronunciate, romanize, transliterate
1616
from pythainlp.transliterate.spoonerism import puan
17-
from pythainlp.transliterate.th_pron import (
17+
from pythainlp.transliterate.wiktionary import (
1818
get_word_dict,
19-
th_pron_transliterate,
19+
transliterate_wiktionary,
2020
)
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
# SPDX-FileCopyrightText: 2016-2026 PyThaiNLP Project
22
# SPDX-FileType: SOURCE
33
# SPDX-License-Identifier: Apache-2.0
4-
"""Thai pronunciation transliteration from Wiktionary th-pron module."""
4+
"""
5+
Thai pronunciation transliteration from Wiktionary th-pron module.
6+
Source code: https://en.wiktionary.org/wiki/Module:th-pron
7+
"""
58

69
from __future__ import annotations
710

@@ -421,7 +424,7 @@ def syllable(match: re.Match[str]) -> str:
421424

422425

423426
def get_word_dict(word: str) -> dict[str, str]:
424-
"""Return th-pron transliteration outputs in all supported systems.
427+
"""Return Wiktionary transliteration outputs in all supported systems.
425428
426429
:param str word: Thai input word.
427430
:return: ``dict[str, str]`` with ``word``, ``paiboon``, ``royin``, and ``ipa``.
@@ -440,6 +443,6 @@ def get_word_dict(word: str) -> dict[str, str]:
440443
}
441444

442445

443-
def transliterate(text: str, mode: str = "ipa") -> str:
446+
def transliterate_wiktionary(text: str, mode: str = "ipa") -> str:
444447
"""Backward-compatible alias for :func:`th_pron_transliterate`."""
445448
return th_pron_transliterate(text, mode=mode)

tests/core/test_transliterate_th_pron.py renamed to tests/core/test_transliterate_wiktionary.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,21 @@
55
import unittest
66

77
from pythainlp.transliterate import get_word_dict
8-
from pythainlp.transliterate.th_pron import transliterate
8+
from pythainlp.transliterate.wiktionary import transliterate_wiktionary
99

1010

1111
class TransliterateThPronTestCase(unittest.TestCase):
12-
def test_transliterate_supported_modes(self):
13-
self.assertEqual(transliterate("แมว", mode="royin"), "maeo")
14-
self.assertEqual(transliterate("คน", mode="paiboon"), "kon")
15-
self.assertEqual(transliterate("คน", mode="ipa"), "kʰon˧")
12+
def test_transliterate_wiktionary(self):
13+
self.assertEqual(
14+
transliterate_wiktionary("แมว", mode="royin"), "maeo"
15+
)
16+
self.assertEqual(
17+
transliterate_wiktionary("คน", mode="paiboon"), "kon"
18+
)
19+
self.assertEqual(
20+
transliterate_wiktionary("คน", mode="ipa"), "kʰon˧")
1621

17-
def test_transliterate_returns_input_for_unknown_mode(self):
22+
def test_transliterate_wiktionary_returns_input_for_unknown_mode(self):
1823
self.assertEqual(transliterate("แมว", mode="unknown"), "แมว")
1924

2025
def test_thai_digits_conversion(self):
@@ -31,7 +36,7 @@ def test_get_word_dict(self):
3136
},
3237
)
3338

34-
def test_transliterate_paiboon_cases(self):
39+
def test_transliterate_wiktionary_paiboon_cases(self):
3540
# test cases from https://w.wiki/RifX
3641
test_cases = [
3742
('เฮิ็้ย', 'hə́i'),
@@ -154,7 +159,10 @@ def test_transliterate_paiboon_cases(self):
154159

155160
for thai_text, expected_translit in test_cases:
156161
with self.subTest(thai_text=thai_text):
157-
self.assertEqual(transliterate(thai_text, mode="paiboon"), expected_translit)
162+
self.assertEqual(
163+
transliterate_wiktionary(thai_text, mode="paiboon"),
164+
expected_translit
165+
)
158166

159167
if __name__ == '__main__':
160168
unittest.main()

0 commit comments

Comments
 (0)