关于 scholar-search
一个使用 Python 脚本搜索 OpenAlex 学术作品的研究技能,适合查找论文、会议和期刊文献。结果包含引用数、发表场所、重建摘要及外部标识符,并支持年份、场所和引用数筛选。
主要功能
- 01搜索 OpenAlex 学术作品
- 02输出结构化 JSON 与重建摘要
- 03按年份、场所和概念筛选
- 04支持引用数下限和开放获取筛选
适用场景
- 01检索特定主题的学术论文
- 02筛选近期或高引用研究
- 03按会议或期刊查找文献
- 04为文献综述收集候选作品
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dsebastien/ ai-skill-scholar --skill scholar-search安装后在 Claude Code 中输入/scholar-search确认已加载。
附带文件scripts/scholar_search.py
详细介绍
学术搜索
搜索 OpenAlex —— 一个包含 2.5 亿多篇学术作品的开放目录 —— 涵盖所有主要发表渠道的论文(不只是 arXiv)。返回结构化 JSON,其中包括引用次数、发表渠道、重建后的摘要,以及链接到 arXiv / DOI / PubMed 的外部 ID。
为什么选择 OpenAlex(而不是 Semantic Scholar)
两者涵盖的数据大致相同。OpenAlex 的优势在于:
- 无需 API 密钥。 免费公共端点开箱即用。
- 速率限制宽松。 匿名状态下每秒 10 次请求;加入礼貌使用池后额度更高。
- 实际可大规模使用。 Semantic Scholar 的公共套餐由多人共享,429 错误频繁发生。
为什么选择它而不是 arxiv-search
| arxiv-search | scholar-search | |
|---|---|---|
| 预印本 | 是 | 是 |
| 会议(ICLR、NeurIPS、ACL 等) | 否 | 是 |
| 期刊 | 否 | 是 |
| 图书、章节 | 否 | 是 |
| 引用次数 | 否 | 是 |
| 按发表渠道筛选 | 否 | 是 |
| 概念/主题标签 | 否 | 是 |
进行广泛综述时,可同时使用两者(通过 literature-review)。
用法
# Basic query
python3 scripts/scholar_search.py "mechanistic interpretability" --limit 25
# Year + venue filter
python3 scripts/scholar_search.py "sparse autoencoders" \
--year 2024-2026 --venue "ICLR" --limit 30
# Citation floor (quality filter)
python3 scripts/scholar_search.py "scaling laws" --min-citations 50 --limit 20
# Open-access only (when you want readable papers)
python3 scripts/scholar_search.py "mixture of experts" --open-access --limit 20
# Concept filter (uses OpenAlex's topic taxonomy)
python3 scripts/scholar_search.py "alignment" \
--concepts "Machine learning" --limit 20
标志:
--limit N— 最多返回的结果数(1-200;默认 25)--year YYYY或YYYY-YYYY— 按发表年份筛选--venue NAME— 对发表渠道名称进行不区分大小写的部分匹配--concepts NAME— OpenAlex 概念(例如Machine learning、Computer vision)--min-citations N— 引用次数下限--open-access— 仅返回有公开 PDF 的作品
输出 JSON 结构(每条结果):
{
"paper_id": "W4395065622",
"openalex_url": "https://openalex.org/W4395065622",
"title": "...",
"authors": ["Alice", "Bob"],
"year": 2024,
"venue": "ICLR 2024",
"work_type": "article",
"citation_count": 150,
"reference_count": 42,
"abstract": "...",
"concepts": ["Interpretability", "Machine learning"],
"arxiv_id": "2404.14082",
"doi": "10.48550/arxiv.2404.14082",
"is_open_access": true,
"open_access_pdf": "https://arxiv.org/pdf/2404.14082",
"landing_url": "http://arxiv.org/abs/2404.14082"
}
礼貌使用池(可选)
如需大量使用,可通过设置邮箱加入 OpenAlex 的礼貌使用池:
export OPENALEX_EMAIL="[email protected]"
享有优先路由和更高的有效速率限制。无需注册——邮箱只需有效,以便在你的流量出现异常时他们能联系到你。
工作流
1. 解析意图
- “查找关于 X 的论文” → 基本查询
- “查找关于 X 的高引用论文” → 添加
--min-citations 50+ - “查找关于 X 的近期论文” →
--year 2024-2026 - “查找发表在 Y 的论文” →
--venue "ICLR" - “仅限开放获取” →
--open-access
2. 执行搜索
默认 --limit 25。进行广泛综述时,可提高到 50-100。OpenAlex 响应迅速,因此较大的结果页也没问题。
3. 呈现结果
使用精简表格:引用次数 | 年份 | 发表渠道 | 作者 | 标题 | 摘要首句。除非用户要求按新近程度排序,否则按引用次数排序。
OpenAlex 没有 TLDR 字段(Semantic Scholar 曾提供此字段)。可改用重建后摘要的前约 50 个词,快速筛选。
4. 提供后续操作
- “分析论文 X” → 转交给 arxiv-analyze(如果存在
arxiv_id),或直接获取open_access_pdf - “谁引用了这篇论文?”/“这篇论文引用了什么?” → 转交给 scholar-citations
- “文献综述” → 转交给 literature-review
令牌效率
- 25 条结果约为 8K-15K 个令牌(摘要占大多数)。未来可通过标志覆盖
--select,用于仅筛选的处理流程。 - OpenAlex 在服务器端将摘要存储为“倒排索引”格式;此脚本会在处理过程中将其重建为普通文本。
速率限制
- 匿名使用: 每秒 10 次请求;共享池每日 10 万次
- 礼貌使用池(设置
OPENALEX_EMAIL):限制相同,但优先级更高,限流情况更少
脚本会自行将每个进程的请求速率限制在每秒 5 次(通过 ~/.cache/ai-skill-scholar/ 中的冷却文件共享限制)。
硬性规则
- 不得索取密钥: 绝不提示用户提供 API 密钥。OpenAlex 无需密钥;
OPENALEX_EMAIL是可选项,且已有说明。 - 不得过度请求: 每秒 5 次请求的限流至关重要。不要移除。
- 摘要可能缺失: OpenAlex 不一定总有摘要。缺失时应留空,不要编造。
要求
- Python 3.11+(仅使用标准库)
- 可访问互联网并连接到
api.openalex.org - 可选:设置
OPENALEX_EMAIL环境变量以使用礼貌使用池
评论
支持 Markdown