การขุดข้อมูล Twitter: คู่มือการวิเคราะห์ข้อมูลขนาดใหญ่โดยใช้ Python

เผยแพร่แล้ว: 2022-03-11

ข้อมูลขนาดใหญ่ มีอยู่ทุกที่ ระยะเวลา. ในกระบวนการดำเนินธุรกิจที่ประสบความสำเร็จในยุคปัจจุบัน คุณอาจจะต้องเผชิญกับมันไม่ว่าคุณจะชอบหรือไม่ก็ตาม

ไม่ว่าคุณจะเป็นนักธุรกิจที่พยายามจะตามให้ทันเวลาหรือเป็นนักเขียนโค้ดอัจฉริยะที่กำลังมองหาโครงการต่อไป บทแนะนำนี้จะให้ภาพรวมคร่าวๆ แก่คุณว่าบิ๊กดาต้าคืออะไร คุณจะได้เรียนรู้ว่าสิ่งนี้ใช้ได้กับคุณอย่างไร และวิธีเริ่มต้นอย่างรวดเร็วผ่าน Twitter API และ Python

งูหลามอ่านทวิตเตอร์

บิ๊กดาต้าคืออะไร?

ข้อมูลขนาดใหญ่เป็นสิ่งที่ดูเหมือน - ข้อมูลจำนวนมาก เพียงอย่างเดียว ข้อมูลเพียงจุดเดียวไม่สามารถให้ข้อมูลเชิงลึกแก่คุณได้มากนัก แต่ข้อมูลจำนวนเทราไบต์ รวมกับแบบจำลองทางคณิตศาสตร์ที่ซับซ้อนและพลังการประมวลผลที่อึกทึก สามารถสร้างข้อมูลเชิงลึกที่มนุษย์ไม่สามารถผลิตได้ คุณค่าที่ Big Data Analytics มอบให้กับธุรกิจนั้นจับต้องไม่ได้และเหนือกว่าความสามารถของมนุษย์ทุกวัน

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

ตัวอย่างเช่น สมมติว่าคุณใช้งาน Facebook และต้องการใช้ข้อมูล Messenger เพื่อให้ข้อมูลเชิงลึกเกี่ยวกับวิธีโฆษณากับผู้ชมของคุณได้ดียิ่งขึ้น Messenger มีผู้ใช้งาน 1.2 พันล้าน คนต่อเดือน ในกรณีนี้ ข้อมูลขนาดใหญ่คือการสนทนาระหว่างผู้ใช้ หากคุณต้องอ่านการสนทนาของผู้ใช้แต่ละคนเป็นรายบุคคล คุณจะเข้าใจได้ดีว่าพวกเขาชอบอะไร และสามารถแนะนำผลิตภัณฑ์ให้กับพวกเขาได้ตามนั้น การใช้เทคนิคการเรียนรู้ของเครื่องที่เรียกว่า Natural Language Processing (NLP) คุณสามารถทำได้ในวงกว้างโดยกระบวนการทั้งหมดเป็นแบบอัตโนมัติและเหลือไว้สำหรับเครื่อง

นี่เป็นเพียงหนึ่งในตัวอย่างนับไม่ถ้วนที่แสดงให้เห็นว่าแมชชีนเลิร์นนิงและการวิเคราะห์ข้อมูลขนาดใหญ่สามารถเพิ่มมูลค่าให้กับบริษัทของคุณได้อย่างไร

ทำไมข้อมูล Twitter?

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

การประยุกต์ใช้อย่างง่ายๆ นี้สามารถวิเคราะห์ได้ว่าบริษัทของคุณได้รับการตอบรับจากบุคคลทั่วไปอย่างไร คุณสามารถรวบรวมทวีต 2,000 ล่าสุดที่กล่าวถึงบริษัทของคุณ (หรือคำใดๆ ที่คุณต้องการ) และเรียกใช้อัลกอริธึมการวิเคราะห์ความเชื่อมั่น

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

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

ภาพรวมเครื่องมือ

เราจะใช้ Python 2.7 สำหรับตัวอย่างเหล่านี้ ตามหลักการแล้วคุณควรมี IDE เพื่อเขียนโค้ดนี้ ฉันจะใช้ PyCharm - Community Edition

ในการเชื่อมต่อกับ API ของ Twitter เราจะใช้ไลบรารี Python ชื่อ Tweepy ซึ่งเราจะติดตั้งในอีกสักครู่

เริ่มต้น

บัญชีนักพัฒนา Twitter

เพื่อที่จะใช้ API ของ Twitter เราต้องสร้างบัญชีนักพัฒนาบนไซต์แอพ Twitter

  1. เข้าสู่ระบบหรือสร้างบัญชี Twitter ที่ https://apps.twitter.com/
  2. สร้างแอปใหม่ (ปุ่มด้านบนขวา)
    ตำแหน่งของปุ่มสร้างแอพ
  3. กรอกข้อมูลในหน้าสร้างแอปด้วยชื่อ ที่ไม่ซ้ำ ชื่อเว็บไซต์ (ใช้เว็บไซต์ตัวยึดตำแหน่งหากคุณไม่มี) และคำอธิบายโครงการ ยอมรับข้อกำหนดและเงื่อนไขและไปยังหน้าถัดไป
    แบบฟอร์มการสร้างแอป
  4. เมื่อสร้างโปรเจ็กต์ของคุณแล้ว ให้คลิกที่แท็บ "คีย์และโทเค็นการเข้าถึง" ตอนนี้คุณควรจะสามารถเห็นข้อมูลลับผู้บริโภคและรหัสผู้ใช้ของคุณได้แล้ว
    ตำแหน่งของคีย์ Twitter API และความลับ
  5. คุณจะต้องมีโทเค็นการเข้าถึงหนึ่งคู่ด้วย เลื่อนลงมาและขอโทเค็นเหล่านั้น หน้าควรรีเฟรช และตอนนี้คุณควรมีโทเค็นเพื่อการเข้าถึงและข้อมูลลับของโทเค็นการเข้าถึง
    แบบฟอร์มแสดงโทเค็นการเข้าถึง

เราต้องการสิ่งเหล่านี้ในภายหลัง ดังนั้นอย่าลืมเปิดแท็บนี้ไว้

กำลังติดตั้ง Tweepy

Tweepy เป็นเครื่องมือที่ได้รับการสนับสนุนอย่างดีเยี่ยมสำหรับการเข้าถึง Twitter API รองรับ Python 2.6, 2.7, 3.3, 3.4, 3.5 และ 3.6 มีสองวิธีในการติดตั้ง Tweepy วิธีที่ง่ายที่สุดคือการใช้ pip

ใช้ Pip

เพียงพิมพ์ pip install tweepy ลงในเทอร์มินัลของคุณ

การใช้ GitHub

คุณสามารถทำตามคำแนะนำบนที่เก็บ GitHub ของ Tweepy ขั้นตอนพื้นฐานมีดังนี้:

 git clone https://github.com/tweepy/tweepy.git cd tweepy python setup.py install

คุณสามารถแก้ไขปัญหาการติดตั้งที่นั่นได้เช่นกัน

กำลังตรวจสอบสิทธิ์

เมื่อเรามีเครื่องมือที่จำเป็นพร้อมแล้ว ก็เริ่มเขียนโค้ดได้เลย! พื้นฐานของแต่ละแอปพลิเคชันที่เราจะสร้างในวันนี้ต้องใช้ Tweepy เพื่อสร้างวัตถุ API ซึ่งเราสามารถเรียกใช้ฟังก์ชันได้ ในการสร้างวัตถุ API เราต้องตรวจสอบตัวเองด้วยข้อมูลนักพัฒนาของเราก่อน

ขั้นแรก ให้นำเข้า Tweepy และเพิ่มข้อมูลการตรวจสอบสิทธิ์ของเราเอง

 import tweepy consumer_key = "wXXXXXXXXXXXXXXXXXXXXXXX1" consumer_secret = "qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXh" access_token = "9XXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXi" access_token_secret = "kXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT"

ถึงเวลาสร้างวัตถุ API ของเราแล้ว

 # Creating the authentication object auth = tweepy.OAuthHandler(consumer_key, consumer_secret) # Setting your access token and secret auth.set_access_token(access_token, access_token_secret) # Creating the API object while passing in auth information api = tweepy.API(auth)

นี่จะเป็นพื้นฐานของทุกแอปพลิเคชันที่เราสร้าง ดังนั้นอย่าลบมันออก

ตัวอย่างที่ 1: ไทม์ไลน์ของคุณ

ในตัวอย่างนี้ เราจะดึงทวีตล่าสุดสิบรายการจากฟีด Twitter ของคุณ เราจะทำสิ่งนี้โดยใช้ฟังก์ชัน home_timeline() ของวัตถุ API จากนั้นเราสามารถเก็บผลลัพธ์ไว้ในตัวแปร และวนซ้ำเพื่อพิมพ์ผลลัพธ์

 # Using the API object to get tweets from your timeline, and storing it in a variable called public_tweets public_tweets = api.home_timeline() # foreach through all tweets pulled for tweet in public_tweets: # printing the text stored inside the tweet object print tweet.text

ผลลัพธ์ควรดูเหมือนทวีตแบบสุ่ม ตามด้วย URL ของทวีตเอง

ทวีตเนื้อหาและลิงก์บนเทอร์มินัล

การติดตามลิงก์ไปยังทวีตมักจะนำคุณไปยังทวีตนั้นเอง การติดตามลิงก์จากทวีตแรกจะให้ผลลัพธ์ต่อไปนี้แก่เรา:

ทวีตว่าลิงค์แรกของภาพก่อนหน้าเชื่อมโยงกับ

โปรดทราบว่าหากคุณใช้งานผ่านเทอร์มินัลและไม่ใช่ IDE เช่น PyCharm คุณอาจมีปัญหาการจัดรูปแบบบางอย่างเมื่อพยายามพิมพ์ข้อความของทวีต

JSON เบื้องหลังผลลัพธ์

ในตัวอย่างข้างต้น เราพิมพ์ข้อความจากทวีตแต่ละรายการโดยใช้ tweet.text ในการอ้างถึงคุณลักษณะเฉพาะของแต่ละอ็อบเจ็กต์ทวีต เราต้องดูที่ JSON ที่ส่งกลับโดย Twitter API

ผลลัพธ์ที่คุณได้รับจาก Twitter API อยู่ในรูปแบบ JSON และมีข้อมูลแนบมาด้วยค่อนข้างมาก เพื่อความง่าย บทช่วยสอนนี้เน้นที่แอตทริบิวต์ "ข้อความ" ของทวีตแต่ละรายการเป็นหลัก และข้อมูลเกี่ยวกับทวีตเตอร์ (ผู้ใช้ที่สร้างทวีต) สำหรับตัวอย่างข้างต้น คุณสามารถดูวัตถุ JSON ที่ส่งคืนทั้งหมดได้ที่นี่

ต่อไปนี้คือลักษณะคร่าวๆ ของคุณลักษณะบางอย่างที่ทวีตมีให้

คุณลักษณะบางอย่างที่ส่งคืนโดย Twitter API

หากคุณต้องการค้นหาวันที่สร้างทวีต ให้ค้นหาด้วย print tweet.created_at

คุณยังสามารถเห็นได้ว่าแต่ละอ็อบเจ็กต์ทวีตมาพร้อมกับข้อมูลเกี่ยวกับทวีตเตอร์

แอตทริบิวต์ผู้ใช้ที่ส่งคืนโดย Twitter API

หากต้องการรับแอตทริบิวต์ "name" และ "location" ของทวีตเตอร์ คุณสามารถเรียกใช้ print tweet.user.screen_name และ print tweet.user.location

โปรดทราบว่าแอตทริบิวต์เหล่านี้มีประโยชน์อย่างยิ่งหากแอปพลิเคชันของคุณขึ้นอยู่กับข้อมูลเชิงพื้นที่

ตัวอย่างที่ 2: ทวีตจากผู้ใช้ที่ระบุ

ในตัวอย่างนี้ เราจะดึงทวีตล่าสุดยี่สิบทวีตจากผู้ใช้ที่เราเลือก

อันดับแรก เราจะตรวจสอบเอกสารของ Tweepy เพื่อดูว่ามีฟังก์ชันแบบนั้นอยู่หรือไม่ จากการวิจัยเพียงเล็กน้อย เราพบว่า user_timeline() คือสิ่งที่เรากำลังมองหา

เอกสารประกอบสำหรับคำสั่งไทม์ไลน์ของผู้ใช้

เราจะเห็นว่า user_timeline() มีพารามิเตอร์ที่เป็นประโยชน์บางอย่างที่เราสามารถใช้ได้ โดยเฉพาะ id (ID ของผู้ใช้) และ count (จำนวนทวีตที่เราต้องการดึง) โปรดทราบว่าเราสามารถดึงทวีตได้จำนวนจำกัดต่อการสืบค้นหนึ่งๆ เนื่องจากข้อจำกัดอัตราของ Twitter

เรามาลองดึงทวีตล่าสุดยี่สิบทวีตจากบัญชีทวิตเตอร์ @NyTimes กัน

เนื้อหาของบัญชี @NyTimes Twitter ในขณะที่เขียน

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

 # Creating the API object while passing in auth information api = tweepy.API(auth) # The Twitter user who we want to get tweets from name = "nytimes" # Number of tweets to pull tweetCount = 20 # Calling the user_timeline function with our parameters results = api.user_timeline(id=name, count=tweetCount) # foreach through all tweets pulled for tweet in results: # printing the text stored inside the tweet object print tweet.text

ผลลัพธ์ของเราควรมีลักษณะดังนี้:

เนื้อหาของไทม์ไลน์ของผู้ใช้สำหรับ @NyTimes

แอปพลิเคชันยอดนิยมของข้อมูลประเภทนี้อาจรวมถึง:

  • ดำเนินการวิเคราะห์ผู้ใช้เฉพาะและวิธีที่พวกเขาโต้ตอบกับโลก
  • ค้นหาผู้มีอิทธิพลใน Twitter และวิเคราะห์แนวโน้มและการโต้ตอบของผู้ติดตาม
  • การตรวจสอบการเปลี่ยนแปลงในผู้ติดตามของผู้ใช้

ตัวอย่างที่ 3: การค้นหาทวีตโดยใช้คำสำคัญ

ลองทำตัวอย่างสุดท้าย: รับทวีตล่าสุดที่มีคำหลัก สิ่งนี้มีประโยชน์อย่างยิ่งหากคุณต้องการตรวจสอบหัวข้อที่กล่าวถึงโดยเฉพาะในโลกของ Twitter หรือแม้แต่ดูว่ามีการพูดถึงธุรกิจของคุณอย่างไร สมมติว่าเราต้องการดูว่า Twitter พูดถึง Toptal อย่างไร

หลังจากดูเอกสารของ Tweepy แล้ว ฟังก์ชันการ search() ดูเหมือนจะเป็นเครื่องมือที่ดีที่สุดในการบรรลุเป้าหมายของเรา

เอกสารประกอบคำสั่งค้นหา

พารามิเตอร์ที่สำคัญที่สุดที่นี่คือ q — พารามิเตอร์การค้นหา ซึ่งเป็นคีย์เวิร์ดที่เรากำลังค้นหา

นอกจากนี้เรายังสามารถตั้งค่าพารามิเตอร์ภาษาเพื่อไม่ให้ทวีตจากภาษาที่ไม่ต้องการ ขอคืนเฉพาะทวีตภาษาอังกฤษ (“en”)

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

 # Creating the API object while passing in auth information api = tweepy.API(auth) # The search term you want to find query = "Toptal" # Language code (follows ISO 639-1 standards) language = "en" # Calling the user_timeline function with our parameters results = api.search(q=query, lang=language) # foreach through all tweets pulled for tweet in results: # printing the text stored inside the tweet object print tweet.user.screen_name,"Tweeted:",tweet.text

ผลลัพธ์ของเราควรมีลักษณะดังนี้:

ผลการค้นหาเมื่อค้นหา Toptal

ต่อไปนี้คือวิธีปฏิบัติบางประการที่คุณสามารถใช้ข้อมูลนี้ได้:

  • สร้างกราฟเชิงพื้นที่ว่าบริษัทของคุณได้รับการกล่าวถึงมากที่สุดจากที่ใดทั่วโลก
  • เรียกใช้การวิเคราะห์ความเชื่อมั่นในทวีตเพื่อดูว่าความคิดเห็นโดยรวมของบริษัทของคุณเป็นบวกหรือลบ
  • สร้างกราฟโซเชียลของผู้ใช้ยอดนิยมที่ทวีตเกี่ยวกับบริษัทหรือผลิตภัณฑ์ของคุณ

เราสามารถครอบคลุมหัวข้อเหล่านี้ได้ในบทความต่อๆ ไป

บทสรุป

API ของ Twitter มีประโยชน์อย่างมากในแอปพลิเคชันการทำเหมืองข้อมูล และสามารถให้ข้อมูลเชิงลึกมากมายเกี่ยวกับความคิดเห็นของสาธารณชน หาก Twitter API และการวิเคราะห์ข้อมูลขนาดใหญ่เป็นสิ่งที่คุณสนใจเพิ่มเติม เราขอแนะนำให้คุณอ่านเพิ่มเติมเกี่ยวกับแนวทางการจำกัดอัตราของ Twitter API, Tweepy และ Twitter

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

ที่เกี่ยวข้อง: การ วิเคราะห์เครือข่ายโซเชียลใน R และ Gephi: การขุดลงใน Twitter