我有一个包含 1000 万条新闻文章记录的 Pandas 数据框。所以,这就是我应用 TfidfVectorizer 的方式。

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

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

我已经完成了这个 SO post 但并没有完全了解如何将它应用于 Pandas 。我也听说过 Python generators 但不知道它在这里是否有用。

最佳答案

您可以按如下方式分块迭代。该解决方案已改编自 here

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)

关于python-3.x - 如何在 Pandas 数据帧上迭代 TfidfVectorizer(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51394206/

10-12 21:15