วิธีดึงข้อมูลการทวิตใน twitter จากทั้ง #hashtag ชื่อบัญชี และพื้นที่ที่กำหนด สำหรับติดตามเหตุการณ์ต่าง ๆ ที่สนใจ

สำหรับบทความนี้ ผมจะมาแนะนำเครื่องมือที่จะช่วยในการดึงข้อมูลการทวิตใน Twitter จากทั้ง #hashtag ชื่อบัญชี และพื้นที่ที่กำหนดที่ใดก็ได้ตามใจชอบ เหมาะสำหรับการนำไปวิเคราะห์ผลจากการจัดอีเวนต์ จัดโครงการ หรือติดตามสถานการณ์ต่าง ๆ เช่น งานเปิดตัวสินค้า ติดตามความเคลื่อนไหวของพนักงานบริษัทผ่านการทวิต งานแต่งงาน ติดตามสถานการณ์การเลือกตั้ง การชุมนุม และอื่น ๆ ตามแต่เราจะจินตนาการไปถึง ซึ่งถือว่าเป็นเครื่องมือที่มีประโยชน์มหาศาลเลยครับ ที่สำคัญคือ ฟรี!! ไม่มีค่าใช้จ่ายใด ๆ

ดาวน์โหลดและเปิดใช้งานโปรแกรม Gephi 0.9.2

โปรแกรม Gephi 0.9.2 เป็นโปรแกรมที่พัฒนาขึ้นมาเพื่อใช้สร้างเครือข่ายตัวแทนข้อมูลและวิเคราะห์เครือข่ายเหล่านั้น ดึงสารสนเทศออกมาจากข้อมูลเพื่อนำไปใช้ประโยชน์ต่อ ซึ่งมีปลั๊กอินตัวหนึ่งของโปรแกรมที่มีความสามารถในการดึงข้อมูลออกมาจากทวิตต่าง ๆ ของ twitter ปลั๊กอินตัวนี้ชื่อว่า “Twitter Streaming Importer” ก่อนที่จะดูวิธีการใช้งาน เราไปดาวน์โหลดโปรแกรม Gephi 0.9.2 กันก่อนครับ

เมื่อติดตั้งเสร็จแล้วก็ลองเปิดเข้าไปใช้งานดูครั้ง อันดับแรกก็คลิกเลือก “New Project” แต่หากเข้ามาใช้ภายหลังและเรามีโปรเจคก่อนหน้าก็เลือก Open Project ได้ ซึ่งโปรเจคนี้ก็คือเครือข่ายที่เราสร้างเอาไว้สำหรับแต่ละงานการวิเคราะห์นั้นหละครับ

ส่วนหน้าตาของโปรแกรมจะประกอบไปด้วย 3 ส่วนหลัก ๆ ด้านซ้ายมือจะเป็นส่วนจัดการเครือข่ายหลัก ตรงกลางคือแผนภาพแสดงเครือข่ายของเรา และด้านขวาคือเครื่องมือในการวิเคราะห์

สุดท้ายให้ดาวน์โหลดปลั๊กอิน Twitter Streaming Importer เก็บเอาไว้ก่อน โดยเข้าไปที่เมนูบาร์ หัวข้อ Tool เลือกคำว่า Plugins ในหน้าต่างปลั๊กอินให้เลือกหน้าต่างย่อย Available Plugins มองหาปลั๊กอิน Twitter Streaming Importer แล้วติ๊กช่องด้านหน้า เสร็จแล้วกด install ที่ปุ่มด้านล่าง เสร็จแล้วกด restart โปรแกรม หรือปิดแล้วเปิดโปรแกรมใหม่

เปิดโปรแกรมขึ้นมาใหม่ ให้เข้าไปที่เมนู Window คลิกเลือก Twitter Streaming Importer แล้วหน้าต่างปลั๊กอินนี้จะปรากฏขึ้นในหน้าต่างโปรแกรมของเราครับ แต่ตอนนี้เรายังใช้งานปลั๊กอินไม่ได้นะครับ เพราะต้องเชื่อมต่อกับบัญชีนักพัฒนาของ twitter เสียก่อน

 

ขั้นตอนสมัครบัญชีนักพัฒนาของ twitter

  1. สมัครบัญชีนักพัฒนาของ twitter ที่ https://developer.twitter.com/en/apply/user โดยกรอกข้อมูลที่จำเป็นให้ครบถ้วน โดยเฉพาะหัวข้อ “Describe in your own words what you are building” ที่เราต้องตอบให้เคลียร์ว่าเราจะสมัครไปเพื่ออะไร โดยจะมีคำถาม 4 ข้อ ในส่วนนี้สามารถบอกไปตามตรงได้เลยครับว่าเพื่อนำมาวิเคราะห์ข้อมูลเครือข่ายสำหรับติดตามเหตุการณ์ต่าง ๆ แล้วรออีเมล Account Application Approved ส่งมายืนยันการสมัคร(อาจรอ 1-2 วัน) หลังจากนั้นก็ไปต่อกันได้เลยครับ
  2. เมื่อเราได้บัญชีนักพัฒนาแล้ว ให้เราเข้าไปที่เมนู Apps หรือที่ลิงค์ https://developer.twitter.com/en/apps แล้วให้กดปุ่ม Create an app
  3. ใส่ข้อมูลต่าง ๆ ให้ครบถ้วนครับ พวกชื่อแอปอันนี้ใส่ตามใจชอบได้เลย ส่วนลิงค์ทุกช่องใส่อันเดียวกันได้ จะเป็นเว็บไซต์ของบริษัทหรือหน่วยงานที่เราทำงานอยู่ก็ได้ครับ ส่วนช่องคำอธิบายเกี่ยวกับแอป จะทำเหมือนผมก็ได้ นั่นคือ คัดลอกเหตุผลจากข้อ 1 มาใส่เลย แล้วกดสร้างแอปได้เลยครับ

4. เมื่อสร้างแอปสำเร็จ ให้คลิกที่เมนู Keys and Access Tokens ที่เมนูย่อย Access token & access token secret คลิกที่ปุ่ม Create ตอนนี้เราจะได้ข้อมูลทุกอย่างที่ต้องการ ได้แก่ Consumer API keys และ Access token & access token secret ซึ่งเราจะนำข้อมูลเหล่านี้ไปใส่ในโปรแกรมดึงข้อมูลและวิเคราะห์อย่างโปรแกรม Gephi 0.9.2

 

การใช้งานปลั๊กอิน Twitter Streaming Importer

ที่หน้าต่างการทำงานของปลั๊กอิน Twitter Streaming Importer ให้เราคลิกที่ปุ่ม Credentials แล้วนำข้อมูล Consumer API keys และ Access token & access token secret จากบัญชีนักพัฒนา Twitter มาใส่ให้ครบทั้ง 4 ช่องตามลำดับ

 

ฟังก์ชันหลักของการใช้งาน ได้แก่ Words to follow, Users to follow และ  Locations to follow โดยแต่ละฟังก์ชันเอาไว้ดึงข้อมูลจากทวิตเตอร์ที่แตกต่างกัน

Words to follow เป็นการใส่คำ hashtag ที่เราจะดึงข้อมูลออกมาจากทวิตเตอร์ ซึ่งไม่ต้องใส่เครื่องหมาย # นะครับ ใส่แค่คำ ๆ นั้น แล้วกด add เข้าสู่ระบบ ซึ่งสามารถ add ได้หลาย hashtag แต่ระวังไว้อย่างหนึ่ง ก็คือ ถ้า hashtag เป็นคำกว้างหรือยอดนิยมมาก ๆ ระบบจะกินทรัพยากรเครื่องมหาศาลเลยครับ อาจทำให้คอมฯ ของเราค้างไปเลยก็ได้ ดังนั้น เวลาจัดงานอีเวนต์หรือโครงการ แล้วเราอยากติดตามการทวิตที่เกี่ยวข้อง ก็คือ แนะนำให้คนเข้าร่วมใส่ hashtag ที่เป็นการเฉพาะพอสมควร ในตัวอย่าง ผมใช้คำว่า “เลือกตั้งล่วงหน้า” ซึ่งได้เครือข่ายขนาดใหญ่มากเลยครับ ซึ่งเครือข่ายจะแสดงอยู่ในรูป จุด และ เส้น เมื่อจุด คือ หน่วยของข้อมูล ส่วนเส้นความความสัมพันธ์ของข้อมูล เช่น ใส่ hashtag เดียวกัน เป็นต้น

 

Users to follow ฟังก์ชันนี้จะเป็นการดึงข้อมูลการทวิตของบัญชีที่เรา add เอาไว้ เช่นเดียวกัน เราสามารถ add ได้หลายคน และสามารถตั้ง list user เก็บเอาไว้ใช้งานได้เลย เช่น ลิสต์ของพนักงานทั้งบริษัท ลิสต์ของบล็อกเกอร์ที่เข้าร่วมอีเวนต์ ลิสต์ของดารานักร้องที่เราอยากติดตาม เป็นต้น

 

Locations to follow ฟังก์ชันนี้เจ๋งครับ ให้เรากำหนดพื้นที่ครอบเอาไว้ แล้วปลั๊กอินจะดึงข้อมูลการทวิตทั้งหมดที่อยู่ในพื้นที่นั้นมาแสดง ตัวอย่างเช่น กำหนดพื้นที่เป็นบริษัทของเรา ร้าน ห้าง สถานที่จัดงาน เป็นต้น โดยวิธีกำหนดพื้นที่ คือ กำหนดจุด 2 จุด เพื่อนำมาสร้างเป็นมุมของพื้นที่สี่เหลี่ยม ดังภาพ โดยนำตัวเลขละติจูด(latitude) ลองติจูด(Longitude) มาใส่แทนจุด 2 จุดนั้น ซึ่งหาได้จาก Google maps ได้เลย

การหาตัวเลขละติจูด ลองติจูด จาก Google maps โดย คลิกขวาที่ตำแหน่งที่เราจะปักจุด เลือกคำว่า “ที่นี่มีอะไร” แผนที่จะแสดงตัวเลข 2 ชุด ดังภาพ ซึ่งตัวแรก ก็คือ ละติจูด เลขตัวที่สอง ก็คือ ลองติจูด คัดลอกนำไปใส่ในปลั๊กอินครับ

นำข้อมูล ละติจูด(latitude) ลองติจูด(Longitude) ของทั้งสองจุด ไปใส่ในปลั๊กอิน ดังภาพ โดย South West Point คือจุดที่อยู่ในทิศตะวันตกเฉียงใต้ของสถานที่หลักเป็นจุดแรกที่เราต้องใส่ข้อมูล ส่วน North East Point คือจุดที่อยู่ในทิศตะวันออกเฉียงเหนือของสถานที่หลัก เป็นจุดที่สอง เสร็จแล้วตั้งชื่อสถานที่ได้ทั้งภาษาไทยและอังกฤษ เสร็จแล้วกดปุ่ม ADD ได้เลยครับ(เครื่องคอมฯ ผมสเปคไม่ดี ทำให้ค้าง ดังนั้นของยืมภาพจากที่อื่นมาแสดงนะครับ)

 

เมนู Load Query File และ Save Query File เป็นการโหลดและบันทึกการดึงข้อมูลของเราครั้งนี้ รวมถึงลิสต์ hashtag และ user ของเราด้วยครับ

เมนูต่อมาจะอยู่ด้านล่าง นั่นคือ Choose Network Logic เป็นการกำหนดให้เครือข่ายแสดงอะไรบ้าง จะเลือกแบบเต็ม เฉพาะ user เฉพาะ hashtag หรือเฉพาะ Emoji ซึ่ง Emoji นี้น่าสนใจมากครับ เครือข่ายจะแสดงหน้าตาจุดเป็น Emoji ออกมาตามที่มีคนทวิตเลยครับ

สุดท้ายให้กดปุ่ม Connect เพื่อเริ่มการดึงข้อมูลจาก Twiiter ได้เลยครับ เราก็จะได้ภาพเครือข่ายออกมาแบบเรียลไทม์เลยครับ

สุดท้าย มาดูปุ่มด้านล่างของหน้าโปรแกรม จะมีคำว่า Enable Timeline เมื่อเรากด จะทำให้เราสามารถคลิกดูข้อมูลแยกตามช่วงเวลาได้ ซึ่งจะช่วยทำให้จัดการข้อมูลได้หลากหลายมากขึ้น

 

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

 

การวิเคราะห์และนำออกข้อมูลไปใช้งาน

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

อันดับแรกจะบอกวิธีการนำข้อมูลออกไปใช้งานก่อนนะครับ นั่นคือ ให้เราไปที่ปุ่ม Data Laboratory >> Data table หน้าต่างนี้จะแสดงข้อมูลเป็นตาราง ส่วนสำคัญคือปุ่ม nodes จะแสดงหน่วยของข้อมูลทั้งหมด เช่น บัญชีผู้ใช้ hashtag และ emoji ตามที่เราเคยเลือกไว้ใน Network Logic ก่อนหน้านี้ครับ และปุ่ม Edges คือเส้นเชื่อมความสัมพันธ์ของหน่วยข้อมูล เช่น บัญชี a ได้ใส่ hashtag b แล้ว a กับ b จะมีเส้นเชื่อมกัน  ใน Data table นี้ ด้านบนจะมีปุ่ม Export table นำไฟล์ออกเป็น .csv ที่สามารถเปิดด้วย Excel ได้

แต่ถ้าอยากนำรูปเครือข่ายออก ให้ไปที่เมนู File ด้านบนของ Gephi หน้าหลัก เลือก Export >> SVG/PDF/PNG File แล้วเราสามารถเลือกบันทึกได้เลยว่าจะเป็นไฟล์อะไร(กรุณาตั้งชื่อไฟล์ และเลือกประเภทไฟล์ก่อนกดบันทึก) รูปเครือข่ายจะออกมาสวยกว่าในหน้าโปรแกรม และแตกต่างพอสมควรครับ

 

ลำดับต่อมา ให้กลับมาที่หน้าต่าง Overview เพื่อทำการวิเคราะห์ด้วย Gephi ต้องอธิบายก่อนว่า Gephi วิเคราะห์อะไรได้บ้าง? ความสามารถหลัก ๆ คือ การวิเคราะห์ที่เรียกว่า การวิเคราะห์เครือข่ายสังคม(Social Network Analysis) สามารถบอกได้ว่า node หรือหน่วยข้อมูลใดที่มีความสำคัญ เป็นศูนย์กลาง หรือมีอิทธิพลต่อคนอื่นมากที่สุด ผ่านการบอกค่าดีกรีของ node(จำนวนเส้นที่เชื่อมกับ node) ค่า Closeness Centrality(ค่าความเป็นศูนย์กลางโดยวัดจากความใกล้ชิด) ค่า Betweenness Centrality(ค่าความเป็นศูนย์กลางโดยวัดจากการคั่นกลางระหว่างความสัมพันธ์) ค่า Eigenvector Centrality(ค่าอิทธิพลของ node ที่มีต่อ node อื่น ๆ ) ใครอยากรู้รายละเอียดค่าเหล่านี้ ขออนุญาตให้ไปค้นใน Google ต่อด้วยตัวเองนะครับ เนื่องจากรายละเอียดค่อนข้างเยอะ

วิธีการได้ค่าเหล่านี้มา ก็เพียงมองไปที่หน้าต่าง Context ด้านขวาของ Gephi คลิกคำว่า Statistics ครับ จะมีฟังก์ชันย่อยที่หลากหลาย ให้เรากด Run ที่ฟังก์ชัน Network Diameter เพื่อหาค่าความเป็นศูนย์กลางดังกล่าวข้างต้น ฟังก์ชัน Graph Density เพื่อดูค่าความหนาแน่นของเครือข่าย ฟังก์ชัน Eigenvector Centrality เพื่อหาค่าอิทธิพลของ node และค่าอื่น ๆ ที่ต้องการครับ เมื่อมีหน้าต่างเด้งขึ้นมาตอนกด Run ก็กด Next ตามค่าเริ่มต้นได้เลย พอผลออกมาก็กดปิดหน้าต่างได้เลยครับ เพราะรันเสร็จค่าต่าง ๆ จะไปแสดงใน Data table ของเราเรียบร้อยแล้ว เราก็กลับไปหน้า Data Laboratory >> Data table เพื่อดูผลและนำไฟล์ออกได้เลย สำหรับการดูผล ให้เราคลิกที่หัวคอลัมน์ในตาราง เช่น หัวคำว่า Eigenvector Centrality คลิกครั้งแรกระบบจะเรียงข้อมูลของคอลัมน์นี้จากน้อยไปมาก คลิกครั้งที่สองจะเรียงจากมากไปน้อย จะทำให้เรารู้ได้ทันทีว่า node ใดที่มีอิทธิพลมากที่สุดของเครือข่าย

นอกจากนี้เรายังสามารถปรับหน้าต่างของแผนภาพเครือข่าย(ปกติจะเรียกว่ากราฟ แต่ผมกลัวเราสับสนกับคำว่ากราฟที่เราใช้เรียกแผนภูมิ จึงเลี่ยงมาใช้คำว่าแผนภาพเครือข่าย) โดยให้แสดงตามค่าความเป็นศูนย์กลางหรือค่าอิทธิพลของ node ได้ กล่าวคือ ตั้งค่าให้ node แต่ละ node ไล่สีตามระดับของความสำคัญ หรือตั้งค่าให้ node แต่ละ node ไล่ขนาดใหญ่เล็กตามระดับของความสำคัญได้ จะทำให้เราสามารถนำเสนอข้อมูลได้น่าสนใจมากขึ้น(แม้เราจะได้ตัวเลขจาก Data table แล้วก็ตาม) โดยให้เราสนใจไปที่หน้าต่าง Appearance ด้านซ้ายมือของแผนภาพเครือข่าย เลือกที่ปุ่ม nodes ถ้าต้องการปรับแต่ง node และเลือก edges หากต้องการปรับแต่งลักษณะเส้น

เราจะลองปรับแต่ง node กันครับ โดยเราสามารถเลือกหน้าต่างย่อย unique หากต้องการเลือกสีให้ node เป็นสีเดียวกันหมด Partition ในการแบ่ง node ตามลักษณะหน่วยข้อมูล แต่ที่อยากให้เราสนใจคือ Ranking ครับ คลิกแล้วเราจะสามารถเลือกว่าจะจัดอันดับดัวยค่าอะไร? ตัวอย่างเช่น ผมเลือกให้ไล่ระดับสีของ node ด้วยค่า Eigenvector Centrality หรือค่าความมีอิทธิพล เราสามารถเลือกลักษณะการไล่ระดับสีได้ตามความเหมาะสม แล้วกด Apply ตามภาพครับ

แต่หากอยากปรับ Ranking ให้ไล่ระดับด้วยขนาดใหญ่เล็กของ node คลิกสัญลักษณ์วงกลมซ้อน ๆ กันด้านขวาบนของหน้าต่างย่อยนี้ แล้วเลือก Ranking และเลือกค่าที่ต้องการไล่ระดับเช่นเดิมครับ นอกจากนี้ก็เลือกขนาดว่าจะให้ไล่ตั้งแต่ระดับไหนถึงไหน แล้วกด Apply ตามภาพครับ

หากทำการ Ranking ทั้งสองแบบ เราจะได้แผนภาพเครือข่ายที่ชัดเจนมากขึ้น แล้วลองนำแผนภาพนี้ออกไปใช้ดูครับ โดยไปที่ File >> Export >> SVG/PDF/PNG File เลือกประเภทไฟล์แล้วบันทึกได้เลย โดยปกติผมจะบันทึกเป็น png เพราะจะนำไปตกแต่งด้วยโปรแกรมอื่นต่อ เช่นใส่ชื่อ node และอื่น ๆ ลงไปทีหลัง

ทั้งหมดที่กล่าวมานี้ เป็นเพียงการใช้งานปลั๊กอินตัวนึงของ Gephi นะครับ โปรแกรมนี้ยังมีความสามารถอีกมาก หากผมนึกออกว่ามีอะไรน่าสนใจอีกบ้าง หรือมีปลั๊กอินตัวไหนมีประโยชน์ต่อพวกเราอีก จะนำมาบอกอีกครั้งครับ สำหรับบทความนี้ต้องขออภัยหากใช้คำแตกต่างกัน ไทยบ้าง อังกฤษบ้าง เนื่องจากบทความยาว เขียนไปจนลืมว่าใช้อะไรไปแล้วบ้าง ฮ่า ๆ  ไว้เจอกันบทความต่อไปครับ