Convert Text into vectorial form using TF-IDF

ในการที่จะเอาข้อความไปคำนวนได้นั้นต้องแปลงข้อความให้อยู่ในรูปของเวคเตอร์(อาเรย์หนึ่งมิติ) ที่เป็นตัวเลขจึงจะสามารถเอาไปคำนวณทางคณิตศาสตร์ ได้เช่น หาความคล้ายคลึงกันของทั้งสองข้อความ การสืบค้นข้อความ การคัดแยกประเภทข้อความ เป็นต้น

แรกเริ่มเลยเราจะทำดิกชันนารี่ตัวหนึ่งที่ชื่อ Bag of Words เป็นอาเรย์หนึ่งมิติเก็บคำทุกคำที่เกิดขึ้นในข้อความทั้งหมด ไม่เก็บคำซ้ำ

จากตัวอย่างข้างบน สี่ประโยค เราจะสแกนทีละประโยค สแกนทีละคำ ถ้าใน BoW ไม่มีคำนั้นก็จะแอดลงไปใน BoW และนี่คือหน้าตาของ BoW หลังจากสแกนเสร็จสิ้น

จากนั้นเราจะทำการแปลงแต่ละประโยคให้อยู่ในรูปของ Term Frequency (TF) เข้าไปนับว่าคำใน BoW ของแต่ละประโยคมีความถี่เท่าไรและนำมาหารด้วยจำนวนคำทั้งหมดในประโยคนั้นๆ
TF(w)=f_w/N
โดยที่ f_w  คือความถี่ของคำ w ในประโยค N คือจำนวนคำทั้งหมดในประโยค

สังเกตว่าเราให้คำทุกคำมีค่าน้ำหนักเท่ากัน ถ้าเจอเท่าไรก็นับเท่านั้น สังเกตว่ามีคำบางคำที่พบบ่อยมากๆ และไม่มีนัยยะสำคัญเช่นพวก stop words อาทิเช่น a and the on in at this that ซึ่งเราจะทำการลดค่าน้ำหนักคำที่พบบ่อยเหล่านี้ ตัวอย่างข้างต้นอาจจะเห็นได้ไม่ชัดนักเนื่องจากจำนวนประโยคตัวอย่างค่อนข้างน้อย จะเห็นได้ว่า on เจอในทุกประโยคและไม่มีความสำคัญเท่าไร(ไม่มีลักษณะเด่น) ดังนั้นเราจะใช้เทคนิค ที่ชื่อว่า Inverse Document Frequency(IDF) โดยมีสูตรดังนี้
IDF(w)=log_{10} \frac{M}{K}

โดยที่ M คือ จำนวนประโยคทั้งหมด K คือ จำนวนประโยคทั้งหมดที่มี คำ w ปรากฏอยู่

จะได้ตารางดังนี้

เช่นคำว่า My ปรากฏอยู่ใน 3 ประโยค ในทั้งหมด 4 ประโยค log(4/3) = 0.12494  คำว่า on ปรากฏอยู่ในทั้งหมด 4 ประโยค log(4/4) = 0 สังเกตว่าคำที่พบบ่อยๆจะมีค่า idf เข้าใกล้ 0 แค่คำใดที่พบได้น้อยจะมีค่า idf เข้าใกล้ log(M)

สุดท้าย แต่ละประโยคก็จะเกิดจาก IF(w)\times{IDF(w)}

ตัวอย่างประโยคแรกเมื่อทำการแปลงด้วย tf-idf

สังเกตคำว่า on กับคำว่า eats จะเป็น 0 เพราะเป็นคำที่พบได้ทั่วไป ส่วนคำว่า saturday,fish ค่อนข้างจะมีค่า tf-idf สูงเพราะเป็นคำที่มีลักษณะเด่นและเป็นประโยชน์ของประโยคนี้

ต่อจากนี้เราจะเอาเวคเตอร์ของประโยคเหล่านี้ไปคำนวนต่อ เช่นไปจัดประเภทข้อความ การสืบค้นข้อความ การหาความคล้ายคลึงกันของข้อความต่อไป

จริงๆแล้วการแปลงเป็นเวคเตอร์นั้นทำได้หลายวิธีขึ้นอยู่กับความเหมาะสม สามารถอ่านรายละเอียดเชิงลึกได้ที่ลิงค์นี้ครับ

Leave a Reply

Your email address will not be published. Required fields are marked *