如何基于Jupyter Notebook搭建SeanMF主题模型交互式关键词查询面板
Jupyter Notebook 交互式主题关键词仪表盘实现方案
1. 前期准备
- 先将你拿到的主题关键词文本数据转换为Python字典结构,方便后续查询调用,转换参考代码如下:
# 假设你把所有主题关键词存在topic_keywords.txt里,格式和你给出的示例一致 topic_dict = {} with open("topic_keywords.txt", "r", encoding="utf-8") as f: for line in f: line = line.strip() if not line: continue # 分割主题编号和关键词部分 topic_part, keyword_part = line.split(": ") topic_id = int(topic_part.replace("Topic ", "")) keyword_list = keyword_part.split(" ") topic_dict[topic_id] = keyword_list
- 依赖安装:如果你还没装交互组件库,执行以下命令安装
pip install ipywidgets
如果是Jupyter Lab环境还需要执行jupyter labextension install @jupyter-widgets/jupyterlab-manager启用扩展,重启Jupyter后生效。
2. 交互仪表盘核心代码
直接在Notebook单元格运行以下代码即可生成所需的交互功能:
import ipywidgets as widgets from ipywidgets import interact # 总主题数,你可以根据实际值修改 TOTAL_TOPIC = 25 # 默认展示的关键词数量 DEFAULT_KEYWORD_NUM = 10 def show_topic_keywords(topic_id, keyword_num): # 校验主题是否存在 if topic_id not in topic_dict: print(f"未找到编号为{topic_id}的主题,请确认主题编号") return keywords = topic_dict[topic_id][:keyword_num] print(f"主题{topic_id} 前{keyword_num}个关键词:") print("、".join(keywords)) # 绑定交互控件 interact( show_topic_keywords, # 主题选择下拉框,范围1到总主题数 topic_id = widgets.Dropdown(options=range(1, TOTAL_TOPIC+1), value=1, description='主题编号:'), # 关键词数量滑块,max值可根据每个主题实际最大关键词数调整 keyword_num = widgets.IntSlider(min=1, max=20, value=DEFAULT_KEYWORD_NUM, description='关键词数量:') );
3. 使用说明
运行上述代码后,单元格下方会自动生成两个交互控件:
- 主题编号下拉框:选择你要查看的主题ID
- 关键词数量滑块:拖拽调整要展示的关键词数量
调整控件参数后会自动刷新输出对应结果,完全匹配你需要的交互逻辑。
内容的提问来源于stack exchange,提问作者atatam_anukah
相关产品推荐
相关产品推荐

