การบ้านครั้งที่ 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