Skip to content

Commit cd5fe72

Browse files
authored
Merge pull request #970 from bact/add-tag-tests
Split test_tag and testx_tag
2 parents cf6997f + 0d2e1bd commit cd5fe72

File tree

3 files changed

+225
-226
lines changed

3 files changed

+225
-226
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ coverage.xml
6060
.pytest_cache/
6161
cover/
6262
tests/ptagger_temp*
63+
ptagger_temp*
6364

6465
# Translations
6566
*.mo

tests/test_tag.py

Lines changed: 2 additions & 226 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,16 @@
66
from os import path
77

88
from pythainlp.tag import (
9-
NER,
10-
NNER,
119
PerceptronTagger,
12-
chunk_parse,
1310
perceptron,
1411
pos_tag,
1512
pos_tag_sents,
16-
pos_tag_transformers,
1713
tag_provinces,
18-
tltk,
1914
unigram,
2015
)
21-
from pythainlp.tag.thainer import ThaiNameTagger
2216

2317

2418
class TagTestCase(unittest.TestCase):
25-
# ### pythainlp.tag.PerceptronTagger
26-
27-
def test_chunk_parse(self):
28-
tokens = ["ผม", "รัก", "คุณ"]
29-
30-
w_p = pos_tag(tokens, engine="perceptron", corpus="orchid")
31-
self.assertIsNotNone(chunk_parse(w_p))
32-
3319
# ### pythainlp.tag.pos_tag
3420

3521
def test_pos_tag(self):
@@ -70,12 +56,8 @@ def test_pos_tag(self):
7056
self.assertIsNotNone(
7157
pos_tag([""], engine="unigram", corpus="blackboard_ud")
7258
)
73-
self.assertIsNotNone(
74-
pos_tag(tokens, engine="unigram", corpus="tdtb")
75-
)
76-
self.assertIsNotNone(
77-
pos_tag([""], engine="unigram", corpus="tdtb")
78-
)
59+
self.assertIsNotNone(pos_tag(tokens, engine="unigram", corpus="tdtb"))
60+
self.assertIsNotNone(pos_tag([""], engine="unigram", corpus="tdtb"))
7961
self.assertIsNotNone(pos_tag(tokens, engine="unigram", corpus="tud"))
8062
self.assertIsNotNone(pos_tag([""], engine="unigram", corpus="tud"))
8163
self.assertEqual(
@@ -124,7 +106,6 @@ def test_pos_tag(self):
124106
self.assertIsNotNone(
125107
pos_tag(tokens, engine="perceptron", corpus="tud")
126108
)
127-
self.assertIsNotNone(pos_tag(tokens, engine="tltk"))
128109

129110
self.assertEqual(pos_tag_sents(None), [])
130111
self.assertEqual(pos_tag_sents([]), [])
@@ -135,8 +116,6 @@ def test_pos_tag(self):
135116
[("แมว", "NCMN"), ("วิ่ง", "VACT")],
136117
],
137118
)
138-
with self.assertRaises(ValueError):
139-
self.assertIsNotNone(tltk.pos_tag(tokens, corpus="blackboard"))
140119

141120
# ### pythainlp.tag.PerceptronTagger
142121

@@ -212,206 +191,3 @@ def test_ner_locations(self):
212191
)
213192

214193
# ### pythainlp.tag.named_entity
215-
216-
def test_ner(self):
217-
ner = ThaiNameTagger(version="1.5")
218-
self.assertEqual(ner.get_ner(""), [])
219-
self.assertIsNotNone(ner.get_ner("แมวทำอะไรตอนห้าโมงเช้า"))
220-
self.assertIsNotNone(ner.get_ner("แมวทำอะไรตอนห้าโมงเช้า", pos=False))
221-
self.assertIsNotNone(
222-
ner.get_ner(
223-
"""คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น
224-
วิทยาเขตหนองคาย 112 หมู่ 7 บ้านหนองเดิ่น ตำบลหนองกอมเกาะ อำเภอเมือง
225-
จังหวัดหนองคาย 43000"""
226-
)
227-
)
228-
self.assertIsNotNone(
229-
ner.get_ner(
230-
"""คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น
231-
วิทยาเขตหนองคาย 112 หมู่ 7 บ้านหนองเดิ่น ตำบลหนองกอมเกาะ อำเภอเมือง
232-
จังหวัดหนองคาย 43000""",
233-
tag=True,
234-
)
235-
)
236-
237-
# argument `tag` is True
238-
self.assertIsNotNone(
239-
ner.get_ner("วันที่ 15 ก.ย. 61 ทดสอบระบบเวลา 14:49 น.", tag=True)
240-
)
241-
242-
ner = ThaiNameTagger(version="1.4")
243-
self.assertEqual(ner.get_ner(""), [])
244-
self.assertIsNotNone(ner.get_ner("แมวทำอะไรตอนห้าโมงเช้า"))
245-
self.assertIsNotNone(ner.get_ner("แมวทำอะไรตอนห้าโมงเช้า", pos=False))
246-
self.assertIsNotNone(
247-
ner.get_ner(
248-
"""คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น
249-
วิทยาเขตหนองคาย 112 หมู่ 7 บ้านหนองเดิ่น
250-
ตำบลหนองกอมเกาะ อำเภอเมือง
251-
จังหวัดหนองคาย 43000"""
252-
)
253-
)
254-
self.assertIsNotNone(
255-
ner.get_ner(
256-
"""คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น
257-
วิทยาเขตหนองคาย 112 หมู่ 7 บ้านหนองเดิ่น
258-
ตำบลหนองกอมเกาะ อำเภอเมือง
259-
จังหวัดหนองคาย 43000""",
260-
tag=True,
261-
)
262-
)
263-
264-
# argument `tag` is True
265-
self.assertEqual(
266-
ner.get_ner("วันที่ 15 ก.ย. 61 ทดสอบระบบเวลา 14:49 น.", tag=True),
267-
"วันที่ <DATE>15 ก.ย. 61</DATE> "
268-
"ทดสอบระบบเวลา <TIME>14:49 น.</TIME>",
269-
)
270-
271-
self.assertEqual(
272-
ner.get_ner(
273-
"url = https://thainlp.org/pythainlp/docs/2.0/", tag=True
274-
),
275-
"url = <URL>https://thainlp.org/pythainlp/docs/2.0/</URL>",
276-
)
277-
278-
self.assertEqual(
279-
ner.get_ner("[email protected]", tag=True),
280-
"<EMAIL>[email protected]</EMAIL>",
281-
)
282-
283-
self.assertEqual(
284-
ner.get_ner("รหัสไปรษณีย์ 19130", tag=True),
285-
"รหัสไปรษณีย์ <ZIP>19130</ZIP>",
286-
)
287-
288-
self.assertEqual(
289-
ner.get_ner("อาจารย์เอกพล ประจำคณะวิศวกรรมศาสตร์ ", tag=True),
290-
"<PERSON>อาจารย์เอกพล</PERSON> ประจำ<ORGANIZATION>"
291-
"คณะวิศวกรรมศาสตร์</ORGANIZATION> ",
292-
)
293-
294-
"""self.assertEqual(
295-
ner.get_ner(
296-
"มาตรา 80 ปพพ ให้ใช้อัตราภาษีร้อยละ 10.0"
297-
" ในการคำนวณภาษีมูลค่าเพิ่ม",
298-
tag=True,
299-
),
300-
"<LAW>มาตรา 80 ปพพ</LAW> "
301-
"ให้ใช้อัตราภาษี<PERCENT>ร้อยละ 10.0</PERCENT>"
302-
" ในการคำนวณภาษีมูลค่าเพิ่ม",
303-
)"""
304-
305-
self.assertEqual(
306-
ner.get_ner("ยาว 20 เซนติเมตร", tag=True),
307-
"ยาว <LEN>20 เซนติเมตร</LEN>",
308-
)
309-
310-
self.assertEqual(
311-
ner.get_ner("1 บาท", pos=True, tag=True), "<MONEY>1 บาท</MONEY>"
312-
)
313-
314-
self.assertEqual(
315-
ner.get_ner("ไทย", pos=False, tag=True), "<LOCATION>ไทย</LOCATION>"
316-
)
317-
318-
self.assertIsNotNone(ner.get_ner("บางแสนกรุงเทพ", pos=False, tag=True))
319-
320-
# argument `tag` is False and `pos` is True
321-
self.assertEqual(
322-
ner.get_ner("ไทย", pos=True, tag=False),
323-
[("ไทย", "PROPN", "B-LOCATION")],
324-
)
325-
326-
# arguement `tag` is False and `pos` is False
327-
self.assertIsNotNone(
328-
ner.get_ner(
329-
"วันที่ 15 ก.ย. 61 ทดสอบระบบเวลา 14:49 น.",
330-
pos=False,
331-
tag=False,
332-
)
333-
)
334-
335-
def test_tltk_ner(self):
336-
self.assertEqual(tltk.get_ner(""), [])
337-
self.assertIsNotNone(tltk.get_ner("แมวทำอะไรตอนห้าโมงเช้า"))
338-
self.assertIsNotNone(tltk.get_ner("แมวทำอะไรตอนห้าโมงเช้า", pos=False))
339-
self.assertIsNotNone(
340-
tltk.get_ner("พลเอกประยุกธ์ จันทร์โอชา ประกาศในฐานะหัวหน้า")
341-
)
342-
self.assertIsNotNone(
343-
tltk.get_ner(
344-
"พลเอกประยุกธ์ จันทร์โอชา ประกาศในฐานะหัวหน้า",
345-
tag=True,
346-
)
347-
)
348-
self.assertIsNotNone(
349-
tltk.get_ner(
350-
"""คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น
351-
จังหวัดหนองคาย 43000"""
352-
)
353-
)
354-
self.assertIsNotNone(
355-
tltk.get_ner(
356-
"""คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น
357-
จังหวัดหนองคาย 43000""",
358-
tag=True,
359-
)
360-
)
361-
362-
def test_NER_class(self):
363-
ner = NER(engine="thainer")
364-
self.assertIsNotNone(ner.tag("แมวทำอะไรตอนห้าโมงเช้า"))
365-
self.assertIsNotNone(ner.tag("แมวทำอะไรตอนห้าโมงเช้า", pos=False))
366-
self.assertIsNotNone(ner.tag("แมวทำอะไรตอนห้าโมงเช้า", tag=True))
367-
# ner = NER(engine="wangchanberta")
368-
# self.assertIsNotNone(ner.tag("แมวทำอะไรตอนห้าโมงเช้า"))
369-
# self.assertIsNotNone(ner.tag("แมวทำอะไรตอนห้าโมงเช้า", pos=False))
370-
# self.assertIsNotNone(ner.tag("แมวทำอะไรตอนห้าโมงเช้า", tag=True))
371-
ner = NER(engine="thainer-v2")
372-
self.assertIsNotNone(ner.tag("แมวทำอะไรตอนห้าโมงเช้า"))
373-
self.assertIsNotNone(ner.tag("แมวทำอะไรตอนห้าโมงเช้า", pos=False))
374-
self.assertIsNotNone(ner.tag("แมวทำอะไรตอนห้าโมงเช้า", tag=True))
375-
ner = NER(engine="tltk")
376-
self.assertIsNotNone(ner.tag("แมวทำอะไรตอนห้าโมงเช้า"))
377-
self.assertIsNotNone(ner.tag("แมวทำอะไรตอนห้าโมงเช้า", pos=False))
378-
self.assertIsNotNone(ner.tag("แมวทำอะไรตอนห้าโมงเช้า", tag=True))
379-
with self.assertRaises(ValueError):
380-
NER(engine="thainer", corpus="cat")
381-
382-
def test_NNER_class(self):
383-
nner = NNER()
384-
self.assertIsNotNone(nner.tag("แมวทำอะไรตอนห้าโมงเช้า"))
385-
386-
def test_pos_tag_transformers(self):
387-
self.assertIsNotNone(
388-
pos_tag_transformers(
389-
sentence="แมวทำอะไรตอนห้าโมงเช้า",
390-
engine="bert",
391-
corpus="blackboard",
392-
)
393-
)
394-
self.assertIsNotNone(
395-
pos_tag_transformers(
396-
sentence="แมวทำอะไรตอนห้าโมงเช้า",
397-
engine="mdeberta",
398-
corpus="pud"
399-
)
400-
)
401-
self.assertIsNotNone(
402-
pos_tag_transformers(
403-
sentence="แมวทำอะไรตอนห้าโมงเช้า",
404-
engine="wangchanberta",
405-
corpus="pud",
406-
)
407-
)
408-
with self.assertRaises(ValueError):
409-
pos_tag_transformers(
410-
sentence="แมวทำอะไรตอนห้าโมงเช้า", engine="non-existing-engine"
411-
)
412-
with self.assertRaises(ValueError):
413-
pos_tag_transformers(
414-
sentence="แมวทำอะไรตอนห้าโมงเช้า",
415-
engine="bert",
416-
corpus="non-existing corpus",
417-
)

0 commit comments

Comments
 (0)