Skip to content

xiongsp/CheckUrCitations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

BBL Reference Checker

English | 简体中文

一个用于验证 LaTeX BBL 文件中参考文献正确性的工具。通过多个学术数据库 API 交叉验证引用信息。

✨ 功能特点

  • 📄 BBL 文件解析:自动解析 LaTeX 生成的 .bbl 文件,提取引用条目
  • 🔍 多源验证:通过以下数据库验证引用:
    • CrossRef(DOI 验证)
    • DBLP(计算机科学文献)
    • arXiv(预印本)
    • Semantic Scholar
    • Google Scholar
  • 📊 详细报告:生成控制台、JSON 和 Markdown 格式的检查报告
  • 🔄 智能重试:遇到速率限制时自动等待并重试
  • 📈 相似度匹配:使用字符串相似度算法匹配标题

📖 什么是 BBL 文件?

BBL 文件是 LaTeX 编译过程中生成的参考文献文件,包含格式化后的参考文献列表。

生成方式

BBL 文件通常通过以下两种方式生成:

1. 使用 BibTeX

# 编译流程
pdflatex paper.tex    # 第一次编译,生成 .aux 文件
bibtex paper          # 处理 .bib 文件,生成 .bbl 文件
pdflatex paper.tex    # 第二次编译,读取 .bbl 文件
pdflatex paper.tex    # 第三次编译,解决交叉引用

2. 使用 BibLaTeX + Biber

# 编译流程
pdflatex paper.tex    # 第一次编译
biber paper           # 处理 .bib 文件,生成 .bbl 文件
pdflatex paper.tex    # 第二次编译
pdflatex paper.tex    # 第三次编译

相关文件

文件 说明
.bib 参考文献数据库文件(源文件)
.aux LaTeX 辅助文件,包含引用信息
.bbl 格式化后的参考文献列表(本工具检查的文件)
.blg BibTeX/Biber 的日志文件

为什么要检查 BBL 文件?

  • 🔍 发现错误:引用的年份、作者、标题可能存在拼写错误
  • 📚 验证来源:确保引用的文献确实存在于学术数据库中
  • 提高质量:在论文提交前发现并修正引用问题

🚀 快速开始

安装依赖

pip install requests

基本用法

# 检查默认文件 1.bbl
python main.py

# 检查指定的 BBL 文件
python main.py your_file.bbl

# 只检查前 5 条引用
python main.py your_file.bbl -l 5

# 显示详细信息
python main.py your_file.bbl -v

生成报告

# 生成 Markdown 报告(默认:citation_report.md)
python main.py your_file.bbl -m report.md

# 生成 JSON 报告
python main.py your_file.bbl -j report.json

# 同时生成两种报告
python main.py your_file.bbl -m report.md -j report.json

📋 命令行参数

参数 简写 说明
bbl_file - BBL 文件路径(默认:1.bbl)
--markdown -m 输出 Markdown 报告到指定文件
--json -j 输出 JSON 报告到指定文件
--limit -l 只检查前 N 条引用
--verbose -v 显示详细信息

📊 输出示例

控制台输出

================================================================================
BBL 引用检查报告
================================================================================

总计: 10 条引用
  ✓ 已验证: 7
  ⚠ 部分匹配: 2
  ✗ 未找到: 1

--------------------------------------------------------------------------------

[1] ✓ smith2024deep
    标题: Deep Learning for Natural Language Processing
    作者: John Smith, Jane Doe
    年份: 2024
    [dblp] ✓ 找到匹配 (相似度: 0.95)
    [semantic_scholar] ✓ 找到匹配 (相似度: 0.92)

验证状态说明

状态 图标 说明
已验证 至少在一个数据库中找到高度匹配的结果
部分匹配 找到了结果但相似度不够高或年份不匹配
未找到 在所有数据库中都未找到匹配的文献

⚠️ 注意事项

  1. API 速率限制:程序会自动处理速率限制,遇到 429 错误时会等待后重试
  2. Google Scholar:可能会要求验证码,建议主要依赖其他数据源
  3. 网络要求:需要稳定的网络连接以访问各学术数据库 API
  4. BBL 格式:目前支持 ACM 等常见格式的 BBL 文件

🔧 工作原理

  1. 解析 BBL 文件:提取每个 \bibitem 条目的信息

    • 作者列表
    • 发表年份
    • 论文标题
    • DOI(如果有)
    • arXiv ID(如果有)
  2. 多源验证

    • 如果有 DOI,通过 CrossRef 验证
    • 通过 DBLP 搜索验证
    • 如果有 arXiv ID,通过 arXiv API 验证
    • 通过 Semantic Scholar 搜索验证
    • 通过 Google Scholar 搜索验证
  3. 结果评估

    • 计算标题相似度
    • 验证年份匹配
    • 综合多个数据源的结果

📁 项目结构

bbl-check/
├── main.py              # 主程序
├── README.md            # 中文说明文档
├── README_EN.md         # 英文说明文档
└── citation_report.md   # 生成的报告示例

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

MIT License

About

Check your citations!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages