Лучшие слова в теме - PullRequest
       12

Лучшие слова в теме

0 голосов
/ 19 июня 2019

Я делаю текстовый анализ в Python на основе полученных писем. Мои данные находятся в фрейме данных Pandas, с текстом электронного письма в df['document'], а тема в столбце df['topic'].

Я хочу создать фрейм данных с верхними ключевыми словами, которые определяют каждую тему (возможно, с использованием tf_idf).

Я создал векторизатор и пытаюсь создать новый фрейм данных с темой в качестве индекса или строки и списком слов в столбце.

from sklearn.feature_extraction.text import TfidfVectorizer
v = TfidfVectorizer()
x = v.fit_transform(df['document'])

# Topic-Keyword Matrix
df_topic_keywords = pd.DataFrame()

# Assign Column and Index
df_topic_keywords.columns = v.get_feature_names() #error occurs here
df_topic_keywords.index = df['topic']

# View
df_topic_keywords.head()

Я тогда получаю ошибку.

"ValueError: Несоответствие длины: ожидаемая ось имеет 0 элементов, новые значения есть 12730166 элементов "

1 Ответ

0 голосов
/ 20 июня 2019

Итак, проблема в том, что вы создали новый df с нулевыми столбцами и пытаетесь назначить новый столбец в нем.Решение этого:

 df_topic_keywords = pd.DataFrame(pd.np.empty((0, len(v.get_feature_names()))))
 df_topic_keywords.columns = v.get_feature_names()
...