首页 文章

基于Python twitter的感伤分析

提问于
浏览
0

这是我在基于推特的情绪数据分析中得到的错误

tweets = api.Get_tweets(query ='Dengue',count = 200)AttributeError:'TwitterClient'对象没有属性'Get_tweets'>>>

def get_tweets(self, query, count = 10):
            tweets = []
    try:



        fetched_tweets = self.api.search(q = query, count = count)


        for tweet in fetched_tweets:
                            parsed_tweet = {}


            parsed_tweet['text'] = tweet.text

            parsed_tweet['sentiment'] = self.get_tweet_sentiment(tweet.text)


            if tweet.retweet_count > 0:

                if parsed_tweet not in tweets:
                    tweets.append(parsed_tweet)
            else:
                tweets.append(parsed_tweet)


        return tweets

    except tweepy.TweepError as e:

        print("Error : " + str(e))

def main():

api = TwitterClient()

tweets = api.get_tweets(query = 'Dengue', count = 200)

2 回答

  • 0

    查看您正在使用的缩进,似乎 get_tweets 不是 TwitterClient 的成员 .

    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)
    
    class TwitterClient:
        api = tweepy.API(auth)
        def get_tweets(self, query, count = 10):
            tweets = []
            try:
                fetched_tweets = self.api.search(q = query, count = count)
    
                for tweet in fetched_tweets:
                    parsed_tweet = {}
                    parsed_tweet['text'] = tweet.text
                    parsed_tweet['sentiment'] = self.get_tweet_sentiment(tweet.text)
    
                    if tweet.retweet_count > 0:
                        if parsed_tweet not in tweets:
                            tweets.append(parsed_tweet)
                    else:
                        tweets.append(parsed_tweet)
    
                return tweets
    
            except tweepy.TweepError as e:
                print("Error : " + str(e))
    
    def main():
        client = TwitterClient()
        tweets = client.get_tweets(query = 'Dengue', count = 200)
    
    main()
    

    此代码确保 get_tweetsTwitterClient 的成员 . 此外,注意到我在 main() 中将 api 重命名为 client ,考虑到使用 self.api 的惯例,这可能不那么令人困惑 .

  • 0

    导入重新导入tweepy

    来自tweepy导入OAuthHandler

    从textblob导入TextBlob

    来自twitter进口Twitter

    类TwitterClient(对象):'''

    用于情绪分析的通用Twitter类 . “””

    def init (个体经营):'''

    Class constructor or initialization method.
        '''
    
        # keys and tokens from the Twitter Dev Console
    

    CONSUMER_KEY = ''

    CONSUMER_SECRET = ''

    的access_token = ''

    access_token_secret =''

    # attempt authentication
    

    尝试:

    # create OAuthHandler object
    
            self.auth = OAuthHandler(consumer_key, consumer_secret)
    
            # set access token and secret
    
            self.auth.set_access_token(access_token, access_token_secret)
    
            # create tweepy API object to fetch tweets
    
            self.api = tweepy.API(self.auth)
    

    除了:

    print("Error: Authentication Failed")
    

    def clean_tweet(self,tweet):

    '''
    
        Utility function to clean tweet text by removing links, special
    

    使用简单的正则表达式语句的字符 .

    '''
    

    return'' . join(re.sub(“(@ [A-Za-z0-9])|([^0-9A-Za-z \ t])|(\ w:// \ S)”, “”,推文).split())

    def get_tweet_sentiment(self,tweet):

    '''
    
        Utility function to classify sentiment of passed tweet
    
        using textblob's sentiment method
    
        '''
    
        # create TextBlob object of passed tweet text
    
        analysis = TextBlob(self.clean_tweet(tweet))
    
        # set sentiment
    
        if analysis.sentiment.polarity > 0:
    
            return 'positive'
    
        elif analysis.sentiment.polarity == 0:
    
            return 'neutral'
    
        else:
    
            return 'negative'
    

    类TwitterClient:

    api = tweepy.API(auth)
    
    def get_tweets(self, query, count = 10):
    
        tweets = []
    
        try:
    
            fetched_tweets = self.api.search(q = query, count = count)
    
    
    
            for tweet in fetched_tweets:
    
                parsed_tweet = {}
    
    
    
                parsed_tweet['text'] = tweet.text
    
                parsed_tweet['sentiment'] = self.get_tweet_sentiment(tweet.text)
    
    
    
                if tweet.retweet_count > 0:
    
                    if parsed_tweet not in tweets:
    
                        tweets.append(parsed_tweet)
    
                else:
    
                    tweets.append(parsed_tweet)
    
    
    
            return tweets
    
    
        except tweepy.TweepError as e:
    
            print("Error : " + str(e))
    

    def main():

    client = TwitterClient()
    
    tweets = client.get_tweets(query = 'Dengue', count = 200)
    
    
    # picking positive tweets from tweets
    
    # percentage of positive tweets
    

    print(“正推文百分比:{}%” . 格式(100 * len(ptweets)/ len(tweets)))

    # picking negative tweets from tweets
    

    ntweets = [如果tweet ['sentiment'] =='negative',推文中的推文推文]

    # percentage of negative tweets
    

    print(“负推文百分比:{}%” . 格式(100 * len(ntweets)/ len(tweets)))

    # percentage of neutral tweets
    

    打印(“中性推文百分比:{}%\

    ".format(100*len(tweets - ntweets - ptweets)/len(tweets)))
    
    
    # printing first 5 positive tweets
    

    打印(“\ n \ n正在推文:”)

    对于ptweets中的推文[:10]:

    print(tweet['text'])
    
    
    # printing first 5 negative tweets
    

    print(“\ n \ nNendative tweets:”)

    在ntweets [:10]中发推文:

    print(tweet['text'])
    

    如果 name ==“ main ”:

    # calling main function
    
        main()
    

相关问题