学术文献引用真实性检测工具 - 检测AI幻觉产生的虚假引用
English | 中文
当你使用ChatGPT等AI工具辅助写论文时,AI可能会"编造"一些不存在的参考文献(这叫AI幻觉)。RealCite可以自动检测你的BibTeX文件中的引用是否真实存在。
# 使用conda创建新环境(推荐Python 3.9+)
conda create -n realcite python=3.11 -y
conda activate realcite# 进入项目目录
cd /data/250010040/workspace/project/realcite
# 安装(开发模式)
pip install -e .# 验证一个BibTeX文件
realcite your_references.bib
# 或者用我们提供的测试文件试试
realcite tests/fixtures/valid.bib -v就这么简单!
# 最简单的用法:直接验证
realcite references.bib
# 保存报告到文件
realcite references.bib -o report.md
# 输出JSON格式(方便程序处理)
realcite references.bib -f json -o report.json
# 详细模式(显示验证过程)
realcite references.bib -v
# 只用特定的验证源
realcite references.bib --sources dblp,arxivfrom realcite import RealCite
# 创建验证器
checker = RealCite()
# 验证BibTeX文件
report = checker.validate("references.bib")
# 查看结果
print(f"总共: {report.total_count} 条引用")
print(f"已验证: {report.verified_count}")
print(f"可疑: {report.suspicious_count}")
print(f"未找到: {report.not_found_count}")
# 导出报告
checker.export_report(report, "report.md", format="markdown")| 状态 | 含义 |
|---|---|
| ✅ 已验证 (verified) | 在学术数据库中找到了匹配的文献 |
| 找到了部分匹配,但置信度不够高,建议人工核实 | |
| ❌ 未找到 (not_found) | 在所有数据库中都没找到,很可能是虚假引用 |
| ⛔ 错误 (error) | 验证过程出错(如标题太短无法验证) |
RealCite会依次查询以下学术数据库:
| 数据库 | 说明 | 适合验证 |
|---|---|---|
| DBLP | 计算机科学领域最权威 | CS会议/期刊论文 |
| Semantic Scholar | AI领域覆盖全面 | AI/ML/NLP论文 |
| arXiv | 预印本权威来源 | arXiv预印本 |
| CrossRef | DOI官方数据库 | 有DOI的任何文献 |
realcite/
├── src/realcite/ # 源代码
│ ├── main.py # 命令行入口
│ ├── core.py # 核心验证逻辑
│ ├── parser.py # BibTeX解析
│ ├── matcher.py # 匹配算法
│ ├── reporter.py # 报告生成
│ └── validators/ # 各数据库验证器
│ ├── dblp.py
│ ├── semantic_scholar.py
│ ├── arxiv.py
│ └── crossref.py
├── tests/ # 测试文件
│ └── fixtures/ # 测试用的bib文件
│ ├── valid.bib # 真实文献
│ ├── fake.bib # 虚假文献
│ └── mixed.bib # 混合文献
├── pyproject.toml # 项目配置
└── README.md # 本文件
Q: 为什么有些真实的文献被标记为"可疑"?
A: 可能是因为:
- 标题拼写与数据库中略有不同
- 文献太新,还没被索引
- 非CS领域的文献(DBLP只收录CS)
可以尝试降低阈值:realcite references.bib --threshold 0.6
Q: 验证速度很慢?
A: 每条引用需要查询多个API,每个API有请求间隔限制。100条引用大约需要3-5分钟。
Q: 需要API密钥吗?
A: 基本使用不需要。但如果验证量大,建议申请Semantic Scholar的API Key以提高限额。
# 安装测试依赖
pip install pytest pytest-mock
# 运行测试
pytest tests/ -vMIT License