首页 > 解决方案 > 每个主题的热门词

问题描述

我正在根据收到的电子邮件在 Python 中进行文本分析。我的数据在 Pandas 数据框中,电子邮件文本在其中df['document'],主题在 column 中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 个元素”

标签: pythonscikit-learntfidfvectorizer

解决方案


所以问题是你已经创建了一个零列的新 df 并试图在其中分配新列。解决方案是:

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

推荐阅读