4

我有一个包含 1000 万条新闻文章记录的大型 pandas 数据框。所以,这就是我申请的方式TfidfVectorizer

from sklearn.feature_extraction.text import TfidfVectorizer
tfidf = TfidfVectorizer()
feature_matrix = tfidf.fit_transform(df['articles'])

处理所有文件需要花费大量时间。我只想一次迭代数据框中的每篇文章,或者我是否可以分块传递文档并不断更新现有词汇表而不覆盖旧的词汇表?

我已经阅读了这篇 SO帖子,但并没有完全了解如何将它应用到 pandas 上。我也听说过Python generators但不完全了解它是否在这里有用。

4

1 回答 1

4

您可以按如下方式迭代块。该解决方案已从此处改编

def ChunkIterator():
    for chunk in pd.read_csv(csvfilename, chunksize=1000):
      for doc in  chunk['articles'].values:
             yield doc

corpus  = ChunkIterator()
tfidf = TfidfVectorizer()
feature_matrix = tfidf.fit_transform(corpus)
于 2018-12-13T03:30:09.877 回答