【发布时间】:2019-09-30 21:30:29
【问题描述】:
感谢您为这个看似愚蠢的问题提供的帮助。我已经将一个 sqlite 表拉入了一个 pandas 数据框中,这样我就可以标记并计算一系列推文中单词的频率。
使用下面的代码,我可以为第一条推文生成这个。如何迭代整个表?
conn = sqlite3.connect("tweets.sqlite")
data = pd.read_sql_query("select tweet_text from tweets_new;", conn)
tokenizer=RegexpTokenizer(r'\w+')
tokens=tokenizer.tokenize(data['tweet_text'][0])
words = nltk.FreqDist(tokens)
unigram_df = pd.DataFrame(words.most_common(),
columns=["WORD","COUNT"])
unigram_df
当我将值更改为单行以外的任何值时,我收到以下错误:
TypeError: expected string or buffer
我知道还有其他方法可以做到这一点,但我需要按照这些思路来做,因为我打算接下来如何使用输出。感谢您提供的任何帮助!
我试过了:
%%time
tokenizer = RegexpTokenizer(r'\w+')
print "Cleaning the tweets...\n"
for i in xrange(0,len(df)):
if( (i+1)%1000000 == 0 ):
tokens=tokenizer.tokenize(df['tweet_text'][i])
words = nltk.FreqDist(tokens)
这看起来应该可以,但仍然只返回第一行中的单词。
【问题讨论】:
-
当您说“将值更改为单行以外的任何值”时,请发布您使用的代码。
-
谢谢,用我试过的方法编辑。
标签: python pandas nltk tokenize