Как перебрать TfidfVectorizer() на панде

У меня есть большой массив данных для панд с 10 миллионами записей новостных статей. Итак, вот как я подал заявку TfidfVectorizer,

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

Обработка всех документов заняла много времени. Все, что я хочу повторять каждую статью в кадре данных, по одному, или это возможно, что я могу передавать документы порциями, и это продолжает обновлять существующий словарь, не перезаписывая старый словарный запас словаря?

Я прошел этот пост, но не совсем понял, как применить его на пандах. Я также слышал о Python generators но не совсем так ли это полезно здесь.

2 ответа

Вы можете перебирать куски, как показано ниже. Решение было адаптировано отсюда

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)

Но иногда это не csv, это будет фрейм данных

Другие вопросы по тегам