Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 프로그래밍을 사용한 트위터 감정 분석.

<시간/>

감정 분석은 서면 텍스트 또는 구두 의사 소통을 통해 특정 이벤트에 대한 피드백을 제공하는 사람들의 감정을 추정하는 프로세스입니다. 물론 구두 의사 소통도 서면 텍스트로 변환해야 파이썬 프로그램을 통해 분석 할 수 있습니다. 사람들이 표현하는 감정은 긍정적일 수도 있고 부정적일 수도 있습니다. 감정 텍스트의 다른 단어에 가중치를 할당하여 숫자 값을 계산하고 감정에 대한 수학적 평가를 제공합니다.

유용성

  • 고객 피드백 − 기업이 제품이나 서비스에 대한 고객의 의견을 아는 것은 매우 중요합니다. 고객의 피드백이 서면 텍스트로 제공되면 Twitter에서 감정 분석을 실행하여 전반적인 피드백을 긍정적 또는 부정적으로 프로그래밍 방식으로 찾아 수정 조치를 취할 수 있습니다.

  • 정치 캠페인 − 정치적 반대자들에게는 연설을 전달하는 사람들의 반응을 아는 것이 매우 중요합니다. 소셜 미디어 플랫폼과 같은 온라인 플랫폼을 통해 대중의 피드백을 수집할 수 있다면 특정 연설에 대한 대중의 반응을 판단할 수 있습니다.

  • 정부 이니셔티브 − 정부가 수시로 새로운 제도를 시행할 때 여론을 수렴하여 새로운 제도에 대한 반응을 판단할 수 있음. 종종 대중은 트위터를 통해 칭찬이나 분노를 표현합니다.

접근

아래에는 Python에서 감정 분석 프로그램을 빌드하는 데 필요한 단계가 나열되어 있습니다.

  • 먼저 Tweepy와 TextBlob을 설치합니다. 이 모듈은 Twitter에서 데이터를 수집하고 텍스트를 추출하고 처리하는 데 도움이 됩니다.

  • 트위터에 인증합니다. 트위터에서 데이터를 추출할 수 있도록 API 키를 사용해야 합니다.

  • 그런 다음 트윗의 텍스트를 기반으로 트윗을 긍정적인 트윗과 부정적인 트윗으로 분류합니다.

예시

데프 __init __ (자기) :consumer_key ='1ZG44GWXXXXXXXXXjUIdse'consumer_secret ='M59RI68XXXXXXXXXXXXXXXXV0P1L6l7WWetC'access_token은 ='865439532XXXXXXXXXX9wQbgklJ8LTyo3PhVDtF'access_token_secret ='hbnBOz5XXXXXXXXXXXXXefIUIMrFVoc'시도 :self.auth =OAuthHandler 가져 오기 다시 가져 오기 tweepyfrom tweepy 수입 OAuthHandlerfrom의 textblob 가져 오기 TextBlobclass Twitter_User (객체)
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…