You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将BERTopic主题建模结果转换为指定格式的DataFrame?

生成两种格式的主题关键词DataFrame

假设你已经获取了主题与对应关键词的映射数据(比如从BERTopic/KeyBERT返回结果转换而来),以下是用Pandas实现两种格式DataFrame的代码:

1. 长格式DataFrame(类别+实体列)

这种格式将每个关键词与所属主题一一对应,适合后续统计或关联分析:

import pandas as pd

# 示例主题-关键词映射(替换为你的实际数据)
topic_keywords = {
    "人工智能应用": ["机器学习", "深度学习", "自然语言处理"],
    "数据分析工具": ["Python", "Pandas", "SQL"],
    "云计算技术": ["AWS", "阿里云", "容器化"]
}

# 构建长格式数据列表
long_format_data = []
for topic_name, keywords in topic_keywords.items():
    for keyword in keywords:
        long_format_data.append({
            "类别(主题名)": topic_name,
            "实体(主题关键词)": keyword
        })

# 生成DataFrame
long_df = pd.DataFrame(long_format_data)
print(long_df)

输出示例:

类别(主题名) 实体(主题关键词)
0  人工智能应用        机器学习
1  人工智能应用        深度学习
2  人工智能应用      自然语言处理
3  数据分析工具        Python
4  数据分析工具         Pandas
5  数据分析工具          SQL
6  云计算技术          AWS
7  云计算技术         阿里云
8  云计算技术        容器化

2. 宽格式DataFrame(主题为列,关键词为行)

这种格式将每个主题作为列,每行对应同一位置的关键词(关键词数量不足时自动补NaN):

# 计算所有主题的关键词最大长度,用于对齐行
max_keyword_count = max(len(kw_list) for kw_list in topic_keywords.values())

# 构建宽格式数据字典
wide_format_data = {}
for topic_name, keywords in topic_keywords.items():
    # 补全空值到最大长度,保证列长度一致
    wide_format_data[topic_name] = keywords + [None] * (max_keyword_count - len(keywords))

# 生成DataFrame,行索引设为关键词位置
wide_df = pd.DataFrame(
    wide_format_data,
    index=[f"关键词{i+1}" for i in range(max_keyword_count)]
)
print(wide_df)

输出示例:

人工智能应用 数据分析工具 云计算技术
关键词1    机器学习  Python    AWS
关键词2    深度学习   Pandas   阿里云
关键词3  自然语言处理     SQL  容器化

适配BERTopic/KeyBERT原始输出

如果你的数据直接来自BERTopic,可先将模型输出转换为主题-关键词字典:

# 假设topic_model是训练好的BERTopic模型
topics = topic_model.get_topics()
# 提取每个主题的前N个关键词(此处取前5个),排除噪声主题(topic_id=-1)
topic_keywords = {
    f"主题{topic_id}": [word for word, _ in keywords[:5]]
    for topic_id, keywords in topics.items()
    if topic_id != -1
}

内容的提问来源于stack exchange,提问作者xavi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 21:55:14