ในปัจจุบันข้อมูลที่ไม่มีโครงสร้าง (Unstructured Data) มีจำนวนมากขึ้น เช่น รูปภาพใน Facebook หรือ Instagram (IG) หรือ ข้อความต่างๆ ไม่ว่าจะเป็นในเว็บไซต์หรือ Twitter แต่ข้อมูลเหล่านี้ยังไม่สามารถนำไปใช้วิเคราะห์ได้โดยตรงเนื่องจากไม่ได้อยู่ในรูปแบบของตาราง ดังนั้นจึงต้องมีขั้นตอนในการแปลงข้อความเหล่านี้ให้เป็นตารางเสียก่อน ในบทความนี้จะอธิบายวิธีการแปลงข้อความให้เป็นตาราง โดยมีขั้นตอนโดยสรุปดังนี้
- Tokenize เป็นขั้นตอนการตัดข้อความหรือประโยคออกเป็นคำ (word)
- Normalizationเป็นขั้นตอนการปรับรูปแบบของคำให้เหมือนกัน เช่น การแปลงให้เป็นตัวอักษรตัวเล็กทั้งหมด
- Stemmingเป็นขั้นตอนการตัดส่วนท้ายของคำที่เพิ่มเข้าไปออก เช่น ตัด -ing
- Remove Stop Wordsเป็นขั้นตอนการลบคำที่เป็น stop word เช่น a, and, the ทิ้งไป
- Part Of Speech Taggingเป็นขั้นตอนการหาประเภทของคำ เช่น คำนาม (noun) คำกริยา (verb)
ตัวอย่างขั้นตอนการแปลงข้อความมีดังนี้
- Tokenize เป็นขั้นตอนการตัดข้อความหรือประโยคออกเป็นคำ (word) โดยจากตัวอย่างจะเห็นประโยค์ที่ว่า “Just watched first episode of Squid Game” ซึ่งจะถูกแยกออกมาด้วยเครื่องหมายเว้นวรรคได้ออกมาเป็นคำต่างๆ ได้แก่
- Just
- watched
- first
- episode
- of
- Squid Game

- Normalization เป็นขั้นตอนการปรับรูปแบบของคำให้เหมือนกัน เช่น การแปลงให้เป็นตัวอักษรตัวเล็กทั้งหมด ซึ่งจากตัวอย่างจะเห็นว่าคำว่า Just จะแปลงเป็น just และ Squid จะแปลงเป็น squid ซึ่งเป็นตัวอักษรตัวเล็กทั้งหมด

- Stemming เป็นขั้นตอนการแปลงตัดส่วนท้ายของคำให้เป็นคำแรกเริ่ม เนื่องจากภาษาอังกฤษจะมีการเปลี่ยนรูปแบบของคำไปตาม tense ต่างๆ เช่น มีการเติม -ing หรือ -ed เข้าไป ซึ่งทำให้พบคำเดียวกันที่เขียนต่างกัน เช่น คำว่า watching และ watched ซึ่งเป็นคำเดียวกัน จากตัวอย่างคำก่อนหน้าจะมีการ ตัด -ed ออกจากคำว่า watched เหลือเป็นคำว่า watch

- Remove Stop Words เป็นขั้นตอนการลบคำที่เป็น stop word เช่น a, and, the ทิ้งไป จากขั้นตอนก่อนหน้าจะมี stop word อยู่ 3 คำ คือ คำว่า just, first และ of โดยรายการคำต่างๆ ที่เป็น stop word ดูได้จาก https://gist.github.com/sebleier/554280

- Part Of Speech (POS) Tagging เป็นขั้นตอนการหาประเภทของคำ เช่น คำนาม (noun) คำกริยา (verb) และจะเลือกเฉพาะคำที่เป็นประเภทที่เราต้องการ จากในตัวอย่างจะเห็นได้ว่าถ้าสนใจแค่คำนาม (Noun) จะเหลือเฉพาะคำว่า episod, squid และ game ซึ่งขั้นตอนนี้อาจจะมีหรือไม่มีก็ได้ ตัวอย่างของ POS Tag แสดงในตารางด้านล่าง และสามารถดู POS Tag ทั้งหมดได้ที่ https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html
Tag | Description |
DT | Determiner |
IN | Preposition or subordinating conjunction |
JJ | Adjective |
NN | Noun, singular or mass |
NNS | Noun, plural |
NNP | Proper noun, singular |
NNPS | Proper noun, plural |
RB | Adverb |
RBR | Adverb, comparative |
RBS | Adverb, superlative |
VB | Verb, base form |
VBD | Verb, past tense |
หลังจากที่ได้คำที่เกิดขึ้นในข้อความต่างๆ แล้วขั้นตอนถัดไปต้องแปลงข้อความเหล่านี้ให้อยู่ในรูปแบบของตารางเสียก่อน ซึ่งตารางนี้คือ ตาราง ABT (Analytical Base Table) ซึ่งประกอบด้วยแถว (row) และ คอลัมน์ (column) โดยที่
- แถว จะเป็นแต่ละเอกสารหรือแต่ละข้อความ เช่น ข้อความจาก Twitter.com
- คอลัมน์ จะเป็นคำต่างๆ ที่ตัดแยกออกมาได้ในขั้นตอนก่อนหน้า
โดยแต่ละเซลล์ (cell) ในตาราง ABT จะเป็นการแสดงค่าความสำคัญของคำนั้นๆ ซึ่งสามารถแสดงได้หลายรูปแบบ เช่น
- Binary Occurrence เป็นการแสดงค่า 0 (ไม่พบ) หรือ 1 (พบ) สำหรับแต่ละคำ ตัวอย่างในตารางจะมีข้อความ (text) อยู่ด้านขวาสุด และแต่ละคอลัมน์คือคำที่เกิดขึ้นในข้อความทั้งหมด เมื่อพิจารณาที่ข้อความแรก (Donut Baker) จะพบว่ามีคำว่า Donut และ Baker จึงใส่ 1 คอลัมน์ที่มีคำว่า donut และ baker ส่วนคอลัมน์อื่นๆ จะแสดงค่าเป็น 0 เนื่องจากไม่มีคำนั้นเกิดขึ้นในข้อความทางด้านซ้ายมือ

- Term Occurrence เป็นการแสดงจำนวนคำ (occurence) ที่เกิดขึ้นในข้อความ/เอกสารซึ่งจะต่างจาก Binary Occurance ที่แสดงว่าเกิดหรือไม่เกิด แต่ Term Occurance จะแสดงเป็นจำนวนคำที่พบในข้อความเลย จากตัวอย่างในตารางจะเห็นว่าข้อความในแถวที่ 3 (Donut Donut) มีคำว่า Donut เกิดขึ้น 2 ครั้ง ดังนั้นในคอลัมน์ donut จึงมีค่าเท่ากับ 2

- Term Frequency (TF) เป็นการแสดงความถี่ (frequency)ของคำที่ทำการ normalize โดยอาจจะทำการ normalize โดยหารจำนวนคำที่อยู่ในข้อความ เช่น ในตารางจะเห็นว่าข้อความในแถวแรก (Donut Baker) มีคำว่า Donut และ Baker จึงคำนวนค่า Term Frequency ออกมาได้เป็น
- TF ของคำว่า Donut เท่ากับ 1/2 = 0.5 เนื่องจากมีคำว่า Donut 1 คำและในข้อความมีทั้งหมด 2 คำ
- TF ของคำว่า Baker เท่ากับ 1/2 = 0.5 เนื่องจากมีคำว่า Baker 1 คำและในข้อความมีทั้งหมด 2 คำ

- Term Frequency x Inverse Document Frequency (TF-IDF) เป็นการแสดงความสำคัญของแต่ละคำ โดยพิจารณาการเกิดคำในเอกสารทั้งหมดร่วมด้วย โดยคำนวณได้ตามสมการ
- TF-IDF = TF x log (N/nt) โดยที่ nt = |{d ∈ D : t ∈ d}| นั่นคือจำนวนเอกสารที่มีคำนั้นปรากฏอยู่
- ในตารางจะเห็นว่าข้อความในแถวแรก (Donut Baker) มีคำว่า Donut และ Baker และคำนวนค่า TF และ IDF คำนวณได้ดังนี้
- TF ของคำว่า Donut เท่ากับ 1/2 = 0.5 เนื่องจากมีคำว่า Donut 1 คำและในข้อความมีทั้งหมด 2 คำ
- IDF ของคำว่า Donut เท่ากับ log(6/2) = 0.48 เนื่องจากมีทั้งหมด 6 ข้อความแต่มีคำว่า Donut อยู่แค่ 2 ข้อความคือ ข้อความที่ 1 และ 3
- TF x IDF ของคำว่า Donut เท่ากับ 0.5 x 0.48 = 0.24

บทความนี้เป็นตัวอย่างหนี่งในการอบรม Practical Data Preparation and Feature Engineering for Data Analytics and Machine Learning (Workshop with RapidMiner Studio & AI Hub) ซึ่งจะเน้นการเตรียมข้อมูลต่างๆ ก่อนจะนำไปวิเคราะห์ต่อในด้านต่างๆ เช่น Machine Learning