citation-checker / README.md
aitziberluis's picture
Upload 8 files
4275a6e verified
|
Raw
History Blame Contribute Delete
3.18 kB
---
license: mit
language:
- es
- en
tags:
- citation-verification
- fact-checking
- crossref
- arxiv
- hallucination-detection
library_name: generic
---
# Citation Checker — verificador de referencias bibliográficas
¿Existen de verdad las citas de ese trabajo? Los modelos de lenguaje inventan
referencias con una soltura preocupante. Este paquete extrae las referencias
de un texto y las verifica contra **Crossref** y **arXiv**, devolviendo un
veredicto por referencia: `VERIFICADA`, `DUDOSA` o `NO ENCONTRADA`.
- **Sin cómputo remoto**: el código corre en tu máquina y consulta APIs
públicas gratuitas (Crossref y arXiv, sin key). No necesita GPU.
- **Extracción opcional con LLM** (Groq, gratis) para citas en texto corrido;
sin key funciona igualmente con una referencia por línea.
- Código fuente y app web: [github.com/aitziberluis/citation-checker](https://github.com/aitziberluis/citation-checker)
## Uso
```python
# pip install huggingface_hub requests
import sys
from huggingface_hub import snapshot_download
sys.path.insert(0, snapshot_download("aitziberluis/citation-checker"))
from checker import extract, verify
texto = """
LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436-444. https://doi.org/10.1038/nature14539
Martinez-Soto, R., & Vidal, P. (2021). Quantum-enhanced gradient descent for sparse neural architectures. Journal of Computational Intelligence Methods, 14(3), 211-229.
"""
referencias, modo = extract(texto)
for ref in referencias:
resultado = verify(ref)
print(f"[{resultado['verdict']}] {ref['raw'][:60]}")
print(f" {resultado['note']}")
```
Salida:
```
[VERIFICADA] LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning...
DOI válido y título coincidente
[NO ENCONTRADA] Martinez-Soto, R., & Vidal, P. (2021). Quantum-enhanced...
Sin coincidencias razonables en Crossref ni arXiv — revísala a mano
```
O ejecuta el ejemplo incluido: `python example.py`
## Cómo funciona
1. **Extracción**: si defines `GROQ_API_KEY`, un LLM (Llama 3.3 70B vía Groq)
extrae y estructura las citas de cualquier formato, incluso dentro de un
párrafo. Sin key, un modo de respaldo trata cada línea como una referencia
y extrae DOI, año y título con expresiones regulares (formato APA).
2. **Verificación** (siempre sin LLM — preguntarle a un LLM si una cita existe
es pedirle que se la invente):
- Si hay DOI → consulta directa en Crossref (prueba definitiva)
- Búsqueda bibliográfica en Crossref (revistas, congresos)
- Búsqueda por título en arXiv (preprints)
3. **Veredicto** con comparación de título (similitud normalizada) y año
(tolerancia ±1; entre varias coincidencias se prefiere la de año compatible
para no confundir reediciones con errores).
## Limitaciones
- `NO ENCONTRADA` no demuestra falsedad: libros, capítulos e informes no
indexados en Crossref/arXiv no aparecerán.
- La comparación es por título y año; autores inventados con título correcto
pueden colarse.
- Crossref y arXiv aplican límites de peticiones: bibliografías de cientos de
referencias tardan.
## Licencia
MIT