Skip to content

Commit e996d7c

Browse files
committed
fix bug in newmm
1 parent 1caf327 commit e996d7c

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

pythainlp/test/__init__.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from pythainlp.summarize import summarize_text
2121
class TestUM(unittest.TestCase):
2222
"""
23-
ระบบทดสอบการทำงานของโค้ดของ PyThaiNLP 1.5
23+
ระบบทดสอบการทำงานของโค้ดของ PyThaiNLP 1.6
2424
"""
2525
def test_segment(self):
2626
self.assertEqual(word_tokenize('ฉันรักภาษาไทยเพราะฉันเป็นคนไทย'),[u'ฉัน', u'รัก', u'ภาษาไทย', u'เพราะ', u'ฉัน', u'เป็น', u'คนไทย'])
@@ -38,20 +38,23 @@ def test_segment_mm(self):
3838
self.assertEqual(word_tokenize('ฉันรักภาษาไทยเพราะฉันเป็นคนไทย',engine='mm'),[u'ฉัน', u'รัก', u'ภาษาไทย', u'เพราะ', u'ฉัน', u'เป็น', u'คนไทย'])
3939
def test_segment_newmm(self):
4040
self.assertEqual(word_tokenize('ฉันรักภาษาไทยเพราะฉันเป็นคนไทย',engine='newmm'),[u'ฉัน', u'รัก', u'ภาษาไทย', u'เพราะ', u'ฉัน', u'เป็น', u'คนไทย'])
41+
self.assertEqual(word_tokenize('สวัสดีครับ สบายดีไหมครับ',engine='newmm'),[u'สวัสดี', u'ครับ', u' ', u'สบายดี', u'ไหม', u'ครับ'])
42+
self.assertEqual(word_tokenize('จุ๋มง่วงนอนยัง',engine='newmm'),[u'จุ๋ม', u'ง่วงนอน', u'ยัง'])
43+
self.assertEqual(word_tokenize('จุ๋มง่วง',engine='newmm'),[u'จุ๋ม', u'ง่วง'])
4144
def test_segment_longest_matching(self):
4245
self.assertEqual(word_tokenize('ฉันรักภาษาไทยเพราะฉันเป็นคนไทย',engine='longest-matching'),[u'ฉัน', u'รัก', u'ภาษาไทย', u'เพราะ', u'ฉัน', u'เป็น', u'คนไทย'])
43-
"""def test_segment_Wordcut(self):
46+
def test_segment_Wordcut(self):
4447
if sys.version_info >= (3,4):
45-
self.assertEqual(word_tokenize('ฉันรักภาษาไทยเพราะฉันเป็นคนไทย',engine='wordcutpy'),[u'ฉัน', u'รัก', u'ภาษา', u'ไทย', u'เพราะ', u'ฉัน', u'เป็น', u'คน', u'ไทย'])"""
48+
self.assertEqual(word_tokenize('ฉันรักภาษาไทยเพราะฉันเป็นคนไทย',engine='wordcutpy'),[u'ฉัน', u'รัก', u'ภาษา', u'ไทย', u'เพราะ', u'ฉัน', u'เป็น', u'คน', u'ไทย'])
4649
def test_rank(self):
4750
self.assertEqual(rank(["แมว","คน","แมว"]),Counter({'แมว': 2, 'คน': 1}))
4851
def test_change(self):
4952
self.assertEqual(texttothai("l;ylfu8iy["),'สวัสดีครับ')
5053
self.assertEqual(texttoeng('สวัสดีครับ'),"l;ylfu8iy[")
51-
def test_romanization1(self):
54+
def test_romanization(self):
5255
self.assertEqual(romanization("แมว"),'maeo')
5356
self.assertEqual(romanization("แมว","pyicu"),'mæw')
54-
def test_romanization2(self):
57+
def test_romanization_royin(self):
5558
self.assertEqual(romanization("แมว",engine="royin"),'maeo')
5659
self.assertEqual(romanization("เดือน",engine="royin"),'duean')
5760
self.assertEqual(romanization("ดู",engine="royin"),'du')

pythainlp/tokenize/newmm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ def onecut(text, data=['']):
130130
else: # skip น้อยที่สุด ที่เป็นไปได้
131131
for i in range(p+1, len(text)):
132132
if i in allow_pos: # ใช้ tcc ด้วย
133-
ww = trie.prefixes(text[i:])
133+
ww = [w for w in trie.prefixes(text[i:]) if (i+len(w) in allow_pos)]
134134
m = pat_eng.match(text[i:])
135135
if ww or m:
136136
break

0 commit comments

Comments
 (0)