NLTK Tokenizer с Twitter API - PullRequest
       20

NLTK Tokenizer с Twitter API

0 голосов
/ 20 апреля 2020

Я пытаюсь выяснить распределение частот в серии твитов, но распределение частот учитывает каждый твит уникально, а не весь твит. Как я могу это исправить?

import tweepy
from tweepy import OAuthHandler
import pandas as pd
from nltk.tokenize import word_tokenize
from nltk import FreqDist
from nltk.corpus import stopwords

consumer_key = 'x'
consumer_secret = 'x'
access_token = 'x'
access_secret = 'x'

auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)

api = tweepy.API(auth)

for tweet in tweepy.Cursor(api.user_timeline,
        "johnnywalker",
        result_type = "recent",
        count = 50,
        include_entities = False,
        exclude_replies = True,
        include_rts = False,
        trim_user = True,
        lang = "en").items():

        croy = word_tokenize(tweet.text)
        ensw = stopwords.words('english')
        filterArr = [word for word in croy if word not in ensw]
        filterArr = [word for word in croy if len(word) > 7]
        fdist = FreqDist(filterArr)
        fdist.most_common(50)

1 Ответ

0 голосов
/ 20 апреля 2020

Вы рассчитываете распределение частот для каждого твита. Вы должны сделать расчет за пределами l oop, если вы хотите распределение для серии твитов.

tweet_tokenized = [] 
for tweet in tweepy.Cursor(api.user_timeline,
        "johnnywalker",
        result_type = "recent",
        count = 50,
        include_entities = False,
        exclude_replies = True,
        include_rts = False,
        trim_user = True,
        lang = "en").items():

        croy = word_tokenize(tweet.text)
        ensw = stopwords.words('english')
        filterArr = [word for word in croy if word not in ensw]
        filterArr = [word for word in croy if len(word) > 7]
        tweet_tokenized.extend(filterArr)
fdist = FreqDist(tweet_tokenized)
fdist.most_common(50)
...