|
| 1 | +# RealCite |
| 2 | + |
| 3 | +学术文献引用真实性检测工具 - 检测AI幻觉产生的虚假引用 |
| 4 | + |
| 5 | +[English](README_EN.md) | 中文 |
| 6 | + |
| 7 | +## 这个工具是干什么的? |
| 8 | + |
| 9 | +当你使用ChatGPT等AI工具辅助写论文时,AI可能会"编造"一些不存在的参考文献(这叫AI幻觉)。RealCite可以自动检测你的BibTeX文件中的引用是否真实存在。 |
| 10 | + |
| 11 | +## 从零开始运行(3步) |
| 12 | + |
| 13 | +### 第1步:创建Python环境 |
| 14 | + |
| 15 | +```bash |
| 16 | +# 使用conda创建新环境(推荐Python 3.9+) |
| 17 | +conda create -n realcite python=3.11 -y |
| 18 | +conda activate realcite |
| 19 | +``` |
| 20 | + |
| 21 | +### 第2步:安装RealCite |
| 22 | + |
| 23 | +```bash |
| 24 | +# 进入项目目录 |
| 25 | +cd /data/250010040/workspace/project/realcite |
| 26 | + |
| 27 | +# 安装(开发模式) |
| 28 | +pip install -e . |
| 29 | +``` |
| 30 | + |
| 31 | +### 第3步:运行验证 |
| 32 | + |
| 33 | +```bash |
| 34 | +# 验证一个BibTeX文件 |
| 35 | +realcite your_references.bib |
| 36 | + |
| 37 | +# 或者用我们提供的测试文件试试 |
| 38 | +realcite tests/fixtures/valid.bib -v |
| 39 | +``` |
| 40 | + |
| 41 | +就这么简单! |
| 42 | + |
| 43 | +## 使用示例 |
| 44 | + |
| 45 | +### 命令行使用 |
| 46 | + |
| 47 | +```bash |
| 48 | +# 最简单的用法:直接验证 |
| 49 | +realcite references.bib |
| 50 | + |
| 51 | +# 保存报告到文件 |
| 52 | +realcite references.bib -o report.md |
| 53 | + |
| 54 | +# 输出JSON格式(方便程序处理) |
| 55 | +realcite references.bib -f json -o report.json |
| 56 | + |
| 57 | +# 详细模式(显示验证过程) |
| 58 | +realcite references.bib -v |
| 59 | + |
| 60 | +# 只用特定的验证源 |
| 61 | +realcite references.bib --sources dblp,arxiv |
| 62 | +``` |
| 63 | + |
| 64 | +### Python代码中使用 |
| 65 | + |
| 66 | +```python |
| 67 | +from realcite import RealCite |
| 68 | + |
| 69 | +# 创建验证器 |
| 70 | +checker = RealCite() |
| 71 | + |
| 72 | +# 验证BibTeX文件 |
| 73 | +report = checker.validate("references.bib") |
| 74 | + |
| 75 | +# 查看结果 |
| 76 | +print(f"总共: {report.total_count} 条引用") |
| 77 | +print(f"已验证: {report.verified_count}") |
| 78 | +print(f"可疑: {report.suspicious_count}") |
| 79 | +print(f"未找到: {report.not_found_count}") |
| 80 | + |
| 81 | +# 导出报告 |
| 82 | +checker.export_report(report, "report.md", format="markdown") |
| 83 | +``` |
| 84 | + |
| 85 | +## 输出结果说明 |
| 86 | + |
| 87 | +| 状态 | 含义 | |
| 88 | +|------|------| |
| 89 | +| ✅ 已验证 (verified) | 在学术数据库中找到了匹配的文献 | |
| 90 | +| ⚠️ 可疑 (suspicious) | 找到了部分匹配,但置信度不够高,建议人工核实 | |
| 91 | +| ❌ 未找到 (not_found) | 在所有数据库中都没找到,很可能是虚假引用 | |
| 92 | +| ⛔ 错误 (error) | 验证过程出错(如标题太短无法验证) | |
| 93 | + |
| 94 | +## 验证源说明 |
| 95 | + |
| 96 | +RealCite会依次查询以下学术数据库: |
| 97 | + |
| 98 | +| 数据库 | 说明 | 适合验证 | |
| 99 | +|--------|------|----------| |
| 100 | +| DBLP | 计算机科学领域最权威 | CS会议/期刊论文 | |
| 101 | +| Semantic Scholar | AI领域覆盖全面 | AI/ML/NLP论文 | |
| 102 | +| arXiv | 预印本权威来源 | arXiv预印本 | |
| 103 | +| CrossRef | DOI官方数据库 | 有DOI的任何文献 | |
| 104 | + |
| 105 | +## 项目结构 |
| 106 | + |
| 107 | +``` |
| 108 | +realcite/ |
| 109 | +├── src/realcite/ # 源代码 |
| 110 | +│ ├── main.py # 命令行入口 |
| 111 | +│ ├── core.py # 核心验证逻辑 |
| 112 | +│ ├── parser.py # BibTeX解析 |
| 113 | +│ ├── matcher.py # 匹配算法 |
| 114 | +│ ├── reporter.py # 报告生成 |
| 115 | +│ └── validators/ # 各数据库验证器 |
| 116 | +│ ├── dblp.py |
| 117 | +│ ├── semantic_scholar.py |
| 118 | +│ ├── arxiv.py |
| 119 | +│ └── crossref.py |
| 120 | +├── tests/ # 测试文件 |
| 121 | +│ └── fixtures/ # 测试用的bib文件 |
| 122 | +│ ├── valid.bib # 真实文献 |
| 123 | +│ ├── fake.bib # 虚假文献 |
| 124 | +│ └── mixed.bib # 混合文献 |
| 125 | +├── pyproject.toml # 项目配置 |
| 126 | +└── README.md # 本文件 |
| 127 | +``` |
| 128 | + |
| 129 | +## 常见问题 |
| 130 | + |
| 131 | +**Q: 为什么有些真实的文献被标记为"可疑"?** |
| 132 | + |
| 133 | +A: 可能是因为: |
| 134 | +- 标题拼写与数据库中略有不同 |
| 135 | +- 文献太新,还没被索引 |
| 136 | +- 非CS领域的文献(DBLP只收录CS) |
| 137 | + |
| 138 | +可以尝试降低阈值:`realcite references.bib --threshold 0.6` |
| 139 | + |
| 140 | +**Q: 验证速度很慢?** |
| 141 | + |
| 142 | +A: 每条引用需要查询多个API,每个API有请求间隔限制。100条引用大约需要3-5分钟。 |
| 143 | + |
| 144 | +**Q: 需要API密钥吗?** |
| 145 | + |
| 146 | +A: 基本使用不需要。但如果验证量大,建议申请Semantic Scholar的API Key以提高限额。 |
| 147 | + |
| 148 | +## 运行测试 |
| 149 | + |
| 150 | +```bash |
| 151 | +# 安装测试依赖 |
| 152 | +pip install pytest pytest-mock |
| 153 | + |
| 154 | +# 运行测试 |
| 155 | +pytest tests/ -v |
| 156 | +``` |
| 157 | + |
| 158 | +## 许可证 |
| 159 | + |
| 160 | +MIT License |
0 commit comments