Как перебрать 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)