search-school-sci-skill: Organizing Academic Research Output into Excel Visualizations

前言

在 DSH 里做科研情报或学院材料辅助时,常见需求是:给定「学校 + 学院」,汇总论文数量、分区、作者身份,并输出能直接用于汇报的表格。知网、Web of Science 等机构库通常没有稳定的「学院」字段,同一学院英文名在不同论文里写法不一,同名学院还会跨校误命中。手工检索再贴进 Excel,耗时长且口径难统一。

下面介绍社区插件 search-school-sci-skill(维护者 liu-Daniel7,分类:联网工具)。它把 OpenAlex 抓取、单位串普查、师资名单比对和 Excel 看板生成串成一条流水线;装到 DSH 后可通过自然语言触发技能,实际计算仍由仓库内 Python 脚本执行。

这是什么

search-school-sci-skill 的定位是:查任意大学任意学院的科研产出,总结成可视化 Excel。给一个「学校 + 学院」,输出一张可直接交材料的工作簿。

插件包在 GitHub 开源(liu-Daniel7/search-school-sci-skill),package.json 声明 dsh.bundle,版本 1.0.0,许可证 MIT。目录页:SkillHub 插件页。

它解决什么问题

README 用对照表概括了与「只有学校/个人、没有学院粒度」做法的差异,核心包括:

现实问题 工具做法
机构库缺少学院级字段 作者单位字符串匹配 + 教师姓名反查还原学院
同名学院跨校误算 强制校名限定,普查阶段列出撞名学校
学院英文名多种写法 写法普查,变体纳入检索
论文只署实验室 可单独配置实验室/中心名称通道
大量论文只写校名不写学院 用教师 OpenAlex 作者 ID 反查扩展
难区分教师与学生 与学院师资名单比对,学生标为「推定」
中文期刊在 OpenAlex 覆盖不足 提供知网补数流程与合并脚本

统计口径分两种,报告里应分开引用:本院主导(一作或通讯单位为本院,对外报材料用这个数)与 本院参与(含外单位主导、本院教师参与)。

输出长什么样

最终是一个 7 个工作表 的 Excel 工作簿,例如:

工作表 内容
① 看板 核心数字、方向×期刊层级、方向×作者身份、图例与柱状图
② 论文清单 全量记录,层级列配色,全列可筛选
③ 姓名对照表 第一作者与姓氏参考
④ 教师-方向矩阵 教师×方向热力图
⑤ 教师产出 逐人分区、一作/通讯、被引
⑥ 学生(推定) 推定学生一作清单
⑦ 说明 口径、清洗记录、局限

期刊层级参考中科院《期刊分区表》(1–4 区 + Top);会议按 CCF 推荐目录标 A/B/C;中文期刊在知网补数后按来源类别分层。README 要求报告附带四条限定语(学生身份推定、分区表年版、默认不含知网独有中文刊、被引为 OpenAlex 口径等),详见仓库 README「口径说明」。

安装与启用

DSH 安装命令(来自 README,勿自行改 owner/repo 写法):

dsh plugin add liu-Daniel7/search-school-sci-skill

装完后可直接说「用 search-school-sci 查某大学某学院的科研产出」触发技能。插件本体为 lib/index.js(skill provider),把 SKILL.md 注册为技能正文,仓库根目录作为 resourceBase,因此 reference/、scripts/ 相对路径在技能上下文中可解析。

安全与权限:插件随当前 DSH 进程权限运行,会联网访问 OpenAlex 等接口;安装前请阅读源码与 MIT 许可证,确认机构数据出境与账号策略符合本单位要求。

环境与依赖

需要 Python 3.9+ 以及 pandas、openpyxl:

pip install -r requirements.txt

不装 DSH 时,也可在克隆或解压后的仓库根目录直接跑脚本(本文不展开 git clone,以 README 命令为准)。

典型用法

仅命令行跑通

① 生成配置(交互向导,不必预先交教师名单):

python scripts/wizard.py --out config.json

② 抓取师资名单(可手工给学院官网 URL,或由 agent 搜索后传入):

python scripts/faculty_fetch.py --url https://你的学院官网/szdw/ --out faculty.csv --deep

③ 先普查,再全量出表(普查不可跳过,用于校验检索式是否混入其他学校):

python scripts/college_sci.py --config config.json --faculty-csv faculty.csv --stage census
python scripts/college_sci.py --config config.json --faculty-csv faculty.csv --out 学院科研产出.xlsx

--stage census 只做机构解析、单位串普查与同名学院检测,约 2–3 分钟,不抓论文。

单行示例(已有 config.json 时):

python scripts/college_sci.py --config config.json --out 学院科研产出.xlsx

知网补中文期刊(可选)

OpenAlex 对中文期刊覆盖有限;完整流程见仓库 reference/CNKI_GUIDE.md(需人工登录知网导出,脚本负责合并):

python scripts/cnki_import.py --records 结果.records.json \
  --cnki-dir ./cnki_export --config config.json --out 结果_含中文.xlsx

离线验证

python tests/smoke_test.py

不联网,验证记录到 7 个工作表、层级配色与中文署名处理链路。

在 DSH 里怎么用

安装插件后,把上述步骤交给 agent 按 SKILL.md 与 reference/WALKTHROUGH.md 执行即可:生成配置、抓师资、跑 census、再出 Excel;需要中文刊时走 CNKI 指南。踩坑案例与数字证据见 reference/pitfalls.md。

常见问题(README):篇数偏少多为单位写法未覆盖,看 census 输出补 college.en 或 extra_patterns;教师被判为学生多为 faculty.csv 拼音问题;OpenAlex 免费额度按 IP 约 $0.10/天(UTC 零点重置,北京时间早 8:00),遇 429 可申请 key 或分日续跑(有缓存断点)。

适用场景与边界

适合:需要学院粒度科研产出材料、愿意接受 OpenAlex + 可选知网合并口径的团队;在 DSH 里用对话驱动「配置 → 普查 → 出表」。

边界(README「已知边界」):中文刊依赖知网机构账号,工具只做合并;学生身份仅能推定;不接入 WoS/Scopus 订阅库;学科方向由关键词自动判定,交叉论文可能需人工改;自动搜学院官网不稳定,建议 agent 先搜到 URL 再传给 faculty_fetch.py。

查「整校」在方法上可行,但本工具的设计最小区分粒度是学院;全校可按机构 ID 取数,不依赖这里的单位串匹配逻辑。

结尾

search-school-sci-skill 把学院级文献归属、分级与可视化报表收成一条可复现流水线,并封装为 DSH 联网工具插件,便于在 Harness 里用一句话启动长流程。

  • 目录页:https://www.skillhub.cn/plugins/liu-Daniel7/search-school-sci-skill
  • 源码与文档:https://github.com/liu-Daniel7/search-school-sci-skill

社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,可按需审阅后再安装。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye