22 พฤศจิกายน 2560

Published พฤศจิกายน 22, 2560 by with 0 comment

ทำ Part-of-speech tagging ด้วย CRF โดยใช้ NLTK

สวัสดีผู้อ่านทุกท่านครับ หากท่านต้องการทำ Part-of-speech tagging ด้วย CRF คงคิดว่ายุุ่งยากไม่ใช่น้อย แต่บทความนี้ผมจะไปพาผู้อ่านไปทำ Part-of-speech tagging ด้วย CRF โดยใช้ NLTK แบบง่าย ๆ กันครับ

NLTK มี API รองรับสำหรับสร้าง Part-of-speech tagging มากมาย ไม่ว่าจะเป็น  unigram ,  NaiveBayes จนไปถึง CRF ซึ่งต้องใช้ CRFSuite ด้วย

ก่อนไปทำ Part-of-speech tagging ให้ท่าน ทำการโหลดไฟล์ data.pos จาก https://github.com/wannaphong/thchid-crf-postag/blob/master/data.pos มาไว้ก่อนครับ แล้วทำการติดตั้ง python-crfsuite ซึ่งเป็นโมดูลสำหรับเรียกใช้ CRFSuite ใน Python ด้วยคำสั่ง
pip install python-crfsuite

ข้อมูล data.pos คือ ข้อมูล Part-of-speech tagging จากข้อมูล orchid เนื่องจากมีปัญหาด้าน LICENSE เรื่องชื่อ จึงเปลี่ยนมาเป็น data.pos แทนครับ แล้วผมกำหนดให้เว้นวรรแต่ละประโยคด้วย TTTT
การ FIXN
ประชุม VACT
ทาง NCMN
วิชาการ NCMN
<space> PUNC
ครั้ง CFQC
ที่1 DONM
TTTT
โครงการวิจัยและพัฒนา NCMN
อิเล็กทรอนิกส์ NCMN
และ JCRG
คอมพิวเตอร์ NCMN

ในการเรียกใช้งาน CRF กับ NLTK ใช้งานผ่าน
from nltk.tag import CRFTagger
อ่านเอกสารได้ที่ http://www.nltk.org/api/nltk.tag.html#module-nltk.tag.crf

แล้วสร้างไฟล์ train.py ขึ้นมาแล้วโค้ดตามนี้

แล้วทำการรันไฟล์ train.py เสร็จแล้ว จะได้ไฟล์ model.crf.tagger ไว้สำหรับนำไปใช้งานขึ้นมา

ต่อมา สร้างไฟล์ test.py ขึ้นมา สำหรับใช้รัน Part-of-speech tagging ที่สร้างขึ้นมา

แล้วลองรันไฟล์ test.py ได้เลยครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)