研究方向趋势扫描
元数据检索进阶

研究方向趋势扫描

查看某方向近 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 能力,提供基础试用额度,具体以账号权限为准。

前往控制台