[IR] สรุปจาก Quiz ที่1

ข้อที่หนึ่ง ข้อใดต่อไปนี้ไม่จัดเป็นระบบ IR
A: ค้นหาคำว่า "computer" จาก E-mail
B: ค้นหาคำว่า "computer" จาก Google
C: ค้นหาคำว่า "computer" จาก windows explorer
ตอบ ข้อ C เพราะงานในด้าน IR นั้นจะยุ่งกับข้อมูลในส่วนของ unstructure data(ข้อมูลทีไม่ได้จัดเก็บเป็นระบบ เช่น ไฟล์ word, e-mail) เอามาทำเป็น index และทำส่วนรองรับการค้นหาจากผู้ใช้ แต่ในกรณีของข้อ C: ค้นหาคำว่า "computer" จาก windows explorer ไม่นับว่าเป็นระบบ IR เพราะใน windows explorer มีการจัดเก็บข้อมูลอย่างเป็นระบบ(Structure data)เป็น folder และ sub-folder เป็นต้น

ข้อที่สอง การจัดเก็บ Term ลงในส่วนของ Inverted Index เรียกว่าอะไร
A: posting
B: dictionary
C: token
ตอบ ข้อ B เพราะ dictionary เป็นที่จัดเก็บของ Term แต่ละแบบ โดยในแต่ละ Term จะที posting list ในการบ่งบอกว่า Term นี้ ค้นพบที่ document อะไร

ข้อที่สาม การทำ Stem จะไม่ลดค่า precision จริง หรือไม่
ตอบ เท็จ เพราะคำที่ผ่านการ Stem จะถูกทำให้เป็นรากศัพท์ ซึ่งจะนำ Term หลายๆเทอมมารวมกันเก็บลงใน posting list เดียวกัน จึงส่งผลให้เมื่อมีการ retrieve ข้อมูลก็อาจจะมี document ที่ไม่เกี่ยวข้องติดมาด้วย ซึ่งจะส่งผลโดยตรง คือ ลดค่า precision(ความสามารถในการที่จะจำกัดเอกสารที่ไม่เกี่ยวข้องออกไป)

ข้อที่สี่ การทำ Stem จะไม่ลดค่า recall จริง หรือไม่
ตอบ จริง พราะคำที่ผ่านการ Stem จะถูกทำให้เป็นรากศัพท์ ซึ่งจะนำ Term หลายๆเทอมมารวมกันเก็บลงใน posting list เดียวกันซึ่งจะมีโอกาสที่จะเพิ่ม recall (ความสามารถของระบบที่จะดึงเอกสารที่เกี่ยวข้องออกมา) เพราะว่า posting list มีขนาดที่ใหญ่ขึ้น

ข้อที่ห้า ถ้าเอกสารนั้นมีคำที่มัน common(มีคำทั่่วไปเยอะ หรือถ้าติดเกมก็ให้นึกถึง item ที่มันได้ง่ายๆ) เยอะๆ จะมีค่า idf เท่าไหร่
ตอบ 0
ที่มาจาก ค่า idf คือ ค่าที่บอกถึง term ที่หายาก ถ้าเทอมนั้นยิ่งมีน้อย ค่า idf จะยิ่งเยอะ
การคิดค่า idft คิดได้จาก log10(N/dft) โดยที่

  • N คือ จำนวนของ document ในระบบ(Collection)
  • dft คือ document frequency ของ term นั้นๆ

ตัวอย่าง ถ้าในเอกสารใน Collection มีทั้งหมด 1000 document ให้หาค่า idft ของ term ต่อไปนี้

  • คำว่า Alsulaiman มี document frequency = 10
    • idft คิดได้จาก log10(1000/10) = 2
  • คำว่า computer มี document frequency = 500
    • idft คิดได้จาก log10(1000/500) = 0.301
  • คำว่า is มี document frequency = 1000
    • idft คิดได้จาก log10(1000/1000) = log10(1) = 0

จากตัวอย่าง เราจะพบว่า is มันคือ คำที่มัน common(คำทั่่วไปๆที่มักมีในทุกๆเอกสาร เช่น พวก stopword) จะมีค่า idf = 0 แสดงว่าไม่มีคำสำคัญเลย
แต่ถ้ามองในอีกกรณี คือ คำว่า Alsulaiman ซึ่งมีค่า idf = 2 แสดงวาคำนี้ มันหายากมาก(rare)


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.