Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การวิเคราะห์ความเชื่อมั่นของ Twitter โดยใช้การเขียนโปรแกรม Python


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

ประโยชน์

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

  • แคมเปญทางการเมือง − สำหรับฝ่ายตรงข้ามทางการเมือง จำเป็นต้องรู้ปฏิกิริยาของผู้คนที่พวกเขากำลังกล่าวสุนทรพจน์ด้วย หากคำติชมจากสาธารณะสามารถรวบรวมผ่านแพลตฟอร์มออนไลน์ เช่น แพลตฟอร์มโซเชียลมีเดีย เราก็สามารถตัดสินการตอบสนองของสาธารณชนต่อคำพูดที่เฉพาะเจาะจงได้

  • ความคิดริเริ่มของรัฐบาล − เมื่อรัฐบาลใช้แผนใหม่เป็นครั้งคราว พวกเขาสามารถตัดสินการตอบสนองต่อโครงการใหม่ได้โดยใช้ความคิดเห็นของสาธารณชน ผู้คนมักจะยกย่องหรือโกรธเคืองผ่าน Twitter

แนวทาง

ด้านล่างนี้คือขั้นตอนที่จำเป็นในการสร้างโปรแกรมวิเคราะห์ความคิดเห็นใน python

  • ก่อนอื่นเราติดตั้ง Tweepy และ TextBlob โมดูลนี้จะช่วยให้เรารวบรวมข้อมูลจาก Twitter รวมทั้งแยกข้อความและประมวลผลได้

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

  • จากนั้นเราจะจัดประเภททวีตเป็นทวีตเชิงบวกและเชิงลบตามข้อความในทวีต

ตัวอย่าง

import re
import tweepy
from tweepy import OAuthHandler
from textblob import TextBlob
class Twitter_User(object):
   def __init__(self):
      consumer_key = '1ZG44GWXXXXXXXXXjUIdse'
      consumer_secret = 'M59RI68XXXXXXXXXXXXXXXXV0P1L6l7WWetC'
      access_token = '865439532XXXXXXXXXX9wQbgklJ8LTyo3PhVDtF'
      access_token_secret = 'hbnBOz5XXXXXXXXXXXXXefIUIMrFVoc'
      try:
         self.auth = OAuthHandler(consumer_key, consumer_secret)
         self.auth.set_access_token(access_token, access_token_secret)
         self.api = tweepy.API(self.auth)
      except:
         print("Error: Authentication Failed")
   def pristine_tweet(self, twitter):
      return ' '.join(re.sub("(@[A-Za-z0-9]+)|([^0-9A-Za-z \t])|(\w+:\/\/\S+)", " ", twitter).split())
   def Sentiment_Analysis(self, twitter):
      audit = TextBlob(self.pristine_tweet(twitter))
      # set sentiment
      if audit.sentiment.polarity > 0:
         return 'positive'
      elif audit.sentiment.polarity == 0:
         return 'negative'
   def tweet_analysis(self, query, count = 10):
      twitter_tweets = []
      try:
         get_twitter = self.api.search(q = query, count = count)
         for tweets in get_twitter:
            inspect_tweet = {}
            inspect_tweet['text'] = tweets.text
            inspect_tweet['sentiment'] = self.Sentiment_Analysis(tweets.text)
            if tweets.retweet_count > 0:
               if inspect_tweet not in twitter_tweets:
                  twitter_tweets.append(inspect_tweet)
               else:
                  twitter_tweets.append(inspect_tweet)
         return twitter_tweets
      except tweepy.TweepError as e:
         print("Error : " + str(e))
def main():
   api = Twitter_User()
   twitter_tweets = api.tweet_analysis(query = 'Ram Nath Kovind', count = 200)
   Positive_tweets = [tweet for tweet in twitter_tweets if tweet['sentiment'] == 'positive']
   print("Positive tweets percentage: {} %".format(100*len(Positive_tweets)/len(twitter_tweets)))
   Negative_tweets = [tweet for tweet in twitter_tweets if tweet['sentiment'] == 'negative']
   print("Negative tweets percentage: {} %".format(100*len(Negative_tweets)/len(twitter_tweets)))
   print("\n\nPositive_tweets:")
   for tweet in Positive_tweets[:10]:
      print(tweet['text'])
   print("\n\nNegative_tweets:")
   for tweet in Negative_tweets[:10]:
      print(tweet['text'])
if __name__ == "__main__":
main()

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Positive tweets percentage: 48.78048780487805 %
Negative tweets percentage: 46.34146341463415 %
Positive_tweets:
RT @heartful_ness: "@kanhashantivan presents a model of holistic living. My deep & intimate association with this organisation goes back to…
RT @heartful_ness: Heartfulness Guide @kamleshdaaji welcomes honorable President of India Ram Nath Kovind @rashtrapatibhvn, honorable first…
RT @DrTamilisaiGuv: Very much pleased by the affection shown by our Honourable President Sri Ram Nath Kovind and First Lady madam Savita Ko…
RT @BORN4WIN: Who became the first President of India from dalit community?
A) K.R. Narayanan
B) V. Venkata Giri
C) R. Venkataraman
D) Ram…
Negative_tweets:
RT @Keyadas63: What wuld those #empoweredwomen b termed who reach Hon HC at the drop of a hat
But Demand #Alimony Maint?
@MyNation_net
@vaa…
RT @heartful_ness: Thousands of @heartful_ness practitioners meditated with Heartfulness Guide @kamleshdaaji at @kanhashantivan & await the…
RT @TurkeyinDelhi: Ambassador Sakir Ozkan Torunlar attended the Joint Session of Parliament of #India and listened the address of H.E. Shri…