diff --git a/pythainlp/corpus/orchid_pt_tagger.dill b/pythainlp/corpus/orchid_pt_tagger.pkl
similarity index 70%
rename from pythainlp/corpus/orchid_pt_tagger.dill
rename to pythainlp/corpus/orchid_pt_tagger.pkl
index bcfcf344a..e4eb9ed23 100644
Binary files a/pythainlp/corpus/orchid_pt_tagger.dill and b/pythainlp/corpus/orchid_pt_tagger.pkl differ
diff --git a/pythainlp/corpus/ud_thai_pud_pt_tagger.dill b/pythainlp/corpus/ud_thai_pud_pt_tagger.pkl
similarity index 57%
rename from pythainlp/corpus/ud_thai_pud_pt_tagger.dill
rename to pythainlp/corpus/ud_thai_pud_pt_tagger.pkl
index d3fcf058a..1974822b8 100644
Binary files a/pythainlp/corpus/ud_thai_pud_pt_tagger.dill and b/pythainlp/corpus/ud_thai_pud_pt_tagger.pkl differ
diff --git a/pythainlp/tag/perceptron.py b/pythainlp/tag/perceptron.py
index 96eca7863..fd328a2b8 100644
--- a/pythainlp/tag/perceptron.py
+++ b/pythainlp/tag/perceptron.py
@@ -3,20 +3,20 @@
Perceptron Part-Of-Speech tagger
"""
import os
+import pickle
from typing import List, Tuple
-import dill
from pythainlp.corpus import corpus_path
from pythainlp.tag.orchid import tag_signs, tag_to_text
-_ORCHID_DATA_FILENAME = "orchid_pt_tagger.dill"
-_PUD_DATA_FILENAME = "ud_thai_pud_pt_tagger.dill"
+_ORCHID_DATA_FILENAME = "orchid_pt_tagger.pkl"
+_PUD_DATA_FILENAME = "ud_thai_pud_pt_tagger.pkl"
def _load_tagger(filename):
data_filename = os.path.join(corpus_path(), filename)
with open(data_filename, "rb") as fh:
- model = dill.load(fh)
+ model = pickle.load(fh)
return model
diff --git a/requirements.txt b/requirements.txt
index 21928c05a..4c7eb1c98 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,3 @@
-dill==0.3.*
python-crfsuite==0.9.*
requests==2.23.*
tinydb==4.1.*
diff --git a/setup.py b/setup.py
index 22b5bb7ff..8069eb475 100644
--- a/setup.py
+++ b/setup.py
@@ -39,7 +39,6 @@
"""
requirements = [
- "dill>=0.3.0",
"python-crfsuite>=0.9.6",
"requests>=2.22.0",
"tinydb>=3.0",
@@ -91,7 +90,7 @@
"etcc.txt",
"negations_th.txt",
"orchid_pos_th.json",
- "orchid_pt_tagger.dill",
+ "orchid_pt_tagger.pkl",
"person_names_female_th.txt",
"person_names_male_th.txt",
"sentenceseg-crfcut-v2.model",
@@ -101,7 +100,7 @@
"thailand_provinces_th.txt",
"tnc_freq.txt",
"ttc_freq.txt",
- "ud_thai_pud_pt_tagger.dill",
+ "ud_thai_pud_pt_tagger.pkl",
"ud_thai_pud_unigram_tagger.json",
"words_th_thai2fit_201810.txt",
"words_th.txt",
diff --git a/tests/test_tag.py b/tests/test_tag.py
index 80121be1b..faa2ccaab 100644
--- a/tests/test_tag.py
+++ b/tests/test_tag.py
@@ -5,13 +5,9 @@
from pythainlp.tag import perceptron, pos_tag, pos_tag_sents, unigram
from pythainlp.tag.locations import tag_provinces
from pythainlp.tag.named_entity import ThaiNameTagger
-from pythainlp.tokenize import (
- word_tokenize,
-)
class TestTagPackage(unittest.TestCase):
-
def test_pos_tag(self):
tokens = ["ผม", "รัก", "คุณ"]
@@ -29,7 +25,7 @@ def test_pos_tag(self):
self.assertIsNotNone(pos_tag(tokens, engine="unigram", corpus="pud"))
self.assertIsNotNone(pos_tag([""], engine="unigram", corpus="pud"))
self.assertEqual(
- pos_tag(word_tokenize("คุณกำลังประชุม"), engine="unigram"),
+ pos_tag(["คุณ", "กำลัง", "ประชุม"], engine="unigram"),
[("คุณ", "PPRS"), ("กำลัง", "XVBM"), ("ประชุม", "VACT")],
)
@@ -43,6 +39,10 @@ def test_pos_tag(self):
self.assertEqual(perceptron.tag([], corpus="pud"), [])
self.assertEqual(perceptron.tag(None, corpus="orchid"), [])
self.assertEqual(perceptron.tag([], corpus="orchid"), [])
+ self.assertEqual(
+ pos_tag(["นักเรียน", "ถาม", "ครู"]),
+ [("นักเรียน", "NCMN"), ("ถาม", "VACT"), ("ครู", "NCMN")],
+ )
self.assertEqual(pos_tag_sents(None), [])
self.assertEqual(pos_tag_sents([]), [])
@@ -81,108 +81,102 @@ def test_ner(self):
"""คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น
วิทยาเขตหนองคาย 112 หมู่ 7 บ้านหนองเดิ่น ตำบลหนองกอมเกาะ อำเภอเมือง
จังหวัดหนองคาย 43000""",
- tag=True
+ tag=True,
)
)
# arguement `tag` is True
self.assertEqual(
- ner.get_ner(
- "วันที่ 15 ก.ย. 61 ทดสอบระบบเวลา 14:49 น.",
- tag=True
- ),
+ ner.get_ner("วันที่ 15 ก.ย. 61 ทดสอบระบบเวลา 14:49 น.", tag=True),
"วันที่ 15 ก.ย. 61 "
- "ทดสอบระบบเวลา ")
+ "ทดสอบระบบเวลา ",
+ )
self.assertEqual(
ner.get_ner(
- "url = https://thainlp.org/pythainlp/docs/2.0/",
- tag=True
+ "url = https://thainlp.org/pythainlp/docs/2.0/", tag=True
),
- "url = https://thainlp.org/pythainlp/docs/2.0/")
+ "url = https://thainlp.org/pythainlp/docs/2.0/",
+ )
self.assertEqual(
- ner.get_ner(
- "example@gmail.com",
- tag=True
- ),
- "example@gmail.com")
+ ner.get_ner("example@gmail.com", tag=True),
+ "example@gmail.com",
+ )
self.assertEqual(
- ner.get_ner(
- "รหัสไปรษณีย์ 19130",
- tag=True
- ),
- "รหัสไปรษณีย์ 19130")
+ ner.get_ner("รหัสไปรษณีย์ 19130", tag=True),
+ "รหัสไปรษณีย์ 19130",
+ )
self.assertEqual(
- ner.get_ner(
- "เบอร์โทรศัพท์ 091-123-4567",
- tag=True
- ),
- "เบอร์โทรศัพท์ 091-123-4567")
+ ner.get_ner("เบอร์โทรศัพท์ 091-123-4567", tag=True),
+ "เบอร์โทรศัพท์ 091-123-4567",
+ )
self.assertEqual(
- ner.get_ner(
- "อาจารย์เอกพล ประจำคณะวิศวกรรมศาสตร์ ",
- tag=True
- ),
+ ner.get_ner("อาจารย์เอกพล ประจำคณะวิศวกรรมศาสตร์ ", tag=True),
"อาจารย์เอกพล ประจำ"
- "คณะวิศวกรรมศาสตร์ ")
+ "คณะวิศวกรรมศาสตร์ ",
+ )
self.assertEqual(
ner.get_ner(
"มาตรา 80 ปพพ ให้ใช้อัตราภาษีร้อยละ 10.0"
" ในการคำนวณภาษีมูลค่าเพิ่ม",
- tag=True
+ tag=True,
),
"มาตรา 80 ปพพ "
"ให้ใช้อัตราภาษีร้อยละ 10.0"
- " ในการคำนวณภาษีมูลค่าเพิ่ม")
+ " ในการคำนวณภาษีมูลค่าเพิ่ม",
+ )
self.assertEqual(
- ner.get_ner(
- "ยาว 20 เซนติเมตร",
- tag=True
- ),
- "ยาว 20 เซนติเมตร")
+ ner.get_ner("ยาว 20 เซนติเมตร", tag=True),
+ "ยาว 20 เซนติเมตร",
+ )
self.assertEqual(
- ner.get_ner(
- "1 บาท",
- pos=True,
- tag=True),
- "1 บาท")
+ ner.get_ner("1 บาท", pos=True, tag=True), "1 บาท"
+ )
self.assertEqual(
- ner.get_ner(
- "ไทย",
- pos=False,
- tag=True
- ),
- "ไทย")
+ ner.get_ner("ไทย", pos=False, tag=True), "ไทย"
+ )
# arguement `tag` is False and `pos` is True
self.assertEqual(
- ner.get_ner(
- "ไทย",
- pos=True,
- tag=False
- ),
- [('ไทย', 'PROPN', 'B-LOCATION')])
+ ner.get_ner("ไทย", pos=True, tag=False),
+ [("ไทย", "PROPN", "B-LOCATION")],
+ )
# arguement `tag` is False and `pos` is False
self.assertEqual(
ner.get_ner(
"วันที่ 15 ก.ย. 61 ทดสอบระบบเวลา 14:49 น.",
pos=False,
- tag=False
+ tag=False,
),
- [('วันที่', 'O'), (' ', 'O'), ('15', 'B-DATE'),
- (' ', 'I-DATE'), ('ก.ย.', 'I-DATE'), (' ', 'I-DATE'),
- ('61', 'I-DATE'), (' ', 'O'), ('ทดสอบ', 'O'), ('ระบบ', 'O'),
- ('เวลา', 'O'), (' ', 'O'), ('14', 'B-TIME'), (':', 'I-TIME'),
- ('49', 'I-TIME'), (' ', 'I-TIME'), ('น.', 'I-TIME')])
+ [
+ ("วันที่", "O"),
+ (" ", "O"),
+ ("15", "B-DATE"),
+ (" ", "I-DATE"),
+ ("ก.ย.", "I-DATE"),
+ (" ", "I-DATE"),
+ ("61", "I-DATE"),
+ (" ", "O"),
+ ("ทดสอบ", "O"),
+ ("ระบบ", "O"),
+ ("เวลา", "O"),
+ (" ", "O"),
+ ("14", "B-TIME"),
+ (":", "I-TIME"),
+ ("49", "I-TIME"),
+ (" ", "I-TIME"),
+ ("น.", "I-TIME"),
+ ],
+ )
# self.assertEqual(
# ner.get_ner("แมวทำอะไรตอนห้าโมงเช้า"),