{"schemaVersion":1,"id":"https://lucioduran.com/es/projects/bilingual-retrieval-evals","url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals","title":"Bilingual Retrieval Evals","description":"Evaluación de recuperación EN/ES con BM25 y MiniLM multilingüe. Separa idiomas, direcciones, acentos y expresiones culturales, con rankings y evidencia reproducible.","language":"es","datePublished":"2026-10-22","dateModified":"2026-10-22","contentFormat":"text/markdown","content":"[Proyectos](<https://lucioduran.com/es/projects>) / Bilingual Retrieval Evals\n\n# Bilingual Retrieval Evals\n\nEvaluación de recuperación EN/ES con BM25 y MiniLM multilingüe. Separa idiomas, direcciones, acentos y expresiones culturales, con rankings y evidencia reproducible.\n\nAutor: [Lucio Durán](<https://lucioduran.com/es>) · Python 3.11.13 · Licencia: [MIT](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/LICENSE>)\n\nFicha publicada: 2026-10-22 · Ficha actualizada: 2026-10-22\n\n[Repositorio](<https://github.com/lucioduran/bilingual-retrieval-evals>) · [Evidencia original](<https://raw.githubusercontent.com/lucioduran/bilingual-retrieval-evals/8cc64e903e89ef399db5c4648b23cee52038b83b/results/eval/report.json>) · [Release v0.1.0](<https://github.com/lucioduran/bilingual-retrieval-evals/releases/tag/v0.1.0>)\n\n## Problema y utilidad para agentes\n\nUn promedio de recuperación puede esconder que el buscador funciona en inglés y falla al cruzar idiomas. Traducir consultas tampoco elimina la ambigüedad cultural ni los distractores léxicos.\n\nEl proyecto expone qué documentos recupera cada método para consultas paralelas en español e inglés. Permite inspeccionar errores que un Recall@3 perfecto todavía puede ocultar.\n\n## Arquitectura\n\n1. **Corpus y juicios explícitos.** 32 documentos ficticios, 68 variantes de consulta y etiquetas por candidato con pasajes de apoyo. Las familias de desarrollo y evaluación permanecen separadas.\n2. **Recuperación por dirección.** Cada consulta busca entre 16 documentos del idioma objetivo. Compara BM25, BM25 con normalización de acentos y un encoder MiniLM multilingüe fijado por revisión.\n3. **Desgloses y replay.** Guarda vectores, rankings completos, métricas por grupo, contrastes pareados e intervalos por familia. El replay recalcula los resultados sin descargar el modelo.\n\n- [Diseño y metodología](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/docs/methodology.md>)\n\n## Qué demuestra\n\n- Evaluación multilingüe que conserva denominadores y separa las cuatro direcciones de búsqueda.\n- Diseño de consultas culturales, distractores y contrastes de acentos con trazabilidad de relevancia.\n- Inspección de errores de ranking y de incertidumbre sin contar variantes correlacionadas como observaciones independientes.\n\n## Resultados publicados\n\nMedición local en Intel Xeon W-3223 con dos hilos. Las tablas principales usan 32 consultas originales de ocho familias de evaluación; excluyen las variantes sin acentos para no dar más peso al español.\n\nCutoff 3, BM25 k1=1.2 y b=0.75, embeddings limitados a 128 tokens. El informe completo incluye 46 variantes de evaluación. Los intervalos usan 2.000 remuestreos por familia y un estimador distinto del promedio de consultas originales.\n\n### Recuperación sobre 32 consultas originales\n\n| Método | Recall@3 | NDCG@3 | MRR@3 |\n| --- | --- | --- | --- |\n| BM25 | 0.719 | 0.719 | 0.719 |\n| BM25 sin acentos | 0.719 | 0.719 | 0.719 |\n| Multilingual MiniLM | 1.000 | 0.977 | 0.969 |\n\n### NDCG@3 por dirección\n\n| Dirección | Consultas | BM25 | MiniLM |\n| --- | --- | --- | --- |\n| EN → EN | 8 | 1.000 | 1.000 |\n| EN → ES | 8 | 0.625 | 0.954 |\n| ES → EN | 8 | 0.375 | 0.954 |\n| ES → ES | 8 | 0.875 | 1.000 |\n\nMiniLM logró Recall@3 de 1,000, pero ubicó un distractor sobre el documento relevante en una consulta cultural y otra de paquetería. Encontrar el documento entre los tres primeros no equivale a ordenar correctamente.\n\nLos intervalos por familia, las diferencias por entidades y los siete pares de acentos por idioma objetivo están publicados con sus denominadores. [Resumen de resultados](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/docs/results.md>).\n\n## Reproducir\n\nPython 3.11 o posterior. Validación y replay usan la biblioteca estándar. La medición neural necesita las dependencias fijadas y la descarga explícita del encoder público.\n\nLos comandos usan una shell POSIX y directorios nuevos. Ejecutá una medición por vez. El lock corresponde al entorno Intel macOS medido; otros sistemas pueden necesitar una distribución compatible de PyTorch.\n\n### Revisar la evidencia guardada\n\n```\ngit clone https://github.com/lucioduran/bilingual-retrieval-evals.git\ncd bilingual-retrieval-evals\ngit checkout 8cc64e903e89ef399db5c4648b23cee52038b83b\npython -m bilingual_retrieval validate\npython -m bilingual_retrieval verify --report results/dev/report.json\npython -m bilingual_retrieval verify --report results/eval/report.json\n```\n\n### Repetir la medición local\n\n```\npython3.11 -m venv .venv\n. .venv/bin/activate\npython -m pip install -r requirements-local.lock\npython -m bilingual_retrieval download\nOMP_NUM_THREADS=2 MKL_NUM_THREADS=2 HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 TOKENIZERS_PARALLELISM=false python -m bilingual_retrieval run --split dev --output build/dev\nOMP_NUM_THREADS=2 MKL_NUM_THREADS=2 HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 TOKENIZERS_PARALLELISM=false python -m bilingual_retrieval run --split eval --output build/eval\npython -m bilingual_retrieval verify --report build/dev/report.json\npython -m bilingual_retrieval verify --report build/eval/report.json\n```\n\n## Alcance y límites\n\n- Corpus sintético conocido por el autor. Las etiquetas todavía no tienen revisión humana bilingüe independiente; no representan dialectos ni tráfico real.\n- Ocho familias dan intervalos de incertidumbre débiles. Los grupos por entidad o idioma no son tratamientos causales.\n- Los tiempos son una única pasada por lotes, no percentiles de latencia. El replay comprueba coherencia interna, no autenticidad de los embeddings o de las mediciones.\n\n- [Búsqueda vectorial y evaluación multilingüe](<https://lucioduran.com/es/blog/vector-databases-pgvector-qdrant-pinecone>)\n\n## Fuentes y revisión\n\nLos valores de esta ficha provienen del informe enlazado. No son una medición en vivo. El informe conserva la revisión ejecutada; la revisión consultada incluye la publicación posterior de ese informe.\n\n- Revisión consultada: [` 8cc64e903e89ef399db5c4648b23cee52038b83b `](<https://github.com/lucioduran/bilingual-retrieval-evals/commit/8cc64e903e89ef399db5c4648b23cee52038b83b>)\n- Revisión registrada por el experimento: [` d89585a8e53aa43a0fa8bc6fe50d43635172c5de `](<https://github.com/lucioduran/bilingual-retrieval-evals/commit/d89585a8e53aa43a0fa8bc6fe50d43635172c5de>)\n- Fecha del informe (UTC): 2026-10-21T22:59:22.243350+00:00\n- Release publicada: [v0.1.0](<https://github.com/lucioduran/bilingual-retrieval-evals/releases/tag/v0.1.0>) · 2026-10-21T23:04:15Z\n\n- [README y uso](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/README.md>)\n- [Evidencia original](<https://raw.githubusercontent.com/lucioduran/bilingual-retrieval-evals/8cc64e903e89ef399db5c4648b23cee52038b83b/results/eval/report.json>)\n- [Resumen de resultados](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/docs/results.md>)\n- [Diseño y metodología](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/docs/methodology.md>)\n- [Datos y procedencia](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/data/README.md>)\n- [Evidencia de desarrollo](<https://raw.githubusercontent.com/lucioduran/bilingual-retrieval-evals/8cc64e903e89ef399db5c4648b23cee52038b83b/results/dev/report.json>)\n- [Análisis de errores](<https://raw.githubusercontent.com/lucioduran/bilingual-retrieval-evals/8cc64e903e89ef399db5c4648b23cee52038b83b/results/eval/errors.json>)\n- [Modelos, revisiones y licencias](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/docs/model-notices.md>)\n- [Dependencias del entorno medido](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/requirements-local.lock>)\n- [Licencia MIT](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/LICENSE>)","headings":[{"level":1,"text":"Bilingual Retrieval Evals","url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#title"},{"level":2,"text":"Problema y utilidad para agentes","url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#problem"},{"level":2,"text":"Arquitectura","url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#architecture"},{"level":2,"text":"Qué demuestra","url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#demonstrates"},{"level":2,"text":"Resultados publicados","url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#results"},{"level":3,"text":"Recuperación sobre 32 consultas originales","url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#results-retrieval"},{"level":3,"text":"NDCG@3 por dirección","url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#results-directions"},{"level":2,"text":"Reproducir","url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#reproduce"},{"level":3,"text":"Revisar la evidencia guardada","url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#reproduce-replay"},{"level":3,"text":"Repetir la medición local","url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#reproduce-inference"},{"level":2,"text":"Alcance y límites","url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#scope"},{"level":2,"text":"Fuentes y revisión","url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#sources"}],"sections":[{"heading":"Bilingual Retrieval Evals","level":1,"url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals","content":"[Proyectos](<https://lucioduran.com/es/projects>) / Bilingual Retrieval Evals"},{"heading":"Bilingual Retrieval Evals","level":1,"url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#title","content":"Evaluación de recuperación EN/ES con BM25 y MiniLM multilingüe. Separa idiomas, direcciones, acentos y expresiones culturales, con rankings y evidencia reproducible.\n\nAutor: [Lucio Durán](<https://lucioduran.com/es>) · Python 3.11.13 · Licencia: [MIT](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/LICENSE>)\n\nFicha publicada: 2026-10-22 · Ficha actualizada: 2026-10-22\n\n[Repositorio](<https://github.com/lucioduran/bilingual-retrieval-evals>) · [Evidencia original](<https://raw.githubusercontent.com/lucioduran/bilingual-retrieval-evals/8cc64e903e89ef399db5c4648b23cee52038b83b/results/eval/report.json>) · [Release v0.1.0](<https://github.com/lucioduran/bilingual-retrieval-evals/releases/tag/v0.1.0>)"},{"heading":"Problema y utilidad para agentes","level":2,"url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#problem","content":"Un promedio de recuperación puede esconder que el buscador funciona en inglés y falla al cruzar idiomas. Traducir consultas tampoco elimina la ambigüedad cultural ni los distractores léxicos.\n\nEl proyecto expone qué documentos recupera cada método para consultas paralelas en español e inglés. Permite inspeccionar errores que un Recall@3 perfecto todavía puede ocultar."},{"heading":"Arquitectura","level":2,"url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#architecture","content":"1. **Corpus y juicios explícitos.** 32 documentos ficticios, 68 variantes de consulta y etiquetas por candidato con pasajes de apoyo. Las familias de desarrollo y evaluación permanecen separadas.\n2. **Recuperación por dirección.** Cada consulta busca entre 16 documentos del idioma objetivo. Compara BM25, BM25 con normalización de acentos y un encoder MiniLM multilingüe fijado por revisión.\n3. **Desgloses y replay.** Guarda vectores, rankings completos, métricas por grupo, contrastes pareados e intervalos por familia. El replay recalcula los resultados sin descargar el modelo.\n\n- [Diseño y metodología](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/docs/methodology.md>)"},{"heading":"Qué demuestra","level":2,"url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#demonstrates","content":"- Evaluación multilingüe que conserva denominadores y separa las cuatro direcciones de búsqueda.\n- Diseño de consultas culturales, distractores y contrastes de acentos con trazabilidad de relevancia.\n- Inspección de errores de ranking y de incertidumbre sin contar variantes correlacionadas como observaciones independientes."},{"heading":"Resultados publicados","level":2,"url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#results","content":"Medición local en Intel Xeon W-3223 con dos hilos. Las tablas principales usan 32 consultas originales de ocho familias de evaluación; excluyen las variantes sin acentos para no dar más peso al español.\n\nCutoff 3, BM25 k1=1.2 y b=0.75, embeddings limitados a 128 tokens. El informe completo incluye 46 variantes de evaluación. Los intervalos usan 2.000 remuestreos por familia y un estimador distinto del promedio de consultas originales."},{"heading":"Recuperación sobre 32 consultas originales","level":3,"url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#results-retrieval","content":"| Método | Recall@3 | NDCG@3 | MRR@3 |\n| --- | --- | --- | --- |\n| BM25 | 0.719 | 0.719 | 0.719 |\n| BM25 sin acentos | 0.719 | 0.719 | 0.719 |\n| Multilingual MiniLM | 1.000 | 0.977 | 0.969 |"},{"heading":"NDCG@3 por dirección","level":3,"url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#results-directions","content":"| Dirección | Consultas | BM25 | MiniLM |\n| --- | --- | --- | --- |\n| EN → EN | 8 | 1.000 | 1.000 |\n| EN → ES | 8 | 0.625 | 0.954 |\n| ES → EN | 8 | 0.375 | 0.954 |\n| ES → ES | 8 | 0.875 | 1.000 |\n\nMiniLM logró Recall@3 de 1,000, pero ubicó un distractor sobre el documento relevante en una consulta cultural y otra de paquetería. Encontrar el documento entre los tres primeros no equivale a ordenar correctamente.\n\nLos intervalos por familia, las diferencias por entidades y los siete pares de acentos por idioma objetivo están publicados con sus denominadores. [Resumen de resultados](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/docs/results.md>)."},{"heading":"Reproducir","level":2,"url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#reproduce","content":"Python 3.11 o posterior. Validación y replay usan la biblioteca estándar. La medición neural necesita las dependencias fijadas y la descarga explícita del encoder público.\n\nLos comandos usan una shell POSIX y directorios nuevos. Ejecutá una medición por vez. El lock corresponde al entorno Intel macOS medido; otros sistemas pueden necesitar una distribución compatible de PyTorch."},{"heading":"Revisar la evidencia guardada","level":3,"url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#reproduce-replay","content":"```\ngit clone https://github.com/lucioduran/bilingual-retrieval-evals.git\ncd bilingual-retrieval-evals\ngit checkout 8cc64e903e89ef399db5c4648b23cee52038b83b\npython -m bilingual_retrieval validate\npython -m bilingual_retrieval verify --report results/dev/report.json\npython -m bilingual_retrieval verify --report results/eval/report.json\n```"},{"heading":"Repetir la medición local","level":3,"url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#reproduce-inference","content":"```\npython3.11 -m venv .venv\n. .venv/bin/activate\npython -m pip install -r requirements-local.lock\npython -m bilingual_retrieval download\nOMP_NUM_THREADS=2 MKL_NUM_THREADS=2 HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 TOKENIZERS_PARALLELISM=false python -m bilingual_retrieval run --split dev --output build/dev\nOMP_NUM_THREADS=2 MKL_NUM_THREADS=2 HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 TOKENIZERS_PARALLELISM=false python -m bilingual_retrieval run --split eval --output build/eval\npython -m bilingual_retrieval verify --report build/dev/report.json\npython -m bilingual_retrieval verify --report build/eval/report.json\n```"},{"heading":"Alcance y límites","level":2,"url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#scope","content":"- Corpus sintético conocido por el autor. Las etiquetas todavía no tienen revisión humana bilingüe independiente; no representan dialectos ni tráfico real.\n- Ocho familias dan intervalos de incertidumbre débiles. Los grupos por entidad o idioma no son tratamientos causales.\n- Los tiempos son una única pasada por lotes, no percentiles de latencia. El replay comprueba coherencia interna, no autenticidad de los embeddings o de las mediciones.\n\n- [Búsqueda vectorial y evaluación multilingüe](<https://lucioduran.com/es/blog/vector-databases-pgvector-qdrant-pinecone>)"},{"heading":"Fuentes y revisión","level":2,"url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#sources","content":"Los valores de esta ficha provienen del informe enlazado. No son una medición en vivo. El informe conserva la revisión ejecutada; la revisión consultada incluye la publicación posterior de ese informe.\n\n- Revisión consultada: [` 8cc64e903e89ef399db5c4648b23cee52038b83b `](<https://github.com/lucioduran/bilingual-retrieval-evals/commit/8cc64e903e89ef399db5c4648b23cee52038b83b>)\n- Revisión registrada por el experimento: [` d89585a8e53aa43a0fa8bc6fe50d43635172c5de `](<https://github.com/lucioduran/bilingual-retrieval-evals/commit/d89585a8e53aa43a0fa8bc6fe50d43635172c5de>)\n- Fecha del informe (UTC): 2026-10-21T22:59:22.243350+00:00\n- Release publicada: [v0.1.0](<https://github.com/lucioduran/bilingual-retrieval-evals/releases/tag/v0.1.0>) · 2026-10-21T23:04:15Z\n\n- [README y uso](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/README.md>)\n- [Evidencia original](<https://raw.githubusercontent.com/lucioduran/bilingual-retrieval-evals/8cc64e903e89ef399db5c4648b23cee52038b83b/results/eval/report.json>)\n- [Resumen de resultados](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/docs/results.md>)\n- [Diseño y metodología](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/docs/methodology.md>)\n- [Datos y procedencia](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/data/README.md>)\n- [Evidencia de desarrollo](<https://raw.githubusercontent.com/lucioduran/bilingual-retrieval-evals/8cc64e903e89ef399db5c4648b23cee52038b83b/results/dev/report.json>)\n- [Análisis de errores](<https://raw.githubusercontent.com/lucioduran/bilingual-retrieval-evals/8cc64e903e89ef399db5c4648b23cee52038b83b/results/eval/errors.json>)\n- [Modelos, revisiones y licencias](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/docs/model-notices.md>)\n- [Dependencias del entorno medido](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/requirements-local.lock>)\n- [Licencia MIT](<https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/LICENSE>)"}],"links":[{"text":"Proyectos","url":"https://lucioduran.com/es/projects"},{"text":"Lucio Durán","url":"https://lucioduran.com/es"},{"text":"MIT","url":"https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/LICENSE"},{"text":"Repositorio","url":"https://github.com/lucioduran/bilingual-retrieval-evals"},{"text":"Evidencia original","url":"https://raw.githubusercontent.com/lucioduran/bilingual-retrieval-evals/8cc64e903e89ef399db5c4648b23cee52038b83b/results/eval/report.json"},{"text":"Release v0.1.0","url":"https://github.com/lucioduran/bilingual-retrieval-evals/releases/tag/v0.1.0"},{"text":"Diseño y metodología","url":"https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/docs/methodology.md"},{"text":"Resumen de resultados","url":"https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/docs/results.md"},{"text":"Búsqueda vectorial y evaluación multilingüe","url":"https://lucioduran.com/es/blog/vector-databases-pgvector-qdrant-pinecone"},{"text":"8cc64e903e89ef399db5c4648b23cee52038b83b","url":"https://github.com/lucioduran/bilingual-retrieval-evals/commit/8cc64e903e89ef399db5c4648b23cee52038b83b"},{"text":"d89585a8e53aa43a0fa8bc6fe50d43635172c5de","url":"https://github.com/lucioduran/bilingual-retrieval-evals/commit/d89585a8e53aa43a0fa8bc6fe50d43635172c5de"},{"text":"v0.1.0","url":"https://github.com/lucioduran/bilingual-retrieval-evals/releases/tag/v0.1.0"},{"text":"README y uso","url":"https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/README.md"},{"text":"Datos y procedencia","url":"https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/data/README.md"},{"text":"Evidencia de desarrollo","url":"https://raw.githubusercontent.com/lucioduran/bilingual-retrieval-evals/8cc64e903e89ef399db5c4648b23cee52038b83b/results/dev/report.json"},{"text":"Análisis de errores","url":"https://raw.githubusercontent.com/lucioduran/bilingual-retrieval-evals/8cc64e903e89ef399db5c4648b23cee52038b83b/results/eval/errors.json"},{"text":"Modelos, revisiones y licencias","url":"https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/docs/model-notices.md"},{"text":"Dependencias del entorno medido","url":"https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/requirements-local.lock"},{"text":"Licencia MIT","url":"https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/LICENSE"}],"structuredData":[{"@context":"https://schema.org","@graph":[{"@type":"Person","@id":"https://lucioduran.com/#person","name":"Lucio Durán","url":"https://lucioduran.com/"},{"@type":"WebSite","@id":"https://lucioduran.com/#website","url":"https://lucioduran.com/","name":"Lucio Durán","inLanguage":["en","es"],"publisher":{"@id":"https://lucioduran.com/#person"}},{"@type":"WebPage","@id":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#page","url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals","name":"Bilingual Retrieval Evals","description":"Evaluación de recuperación EN/ES con BM25 y MiniLM multilingüe. Separa idiomas, direcciones, acentos y expresiones culturales, con rankings y evidencia reproducible.","inLanguage":"es","author":{"@id":"https://lucioduran.com/#person"},"publisher":{"@id":"https://lucioduran.com/#person"},"isPartOf":{"@id":"https://lucioduran.com/#website"},"isAccessibleForFree":true,"mainEntity":{"@id":"https://lucioduran.com/projects/bilingual-retrieval-evals#software"},"datePublished":"2026-10-22","dateModified":"2026-10-22","breadcrumb":{"@id":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#breadcrumb"}},{"@type":"SoftwareSourceCode","@id":"https://lucioduran.com/projects/bilingual-retrieval-evals#software","name":"Bilingual Retrieval Evals","description":"Evaluación de recuperación EN/ES con BM25 y MiniLM multilingüe. Separa idiomas, direcciones, acentos y expresiones culturales, con rankings y evidencia reproducible.","url":"https://lucioduran.com/es/projects/bilingual-retrieval-evals","codeRepository":"https://github.com/lucioduran/bilingual-retrieval-evals","programmingLanguage":"Python","runtimePlatform":"Python 3.11.13","license":"https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/LICENSE","version":"v0.1.0","identifier":{"@type":"PropertyValue","propertyID":"git-commit","value":"8cc64e903e89ef399db5c4648b23cee52038b83b"},"author":{"@type":"Person","@id":"https://lucioduran.com/#person","name":"Lucio Durán","url":"https://lucioduran.com"},"isAccessibleForFree":true,"citation":["https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/README.md","https://raw.githubusercontent.com/lucioduran/bilingual-retrieval-evals/8cc64e903e89ef399db5c4648b23cee52038b83b/results/eval/report.json","https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/docs/results.md","https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/docs/methodology.md","https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/data/README.md","https://raw.githubusercontent.com/lucioduran/bilingual-retrieval-evals/8cc64e903e89ef399db5c4648b23cee52038b83b/results/dev/report.json","https://raw.githubusercontent.com/lucioduran/bilingual-retrieval-evals/8cc64e903e89ef399db5c4648b23cee52038b83b/results/eval/errors.json","https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/docs/model-notices.md","https://github.com/lucioduran/bilingual-retrieval-evals/blob/8cc64e903e89ef399db5c4648b23cee52038b83b/requirements-local.lock","https://github.com/lucioduran/bilingual-retrieval-evals/releases/tag/v0.1.0"],"publisher":{"@id":"https://lucioduran.com/#person"},"mainEntityOfPage":{"@id":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#page"}},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Proyectos","item":"https://lucioduran.com/es/projects"},{"@type":"ListItem","position":2,"name":"Bilingual Retrieval Evals","item":"https://lucioduran.com/es/projects/bilingual-retrieval-evals"}],"@id":"https://lucioduran.com/es/projects/bilingual-retrieval-evals#breadcrumb"}]}],"contentHash":"d6af5bae4d1d1fbbba6dc9034511c28d0d476acda23662a5dd1c63aa464c2b30","provenance":{"method":"Deterministic serialization of the server-rendered main element","source":"https://lucioduran.com/es/projects/bilingual-retrieval-evals","hashAlgorithm":"sha256","hashScope":"JSON document fields before contentHash and provenance","sourceHTMLBytes":48013,"contentBytes":8239}}
