예제 #1
0
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)
예제 #2
0
 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"""
         )
     )
예제 #3
0
파일: __init__.py 프로젝트: xemoe/pythainlp
 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"""))
예제 #4
0
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(
예제 #5
0
    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"),
            ],
        )
예제 #6
0
# # 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(
            "------------------------------------------------------------------------------"
        )
예제 #7
0
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)