วิเคราะห์สถานการณ์ทางการเมืองด้วยข้อมูลจาก Twitter
ภาพโดยไข่แมวx
เช้าวันศุกร์ที่ 8 กุมภาพันธ์ พ.ศ. 2562 ถือเป็นช่วงเวลาอันน่าลุ้นระทึก เพราะนอกจากจะมีกำหนดแถลงการณ์จากพลเอกประยุทธ์ จันทร์โอชา ผู้ได้รับคำเชิญเป็นแคนดิเดตนายกรัฐมนตรีของพรรคพลังประชารัฐแล้ว ยังมีกำหนดการยื่นบัญชีนายกรัฐมนตรีของพรรคไทยรักษาชาติ ต่อ กกต. อีกด้วย ถือเป็นการเปิดไพ่ใบใหญ่ระหว่างสองขั้วอำนาจในการเมืองไทย
ผมเชื่อเป็นอย่างยิ่งว่าใครหลายคนที่ติดตามความเคลื่อนไหวทางการเมืองหรือเรื่องการเลือกตั้งที่จะมีขึ้นในวันที่ 24 มีนาคม คงสัมผัสได้ถึงแผ่นดินไหวทางการเมืองที่กำลังเกิดขึ้น เมื่อสถาบันสำคัญของสังคมไทยได้เข้ามามีบทบาทโดยตรงในการเมืองการปกครองผ่านการเดินหมากอันแยบยลของคุณทักษิณ ชินวัตร
สิ่งที่เกิดขึ้นในวันที่ 8 กุมภาพันธ์ ทำให้เราต้องหันมาทบทวนและแก้ไขกรอบความคิด ทฤษฎี และสมการการเมืองที่เรายึดถือเป็นหลักเกณฑ์ในการประเมินสถานการณ์ทางการเมือง เพราะเราได้สัมผัสพื้นผิวของภูมิทัศน์ทางการเมืองที่เปลี่ยนไปเข้าเสียแล้ว เมื่ออำนาจขั้วที่สามที่เปรียบเสมือน ‘ช้างในห้อง’ ถูกดึงเข้ามาอยู่ในสงครามการเมืองครั้งนี้ราวกับเป็น ‘ช้างศึก’
ไม่ใช่เรื่องง่ายนักที่เราจะอธิบายถึงสาเหตุหรือแม้แต่ผลกระทบของเหตุการณ์ที่เกิดขึ้น เนื่องจากละครการเมืองครั้งนี้ถูกเขียนขึ้นโดยตัวละครที่อยู่หลังฉาก และมีความสลับซับซ้อนเกินกว่าสิ่งที่ปรากฏอยู่บนเวที
สิ่งที่พอจะทำได้คือการเรียบเรียงเหตุการณ์ดังกล่าวให้อยู่ในลักษณะที่สะท้อนถึงความเปลี่ยนแปลงอย่างเป็นรูปธรรม ในเชิงความคิด ความเข้าใจ และความรู้สึกของประชาชนที่ต่างมีส่วนร่วมทางการเมือง แม้ในสภาวะที่ไม่อาจเข้าถึงและรับรู้ข้อมูลข่าวสารที่แท้จริงอย่างครบถ้วน หรือปราศจากอำนาจในการกำหนดอนาคตการเมืองในสังคมของตน
บทความนี้ใช้ข้อมูลจาก Twitter มาคำนวนสถิติและความถี่ของการแสดงความคิดเห็นทางการเมืองของคนธรรมดาที่มีต่อเหตุการณ์ที่เกิดขึ้นในวันที่ 8 กุมภาพันธ์ ผลลัพธ์คือภาพที่สะท้อนให้เห็นชัดเจนถึงความตื่นตัวทางการเมืองของผู้ใช้ Twitter และความเป็นพื้นที่ทางการเมืองของโลก social media
การเมืองไทยกลายเป็นเรื่องที่น่าจับตามองอย่างยิ่ง เมื่อเกิดกระแสข่าวว่าพรรคไทยรักษาชาติจะนำเสนอ ทูลกระหม่อมหญิงอุบลรัตนราชกัญญา เป็นแคนดิเดตนายกรัฐมนตรีแต่เพียงผู้เดียวของพรรค เพราะนั่นหมายถึงความเปลี่ยนแปลงอันสำคัญ ทั้งในเชิงความสัมพันธ์ระหว่างสถาบันพระมหากษัตริย์และเครือข่ายอำนาจของคสช. และในเชิงบทบาทของสถาบันพระมหากษัตริย์ในบริบทการเมืองประชาธิปไตย ส่งผลกระทบทั้งในระยะสั้น ต่อการเลือกตั้งที่จะเกิดขึ้นในไม่ช้า และในระยะยาว ต่อระเบียบอำนาจในประเทศไทยที่สืบทอดกันมาตั้งแต่ช่วงสงครามเย็น
อย่างไรก็ตาม สิ่งที่สำคัญไม่น้อยไปกว่าความเคลื่อนไหวเหล่านี้ คือภาพของสังคมไทยที่มีประชาชนเป็นตัวละครหลัก ไม่ใช่แค่ตัวละครประกอบ ที่กำลังชัดเจนขึ้นท่ามกลางความไม่ชัดเจนของความขัดแย้งระหว่างขั้วอำนาจหลักทั้งในและนอกระบบ
จากการวิเคราะห์ข้อมูลจาก Twitter รวมทั้งสิ้นจำนวน 2,761,112 tweet ที่รวบรวมโดยการใช้ search/tweets API ระหว่างวันที่ 7-11 กุมภาพันธ์ เมื่อประมวลผลผ่านการนับจำนวน tweet ต่อนาที ของ tweet ที่มี hashtag เกี่ยวข้องโดยตรงกับเหตุการณ์ในวันที่ 8 กุมภาพันธ์ จะเห็นได้ถึงความชัดเจนของการมีส่วนร่วมทางการเมืองในโลกโซเชียลที่เกี่ยวพันโดนตรงกับเหตุการณ์ทางการเมืองที่เกิดขึ้น
หมายเหตุ: ข้อมูลที่ใช้ในการวิเคราะห์เป็นข้อมูลที่รวบรวมโดยใช้คำที่ผู้เขียนคิดว่ามีความสัมพันธ์กับเหตุการณ์ที่เกิดขึ้นเป็น keyword ในการค้นหา จึงมิได้เป็นข้อมูลที่สมบูรณ์
จากการวิเคราะห์ดังกล่าว ซึ่งใช้จำนวน tweet ต่อนาทีของ tweet ที่ใช้ hashtag ที่เกี่ยวข้องเป็นตัวชี้วัดความตื่นตัวทางการเมือง เราสามารถตั้งข้อสังเกตได้หลายประการ เช่น:
นอกจากนี้ เรายังสามารถจัดอันดับ hashtag ยอดนิยมในแต่ละวัน ซึ่งสะท้อนให้เห็นชัดเจนยิ่งขึ้นถึงกระแสต่างๆ เช่น:
Heatmap ประกอบการวิเคราะห์ co-occurence ของ hashtag ยอดนิยม
แน่นอนว่าใน tweet หนึ่งข้อความ อาจใช้ hashtag ได้มากกว่าหนึ่งอัน การวิเคราะห์ co-occurence จึงอาจทำให้เห็นความสัมพันธ์ของ hashtag แต่ละอันอย่างลึกซึ้งมากขึ้น อาทิ เช่น #อนาคตใหม่ และ #ฟ้ารักพ่อ หรือ #ไทยรักษาชาติ และ #ทรงพระสเลนเดอร์ เป็นต้น
นี่เป็นเพียงจุดเริ่มต้นของการวิเคราะห์เหตุการณ์ทางการเมืองดังกล่าวโดยใช้ข้อมูลจาก Twitter นอกจากการประเมินสถานการณ์เบื้องต้นโดยดูจาก hashtag เป็นหลักแล้ว เราสามารถที่จะใช้ text analysis ทำการตัดประโยคคำ (tokenize) ใน tweet เพื่อวิเคราะห์ใจความของ tweet ในแต่ละอันให้ละเอียดยิ่งขึ้น อาจได้ข้อมูลเชิงสถิติอื่นๆที่น่าสนใจ เช่น คำยอดฮิต หรือคำที่มักปรากฎอยู่ในบริบทเดียวกัน อีกทั้งยังสามารถทำ sentiment analysis เพื่อหยั่งรู้ถึงอารมณ์และความรู้สึกที่ผู้ใช้ Twitter มีต่อเหตุการณ์ครั้งนี้
นอกจากนี้ ยังสามารถใช้ unsupervised learning methods ต่างๆ เช่น LDA (latent dirichlet allocation) หรือ STM (structural topic modeling) เพื่อทำการวิเคราะห์ประเด็นที่ได้รับความสนใจ และทัศนคติทางการเมืองที่ได้รับการแสดงออกผ่าน Twitter
การวิเคราะห์ดังกล่าวไม่ใช่เรื่องง่ายดายนัก เนื่องจากทุกขั้นตอนใช้ข้อมูลที่อยู่ในระดับคำ (word) ไม่ใช่แค่ระดับข้อความ (tweet) อีกต่อไป เป็นที่รู้กันดีว่าภาษาไทยมีรูปแบบประโยคคำที่ยากต่อการแปรรูปให้อยู่ในรูปแบบเชิงสถิติ เพราะคำไทยนั้นเขียนติดกัน ไม่มีอะไรระบุอย่างตายตัวว่าคำๆหนึ่งเริ่มตรงไหนและจบตรงไหน จึงเป็นอุปสรรคต่อการวิเคราะห์ไม่ใช่น้อย อย่างไรก็ตาม ใน python มีทั้ง pythainlp และ deepcut ซึ่งอำนวยความสะดวกเป็นอย่างมากต่อการตัดคำไทย การวิเคราะห์นี้ใช้ pythainlp เป็นเครื่องมือในการแปรรูปข้อความ tweet ให้อยู่ในลักษณะที่สามารถแยกแยะความหมายได้อย่างลึกซึ้งมากขึ้น
สิ่งที่ทำได้เป็นอันดับแรกเมื่อทำการตัดคำไทยเป็นที่เรียบร้อยแล้ว คือการคำนวนสถิติการใช้คำแต่ละคำ โดยปกติแล้วมีสองวิธีหลักๆในการวิเคราะห์ วิธีแรกคือนับมันไปเลย คำไหนใช้บ่อยที่สุดคือคำที่เป็นที่นิยมมากที่สุด วิธีที่สองคือวิธีที่เรียกกันว่า tf-idf (term frequency-inverse document frequency) ซึ่งเป็นการนับสถิติของการใช้คำในแต่ละข้อความ (ยิ่งใช้บ่อยยิ่งมีค่าสูงขึ้น) ที่มีการถ่วงดุลโดยจำนวนข้อความที่ใช้คำๆนี้ (ยิ่งคำนี้ปรากฎในหลายข้อความยิ่งมีค่าต่ำลง) เพื่อเป็นการคัดกรองคำที่ปรากฎบ่อยกว่าคำอื่นโดยธรรมชาติและไม่ได้มีความหมายสำคัญอะไรในตัวมันเอง ยกตัวอย่างเช่นคำว่า “เป็น” “การ” “คือ” เป็นต้น ในกรณีนี้ผมเลือกใช้ทั้งสองวิธีเพื่อเปรียบเทียบกัน สำหรับวิธีที่สองเนื่องจากข้อความใน tweet โดยปกติแล้วมีความยาวไม่เกิน 280 character และไม่เอื้อต่อการคำนวนสถิติการใช้คำแบบที่ได้เกริ่นเอาไว้สักเท่าไหร่ ผมจึงใช้วิธีประมวลผลแบบ user-based pooling ซึ่งรวมข้อความทั้งหมดของผู้ใช้ twitter แต่ละคนเสมือนเป็นหนึ่งข้อความ จะได้ผลลัพธ์ดังต่อไปนี้
Top 20 Words by Number of Occurrences
term | occurrences |
---|---|
เลือกตั้ง | 2193265 |
ไทยรักษาชาติ | 1565646 |
พรรค | 1034531 |
ทรงพระสเลนเดอร์ | 797935 |
คน | 748678 |
ปี | 714175 |
นายก | 609186 |
เลือก | 606318 |
อนาคตใหม่ | 593672 |
นี้ | 472417 |
การเมือง | 351505 |
รัฐ | 316011 |
ทูลกระหม่อม | 315488 |
ท่าน | 311558 |
แคนดิเดต | 311457 |
พ่อ | 307507 |
ไม่ได้ | 270764 |
ทำ | 259256 |
ชอบ | 245762 |
ธนาธร | 221065 |
Top 20 Words by TF-IDF Score
term | weight |
---|---|
เลือกตั้ง | 0.133673 |
ไทยรักษาชาติ | 0.105736 |
พรรค | 0.083042 |
ทรงพระสเลนเดอร์ | 0.065978 |
เลือก | 0.062077 |
ปี | 0.060171 |
คน | 0.053095 |
อนาคตใหม่ | 0.049476 |
นายก | 0.048583 |
นี้ | 0.039915 |
พ่อ | 0.038701 |
การเมือง | 0.032746 |
ทูลกระหม่อม | 0.031071 |
แคนดิเดต | 0.030375 |
ท่าน | 0.030373 |
รัฐ | 0.029838 |
ฟ้ารักพ่อ | 0.026913 |
ไทยรัฐ | 0.025530 |
ฟ้า | 0.025131 |
ชอบ | 0.025099 |
จะเห็นได้ชัดว่าคำยอดนิยมมีความสอดคล้องกับสถานการณ์ทางการเมือง ซึ่งบ่งบอกถึงใจความของข้อความและความหมายทางการเมืองที่อยู่ในแต่ละ tweet
เราสามารถวิเคราะห์ให้ลึกลงไปอีกมิติหนึ่งได้ โดยการสร้าง supervised learning model เพื่อ ตีความข้อความและคำที่ใช้ในแต่ละ tweet ว่ามีนัยเป็นบวกหรือเป็นลบ ในขั้นตอนนี้ผมทำตามบทความของคุณวรรณพงษ์ ภัททิยไพบูลย์
ผลลัพธ์ที่ได้ คือภาพที่สะท้อนความรู้สึกและอารมณ์ในแง่ลบอย่างชัดเจนครับ แต่ผมขอย้ำว่าการผลลัพธ์นี้อาจไม่ได้สะท้อนถึงความรู้สึกนึกคิดของคนที่แสดงความคิดเห็นใน Twitter แต่อาจเป็นสิ่งที่เกิดจาก bias ใน model ที่ขาด label ที่มีคุณภาพ โปรดอย่านำไปใช้เป็นหลักฐานครับ
ดู code ที่ใช้ใน project นี้ได้ ที่นี่