def ner_api(): ner = ThaiNameTagger() txt = request.args.get('sent', 0, type=str) print(txt) res = ner.get_ner(txt, pos=False, tag=True) return jsonify(result=res)
def test_ner(self): ner = ThaiNameTagger() self.assertEqual(ner.get_ner(""), []) self.assertIsNotNone(ner.get_ner("แมวทำอะไรตอนห้าโมงเช้า")) self.assertIsNotNone(ner.get_ner("แมวทำอะไรตอนห้าโมงเช้า", pos=False)) self.assertIsNotNone( ner.get_ner( """คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย 112 หมู่ 7 บ้านหนองเดิ่น ตำบลหนองกอมเกาะ อำเภอเมือง จังหวัดหนองคาย 43000""" ) )
def test_ner(self): ner = ThaiNameTagger() self.assertEqual(ner.get_ner(""), []) self.assertIsNotNone(ner.get_ner("แมวทำอะไรตอนห้าโมงเช้า")) self.assertIsNotNone(ner.get_ner("แมวทำอะไรตอนห้าโมงเช้า", pos=False)) self.assertIsNotNone( ner.get_ner( """คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย 112 หมู่ 7 บ้านหนองเดิ่น ตำบลหนองกอมเกาะ อำเภอเมือง จังหวัดหนองคาย 43000"""))
import pn import pandas as pd import numpy as np import nltk from collections import defaultdict from nltk import bigrams, trigrams import math from pythainlp import word_tokenize import time import multiprocessing as mp from pythainlp.corpus import tnc from pythainlp.tag.named_entity import ThaiNameTagger import json ner = ThaiNameTagger() def tokenize(text): return word_tokenize(text, engine='newmm') # return text.split() def delNonAlphabetAndEmpty(s): out = [] th = [str(chr(a + ord('ก'))) for a in range(91)] for w in s: ss = '' for i in range(len(w)): if w[i] in th or w[i].isalpha() or w[i].isnumeric(
def test_ner(self): ner = ThaiNameTagger() self.assertEqual(ner.get_ner(""), []) self.assertIsNotNone(ner.get_ner("แมวทำอะไรตอนห้าโมงเช้า")) self.assertIsNotNone(ner.get_ner("แมวทำอะไรตอนห้าโมงเช้า", pos=False)) self.assertIsNotNone( ner.get_ner( """คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย 112 หมู่ 7 บ้านหนองเดิ่น ตำบลหนองกอมเกาะ อำเภอเมือง จังหวัดหนองคาย 43000""")) self.assertIsNotNone( ner.get_ner( """คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย 112 หมู่ 7 บ้านหนองเดิ่น ตำบลหนองกอมเกาะ อำเภอเมือง จังหวัดหนองคาย 43000""", tag=True, )) # arguement `tag` is True self.assertEqual( ner.get_ner("วันที่ 15 ก.ย. 61 ทดสอบระบบเวลา 14:49 น.", tag=True), "วันที่ <DATE>15 ก.ย. 61</DATE> " "ทดสอบระบบเวลา <TIME>14:49 น.</TIME>", ) self.assertEqual( ner.get_ner("url = https://thainlp.org/pythainlp/docs/2.0/", tag=True), "url = <URL>https://thainlp.org/pythainlp/docs/2.0/</URL>", ) self.assertEqual( ner.get_ner("*****@*****.**", tag=True), "<EMAIL>[email protected]</EMAIL>", ) self.assertEqual( ner.get_ner("รหัสไปรษณีย์ 19130", tag=True), "รหัสไปรษณีย์ <ZIP>19130</ZIP>", ) self.assertEqual( ner.get_ner("เบอร์โทรศัพท์ 091-123-4567", tag=True), "เบอร์โทรศัพท์ <PHONE>091-123-4567</PHONE>", ) self.assertEqual( ner.get_ner("อาจารย์เอกพล ประจำคณะวิศวกรรมศาสตร์ ", tag=True), "<PERSON>อาจารย์เอกพล</PERSON> ประจำ<ORGANIZATION>" "คณะวิศวกรรมศาสตร์</ORGANIZATION> ", ) self.assertEqual( ner.get_ner( "มาตรา 80 ปพพ ให้ใช้อัตราภาษีร้อยละ 10.0" " ในการคำนวณภาษีมูลค่าเพิ่ม", tag=True, ), "<LAW>มาตรา 80 ปพพ</LAW> " "ให้ใช้อัตราภาษี<PERCENT>ร้อยละ 10.0</PERCENT>" " ในการคำนวณภาษีมูลค่าเพิ่ม", ) self.assertEqual( ner.get_ner("ยาว 20 เซนติเมตร", tag=True), "ยาว <LEN>20 เซนติเมตร</LEN>", ) self.assertEqual(ner.get_ner("1 บาท", pos=True, tag=True), "<MONEY>1 บาท</MONEY>") self.assertEqual(ner.get_ner("ไทย", pos=False, tag=True), "<LOCATION>ไทย</LOCATION>") # arguement `tag` is False and `pos` is True self.assertEqual( 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, ), [ ("วันที่", "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"), ], )
# # uncomment if running from colab # !pip install https://github.com/PyThaiNLP/pythainlp/archive/dev.zip # !pip install epitran # !pip install sklearn_crfsuite import json import pythainlp import pandas as pd import numpy as np from pythainlp.tag.named_entity import ThaiNameTagger from datetime import date, datetime NameEntity = ThaiNameTagger() from numpy.random import randn np.random.seed(101) pythainlp.__version__ class NLP_THAI_PEA: def __init__(self, message, JS_timestamp_ms, userId, path): self.timestamp_s = JS_timestamp_ms / 1000 self.txt_path = path self.word_dmm = NameEntity.get_ner(message) print("userId: ", userId) print("Auto report file : \n", self.display_recorded(self.txt_path)) pythainlp.__version__ print("NLP Thai PEA is ready!!") print( "------------------------------------------------------------------------------" )
from pythainlp.tag import pos_tag, pos_tag_sents from pythainlp.tag.named_entity import ThaiNameTagger #import deepcut text = "วิเชษฐ์ เกษมทองศรี นายวิเชษฐ์ เกษมทองศรี อดีตรัฐมนตรีว่าการกระทรวงทรัพยากรธรรมชาติและสิ่งแวดล้อม ในรัฐบาลนางสาวยิ่งลักษณ์ ชินวัตร อดีตรัฐมนตรีช่วยว่าการกระทรวงคมนาคม ในรัฐบาลของพันตำรวจโท ทักษิณ ชินวัตร และสมาชิกสภาผู้แทนราษฎรจังหวัดราชบุรี สังกัดพรรคไทยรักไทยประวัติ ประวัติ. นายวิเชษฐ์ เกษมทองศรี เกิดเมื่อวันที่ 7 กรกฎาคม พ.ศ. 2505 ที่อำเภอเมืองราชบุรี จังหวัดราชบุรี เป็นบุตรของนายชัยวัฒน์ กับนางสุภาพร เกษมทองศรี สำเร็จการศึกษาระดับประกาศนยีบัตรวิชาชีพ (ปวช.)" #print("sent_tokenize:", sent_tokenize(text)) #list_w = deepcut.tokenize(text) #sents = ("word_tokenize 1 :",list_w) #print("word_tokenize 2 :", word_tokenize(text)) #print("word_tokenize 2, without whitespace:", word_tokenize(text, keep_whitespace=False)) #print(pos_tag(deepcut.tokenize(text))) ner = ThaiNameTagger() ent = ner.get_ner(text) print(ent)