Генерация тестовых данных с использованием TfIdfVectorizer - PullRequest
0 голосов
/ 10 апреля 2020

Я разделил свои данные на части поезда и теста. Моя таблица данных имеет столбец с текстом. Учтите, что у меня есть десять других столбцов, представляющих числовые особенности. Я использовал TfidfVectorizer и данные обучения, чтобы сгенерировать матрицу терминов и комбинировать ее с числовыми функциями для создания кадра данных обучения.

tfidf_vectorizer=TfidfVectorizer(use_idf=True, max_features=5000, max_df=0.95)
tfidf_vectorizer_train = tfidf_vectorizer.fit_transform(X_train['text'].values)
df1_tfidf_train = pd.DataFrame(tfidf_vectorizer_train.toarray(), columns=tfidf_vectorizer.get_feature_names())
df2_train = df_main_ques.iloc[train_index][traffic_metrics]#to collect numerical features
df_combined_train = pd.concat([df1_tfidf_train, df2_train], axis=1)

Чтобы рассчитать оценку tf-idf для тестовой части, мне нужно повторно использовать набор данных тренировки. Я не уверен, как генерировать часть тестовых данных. Связанный пост:

[1] Добавить tfidf к pandas dataframe : обсудить только создание части обучающего набора данных

[2] Как TfidfVectorizer вычисляет оценки на тестовые данные : обсуждаемая часть тестовых данных, но не ясно, как создать тестовый фрейм данных, который содержит как термины, так и числовые функции.

1 Ответ

0 голосов
/ 10 апреля 2020

Вы можете использовать transform метод обученного векторизатора для преобразования ваших тестовых данных на уже обученном векторизаторе. Вы можете повторно использовать обученный векторизатор для генерации тестового набора данных TF-IDF по

tfidf_vectorizer_test = tfidf_vectorizer.transform(X_test['text'].values)
...