66from os import path
77
88from 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
2418class 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