418463_2554_first+(homework+03)

=การบ้านครั้งที่ 3: เขียนฟังก์ชั่นวัดประสิทธิภาพการตัดคำและการกำกับ POS=

คำอธิบาย
ให้เขียนฟังก์ชั่นสองอัน คือ

1. evaluate_segmentation(hypothesis, reference) โดยที่
 * hypothesis คือ ข้อความที่ต้องการทดสอบ
 * reference คือ ข้อความที่ตัดคำถูกต้อง

ฟังก์ชั่นนี้จะ return ค่าออกมาเป็น tuple ขนาด 3 คือ (f-measure, precision, recall) โดยที่การคำนวนค่าทั้งสามให้ใช้วิธีการตามสไลด์นี้ [|PDF]

2. evaluate_pos_tagger(tagger, sentences, k_fold) โดยที่
 * tagger คือ คลาส tagger ของ NLTK ที่อยู่ในกลุ่ม ContextTagger
 * sentences คือ ประโยคทั้งหมด ซึ่งอยู่ในรูปแบบ [ [(w,t), (w,t), (w,t)], [(w,t), (w,t), (w,t), (w,t)], ... ]
 * k_fold คือ จำนวนกลุ่มที่ต้องการแบ่ง

ฟังก์ชั่นนี้จะทดสอบการทำงานของ tagger โดยใช้วิธีการ k-fold cross validation ([|รายละเอียด]) ฟังก์ชั่นจะ return ค่าออกมาเป็น tuple ขนาด k_fold+1 โดยที่ค่าแรกคือค่าเฉลี่ย ส่วนค่าต่อๆ ไปคือค่าของแต่ละ fold

การส่งงาน
ให้เขียนฟังก์ชั่นทั้งสองลงในไฟล์ชื่อว่า evaluation.py จากนั้นจึงบีบอัดโดยวิธีการ zip แล้วตั้งชื่อไฟล์ว่า evaluation-xxx.zip (xxx คือรหัสนิสิต) แล้วส่งมาที่ sutee.s@gmail.com โดยใช้หัวเรื่องว่า NLP Homework 03 ส่งภายในวันที่ 7 กันยายน 2554