CSVファイル(メモリに収まらない)からロードされた巨大なデータフレームの列に格納されたテキストからTF-IDF機能のマトリックスを取得する必要があります。チャンクを使用してデータフレームを反復処理しようとしていますが、メソッドTfidfVectorizerの予想される変数タイプではないジェネレーター オブジェクトを返しています。以下に示すジェネレーターメソッドを作成しているときに、何か間違ったことをしていると思いChunkIterator
ます。
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
#Will work only for small Dataset
csvfilename = 'data_elements.csv'
df = pd.read_csv(csvfilename)
vectorizer = TfidfVectorizer()
corpus = df['text_column'].values
vectorizer.fit_transform(corpus)
print(vectorizer.get_feature_names())
#Trying to use a generator to parse over a huge dataframe
def ChunkIterator(filename):
for chunk in pd.read_csv(csvfilename, chunksize=1):
yield chunk['text_column'].values
corpus = ChunkIterator(csvfilename)
vectorizer.fit_transform(corpus)
print(vectorizer.get_feature_names())
ChunkIterator
上記の方法を変更する方法、またはdataframeを使用したその他のアプローチを誰でもアドバイスできますか。dataframeの行ごとに個別のテキスト ファイルを作成することは避けたいと思います。以下は、シナリオを再作成するためのダミー csv ファイル データです。
id,text_column,tags
001, This is the first document .,['sports','entertainment']
002, This document is the second document .,"['politics', 'asia']"
003, And this is the third one .,['europe','nato']
004, Is this the first document ?,"['sports', 'soccer']"