কম্পিউটার

পাইথন প্রোগ্রামিং ব্যবহার করে টুইটার সেন্টিমেন্ট বিশ্লেষণ।


সেন্টিমেন্ট অ্যানালাইসিস হল লিখিত টেক্সট বা মৌখিক যোগাযোগের মাধ্যমে নির্দিষ্ট ইভেন্টে প্রতিক্রিয়া প্রদানকারী ব্যক্তিদের অনুভূতি অনুমান করার প্রক্রিয়া। অবশ্যই মৌখিক যোগাযোগকে লিখিত পাঠে রূপান্তর করতে হবে যাতে এটি পাইথন প্রোগ্রামের মাধ্যমে বিশ্লেষণ করা যায়। মানুষের দ্বারা প্রকাশিত অনুভূতি ইতিবাচক বা নেতিবাচক হতে পারে। সেন্টিমেন্ট টেক্সটে বিভিন্ন শব্দের ওজন নির্ধারণ করে আমরা একটি সংখ্যাসূচক মান গণনা করি এবং এটি আমাদের অনুভূতির গাণিতিক মূল্যায়ন দেয়।

উপযোগিতা

  • গ্রাহকের প্রতিক্রিয়া - পণ্য বা পরিষেবা সম্পর্কে গ্রাহকের মতামত জানা ব্যবসার জন্য অত্যাবশ্যক৷ যখন গ্রাহকের প্রতিক্রিয়া লিখিত টেক্সট হিসাবে পাওয়া যায় তখন আমরা টুইটারে অনুভূতি বিশ্লেষণ চালাতে পারি যাতে সামগ্রিক প্রতিক্রিয়া ইতিবাচক বা নেতিবাচক হিসাবে প্রোগ্রাম্যাটিকভাবে খুঁজে বের করতে পারি এবং সংশোধনমূলক ব্যবস্থা নিতে পারি।

  • রাজনৈতিক প্রচারণা - রাজনৈতিক বিরোধীদের জন্য তারা যাদের কাছে বক্তৃতা দিচ্ছেন তাদের প্রতিক্রিয়া জানা খুবই গুরুত্বপূর্ণ। যদি সোশ্যাল মিডিয়া প্ল্যাটফর্মের মতো অনলাইন প্ল্যাটফর্মের মাধ্যমে জনসাধারণের প্রতিক্রিয়া সংগ্রহ করা যায়, তাহলে আমরা একটি নির্দিষ্ট বক্তৃতায় জনসাধারণের প্রতিক্রিয়া বিচার করতে পারি।

  • সরকারের উদ্যোগ - যখন সরকার সময়ে সময়ে নতুন প্রকল্প বাস্তবায়ন করে তখন তারা জনগণের মতামত নিয়ে নতুন প্রকল্পের প্রতিক্রিয়া বিচার করতে পারে। প্রায়ই জনসাধারণ তাদের প্রশংসা বা ক্ষোভ টুইটারের মাধ্যমে প্রকাশ করে।

পন্থা

নীচে আমরা পাইথনে সেন্টিমেন্ট অ্যানালাইসিস প্রোগ্রাম তৈরি করার জন্য প্রয়োজনীয় পদক্ষেপগুলি তালিকাভুক্ত করি৷

  • প্রথমে আমরা Tweepy এবং TextBlob ইনস্টল করি। এই মডিউলটি আমাদের টুইটার থেকে ডেটা সংগ্রহের পাশাপাশি পাঠ্য বের করতে এবং সেগুলি প্রক্রিয়া করতে সাহায্য করবে৷

  • টুইটারে প্রমাণীকরণ করা হচ্ছে। আমাদের 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…

  1. পাইথন প্রোগ্রামিং ব্যবহার করে ইমেজ ভিত্তিক স্টেগানোগ্রাফি

  2. পাইথন ব্যবহার করে Whatsapp?

  3. পাইথনে CX_Freeze ব্যবহার করা

  4. পাইথনে কচ্ছপ প্রোগ্রামিং