วิธีการทำ Text Analytics เพื่อแยกประเภทของข้อมูลด้วย AzureML
ในการวิเคราะห์หรือแยกประเภทข้อมูลเพื่อการนำไปใช้งานต่อนั้นมักจะมีข้อมูลประเภทหนึ่งที่เป็นคำอธิบาย หรือข้อคิดเห็นต่าง ๆ ที่เป็นประโยคที่มีความยาวมากหรือที่เราเรียกกว่าว่าข้อมูลแบบ text ซึ่งหารเราต้องการแยกข้อมูลเหล่านี้เราต้องใช้กระบวนการที่ชื่อว่า Natural Language Processing (NLP) ซึ่งมีความสำคัญในการใช้ข้อความเหล่านี้ในการทำ classification เรื่องราวใหม่ ๆ การแยกอารมณ์ของผู้คนใน Social ผ่านข้อความเหล่านี้ได้ รวมถึงการแยก email ที่เป็น spam ได้
เมื่อเราต้องการทำ NLP เราต้องเข้าใจในโครงสร้างของภาษา และโครงสร้างของคำเนื่องจากคอมพิวเตอร์มีความบกพร่องในเรื่องของ sense และการคิดอย่างมีเหตุผล ซึ่งหลาย ๆ คนคงคิดว่าเป็นอยากในการทำใช่ไหมล่ะคะ เนื่องจากมีรายละเอียดมากมายในกระบวนการเตรียมข้อมูล ในบทความนี้จึงอยากนำเสนอวิธีการทำ Text Analyticsได้โดยใช้ AzureML ค่ะ
การทำ Text Analytics ใน AzureML มีขั้นตอนในการทำดังนี้
ในบทความนี้ตัวอย่างที่เราจะนำทำ classification คือ Complaint Modified ที่ต้องการแยกประเภทคำร้องเรียนของลูกค้าออกเป็น 2 กลุ่มคือ Pricing and Billing (การกำหนดราคาและการเรียกเก็บเงิน) และ Internet Availability and Speed (ความพร้อมในการใช้งานอินเทอร์เน็ตและความเร็ว) ซึ่งหน้าตาข้อมูลดังรูป
เรามาเริ่มวิธีการ classify ข้อความเหล่านี้กันเลยค่ะ
1. นำข้อมูล Complaint Modified มาวางบน workspace
2. ค้นหา module ที่ชื่อว่า Preprocess Text มาเชื่อมกับ dataset ของเราจากนั้นเราจะเลือกคอลัมน์ Description ที่เราต้องการจัดการกับข้อความเหล่านี้ ส่วนค่า Parameter อื่นเราสามารถตั้งได้ตามที่เราต้องการ ซึ่งในตัวอย่างนี้เราจะทำการตังค่าดังรูป จากนั้นคลิก RUN
เมื่อเรา visualize ดูเราจะพบว่าข้อมูลของเรามีคอลัมน์เพิ่มขึ้นมาคือ Preprocessed Description ซึ่งข้อความของเราอยู่ในรูปที่พร้อมเอาไปใช้งานต่อแล้วดังรูป
3. ขั้นตอนนี้จะเป็นขั้นตอน เปลี่ยน Text ให้อยู่ในรูป Feature Vectors ซึ่ง Module ที่สามารถใช้ในกระบวนการนี้ได้คือ Extract N-Gram Features from Text และ Feature Hashing ซึ่งในตัวอย่างนี้เราจะใช้ Feature Hashing ซึ่งมี Dimension ที่น้อยกว่าเหมาะสำหรับการวิเคราะห์ข้อมูลที่มีข้อความเป็นจำนวนมากเลือกคอลัมน์ Preprocessed Description และตั้งค่า parameter ดังรูป แล้วกด RUN
เมื่อเรา visualize ดูเราจะพบว่าข้อมูลของเรามีคอลัมน์เพิ่มขึ้นมาคือคอลัมน์ของ Hashing Feature ที่พร้อมสำหรับนำไป classify ต่อแล้วค่ะ
4. ทำการเลือกคอลัมน์ที่เราจะนำไปวิเคราะห์ต่อโดย module ที่ชื่อ Select Columns in Dataset จากนั้นเลือกทุกคอลัมน์ยกเว้น Description และ Preprocessed Description เนื่องจากเราแปลงให้อยู่ในรูปของ Hashing Feature เรียบร้อยแล้ว จากนั้นกด RUN
5. เราจะเริ่มการทำ classification โดย Split Data เป็น training set : test set = 60% : 40% , Random seed = 123 และ Stratified split = True แล้วเลือกคอลัมน์ Customer Complaint
6. เลือกโมเดลที่จะใช้ในการ classify ซึ่งในตัวอย่างนี้เราจะใช้ Two-Class Boosted Decision Tree และตั้งค่า parameter ดังรูป
7. จากนั้นค้นหา module ที่ชื่อว่า Train Model ลากมาวางบน Workspace และลากเส้นเชื่อมจาก Two-Class Boosted Decision Tree มาเชื่อมกับวงกลมวงแรกและลากจากวงกลมวงแรกอง Split Data มาเชื่อมวงกลมวงที่สองของ Train Model จากนั้นเลือกคอลัมน์ Customer Complaint
8. จากนั้นค้นหา module ที่ชื่อว่า Score Model มาวางบน Workspace แล้วลากเส้นเชื่อมจาก Train Model มาเชื่อมที่วงกลมวงแรก และลากจากวงกลมที่สองของ Split Data มาเชื่อมกับวงที่สองของ Score Model
9. จากนั้นค้นหา module ที่ชื่อว่า Evaluate Model มาวางบน Workspace แล้วลากเส้นเชื่อมจาก Score Model มาที่ Evaluate Model เพื่อดูประสิทธิภาพของโมเดลของเรา จากนั้นกด RUN
จากนั้นเมื่อเรา visualize เราจะพบว่าโมเดลของเรามีประสิทธิภาพที่ดีและมีความเหมาะสมในการใช้ classify ข้อมูลคำร้องเรียนของลูกค้าค่ะ