python - 每个主题的热门词
问题描述
我正在根据收到的电子邮件在 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 个元素”
解决方案
所以问题是你已经创建了一个零列的新 df 并试图在其中分配新列。解决方案是:
df_topic_keywords = pd.DataFrame(pd.np.empty((0, len(v.get_feature_names()))))
df_topic_keywords.columns = v.get_feature_names()
推荐阅读
- html - HTML邮件中的CSS,它显示在手机上但不在浏览器中?
- python - 如何在 for 循环中打印与所选值对应的索引
- javascript - 私有路由在 React 中被调用数十次
- django - 表单提交分页中的Django下一页
- excel - 如何对下拉列表使用间接和替代公式?
- arrays - 在 Python 中,如何按每个对象中的值对 JSON 对象数组进行排序?
- html - 100% 高度不适用于两个 div 之一
- python - keras 中输入数据不兼容错误,尺寸不匹配 ValueError
- python - 在预期条件的上下文中指定的非布尔类型的表达式,靠近 ')' - Pyodbc 和 SQL Server
- sql-server - Docker:如何在 SQL Server Dockerfile 中运行 sql 脚本