Skip to content

Commit 59e35b6

Browse files
authored
Merge pull request #139 from PyThaiNLP/g2p
Add pythainlp.g2p.ipa
2 parents c76e786 + 72d49c2 commit 59e35b6

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed

pythainlp/corpus/wordnet.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
WordNet
44
"""
55
import nltk
6-
from nltk.corpus import wordnet
76

87
try:
98
nltk.data.find("corpora/omw")
@@ -15,6 +14,7 @@
1514
except LookupError:
1615
nltk.download("wordnet")
1716

17+
from nltk.corpus import wordnet
1818

1919
def synsets(word, pos=None, lang="tha"):
2020
return wordnet.synsets(lemma=word, pos=pos, lang=lang)

pythainlp/g2p/__init__.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# -*- coding: utf-8 -*-
2+
try:
3+
import epitran
4+
except ImportError:
5+
from pythainlp.tools import install_package
6+
7+
install_package("epitran")
8+
try:
9+
import epitran
10+
except ImportError:
11+
raise ImportError("ImportError: Try 'pip install epitran'")
12+
epi = epitran.Epitran('tha-Thai')
13+
class ipa:
14+
def __init__(self,text=""):
15+
self.text=text
16+
def str(self):
17+
return epi.transliterate(self.text)
18+
def list(self):
19+
return epi.trans_list(self.text)
20+
def xsampa_list(self):
21+
return epi.xsampa_list(self.text)

tests/__init__.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@
3030
from pythainlp.tag import pos_tag, pos_tag_sents
3131
from pythainlp.tokenize import etcc, isthai, syllable_tokenize, tcc, word_tokenize
3232
from pythainlp.util import listtext_num2num, normalize
33+
from pythainlp.g2p import ipa
3334
from pythainlp.text import Text
3435

35-
3636
class TestUM(unittest.TestCase):
3737
"""
3838
ทดสอบการทำงาน
@@ -261,6 +261,12 @@ def test_ner(self):
261261
def test_Text(self):
262262
self.assertIsNotNone(Text("ทดสอบภาษาไทย"))
263263

264+
def test_ipa(self):
265+
t=ipa("คน")
266+
self.assertEqual(t.str(),'kʰon')
267+
self.assertIsNotNone(t.list())
268+
self.assertIsNotNone(t.xsampa_list())
269+
264270

265271
if __name__ == "__main__":
266272
unittest.main()

0 commit comments

Comments
 (0)