研究方向趋势扫描
元数据检索进阶
研究方向趋势扫描
查看某方向近 5 年热度、头部期刊、高被引论文和关键词变化
用户场景
研究者想了解某个方向近 5 年的发展趋势:发文量变化、头部期刊分布、高被引论文、关键词演变。可用 meta-search 分年统计支撑。
预估调用量
~10–25 次 API 调用 / 一次扫描
适用工具
meta-search调用链路
研究方向关键词→ meta-search 按年分组→ 统计趋势→ 排序高被引→ 趋势报告
输入示例
用户输入:"我想了解 large language model 领域 2020–2024 年的发展趋势"
输出示例
## LLM 研究趋势报告 (2020–2024) | 年份 | 发文量 | 头部期刊 | 高被引论文 | |------|--------|----------|----------| | 2020 | 1,247 | NeurIPS, ICML | GPT-3 (Brown et al.) | | 2021 | 2,891 | ACL, EMNLP | FLAN (Wei et al.) | | 2022 | 5,432 | Nature, Science | ChatGPT, InstructGPT | | 2023 | 12,876 | Nature, ICML | GPT-4, LLaMA | | 2024 | 18,234 | NeurIPS, ICLR | Claude 3, Gemini |
Agent Prompt 示例
你是一个研究趋势分析 Agent。当用户指定研究方向时:
1. 用 meta-search 按年分组查询,统计每年发文量
2. 按 citation_count 排序找出高被引论文
3. 统计头部期刊分布
4. 输出结构化趋势报告分步实现
Step 1: 环境准备
安装依赖并配置 API Token
!pip install httpx pandas
import os
os.environ["SCIVERSE_API_TOKEN"] = "sv-your-token-here" # 替换为你的真实值
Step 2: 按年统计发文量
用 meta-search 分年查询,统计每年的发文数量
import os
import asyncio
import httpx
import pandas as pd
BASE = "https://api.sciverse.space"
TOKEN = os.environ["SCIVERSE_API_TOKEN"]
HEADERS = {"Authorization": f"Bearer {TOKEN}"}
async def count_by_year(query: str, year: int) -> int:
async with httpx.AsyncClient(timeout=30) as client:
resp = await client.post(
f"{BASE}/meta-search", headers=HEADERS,
json={
"query": query,
"filters": [
{"field": "publication_published_year", "operator": "FILTER_OP_EQ", "value": year}
],
"page": 1, "page_size": 1
}
)
resp.raise_for_status()
return resp.json().get("total_count", 0)
async def trend_scan(query: str, start_year: int = 2020, end_year: int = 2024):
tasks = [count_by_year(query, y) for y in range(start_year, end_year + 1)]
counts = await asyncio.gather(*tasks)
return list(zip(range(start_year, end_year + 1), counts))
QUERY = "large language model"
trend = await trend_scan(QUERY)
df = pd.DataFrame(trend, columns=["year", "count"])
print(df.to_string(index=False))
Step 3: 查找高被引论文和头部期刊
按引用数排序,找出各年最具影响力的论文
async def top_cited_papers(query: str, year: int, top_n: int = 5, candidate_pool: int = 50):
"""查找某主题在某年度的高被引论文。
query 与 sort 可共用:也可直接传 sort 让服务端按引用数硬排;本例演示先按 query 取候选、再本地按引用数排序的做法。
"""
async with httpx.AsyncClient(timeout=30) as client:
resp = await client.post(
f"{BASE}/meta-search", headers=HEADERS,
json={
"query": query,
"filters": [
{"field": "publication_published_year", "operator": "FILTER_OP_EQ", "value": year}
],
"page": 1, "page_size": candidate_pool
}
)
resp.raise_for_status()
papers = (resp.json().get("results") or [])
return sorted(papers, key=lambda p: p.get("citation_count", 0), reverse=True)[:top_n]
async def main():
for year in [2022, 2023, 2024]:
papers = await top_cited_papers(QUERY, year)
print(f"\
=== {year} Top Cited for '{QUERY}' ===")
for p in papers:
venue = p.get("publication_venue_name_unified", "N/A")
cites = p.get("citation_count", 0)
print(f" [{cites} cites] {p['title'][:60]} ({venue})")
await main()
注意事项
- query 与 sort 可共用:按引用数排序时可在传 query 的同时传 sort(服务端硬排)
- 分年查询可并发执行(asyncio.gather)提高效率
- total_count 可直接作为当年发文量,无需拉取全部结果
- 可进一步统计 venue 分布、作者网络等
FAQ
适合什么分析?
适合分析某方向近几年发文量、头部期刊、高被引论文和趋势变化。
数据从哪里来?
主要来自 meta-search 的元数据检索和排序结果。
能否直接代表学术共识?
不能,趋势扫描反映文献分布和热度,不等同于结论共识。
输出建议包含什么?
建议包含年度发文量、高被引论文、代表期刊、关键词和数据口径。
下一步
还没有 API Key?
登录控制台「密钥」即可创建。同一套 API Key 可用于已开通的 Sciverse、点石与 Skills 能力,提供基础试用额度,具体以账号权限为准。