Skip to main content

Entity resolution para nombres e identificadores latinoamericanos: parser de nombres mexicanos, validadores de CURP/RFC y comparadores para Splink.

Project description

tocayo

tocayo (sust. m.): persona que tiene el mismo nombre que otra. El falso positivo clásico de la resolución de entidades.

Entity resolution para datos latinoamericanos. Las herramientas de record linkage (Splink, Dedupe, Zingg) asumen nombres anglosajones: un nombre, un apellido, un orden fijo. En Latinoamérica, José Luis Hernández García puede aparecer como HERNANDEZ GARCIA JOSE LUIS, J.L. Hernández o Jose Hdz Garcia — y ninguna librería existente lo maneja. Esto le cuesta millones en deduplicación fallida a cada banco, retailer y dependencia de gobierno de la región.

tocayo aporta las piezas que faltan:

  • 🪪 Validadores estructurales de CURP y RFC que no solo validan: extraen los campos embebidos (fecha de nacimiento, sexo, entidad) como evidencia parcial para matching.
  • 🧹 Normalización canónica de nombres en español: acentos (preservando la Ñ), abreviaturas de captura (Ma.MARÍA, HdzHERNÁNDEZ), limpieza de ruido.
  • 👤 Parser de nombres mexicanos (en construcción): dos apellidos, partículas compuestas (De la Garza), orden incierto (APELLIDOS NOMBRES vs Nombres Apellidos), con scores de confianza por campo.
  • 🔗 Comparadores para Splink 4 (en construcción): comparación consciente de estructura, fonética del español, blocking rules probadas para nombres mexicanos.

Instalación

pip install tocayo

Uso

from tocayo import normalizar, validar_curp

normalizar("  ma. del Cármen   Hdz. ")
# 'MARIA DEL CARMEN HERNANDEZ'

info = validar_curp("GARJ900101HNLRRS01")
info.valida             # True
info.fecha_nacimiento   # datetime.date(1990, 1, 1)
info.sexo               # 'H'
info.entidad            # 'NL'

Estado

Alfa temprana (0.1.0a1). La API puede cambiar. Hoja de ruta pública en los issues.

Filosofía de diseño

  1. Núcleo sin dependencias. Strings entran, dataclasses salen. Los adaptadores (pandas, Splink) son extras opcionales.
  2. Los tests son la especificación. Cada comportamiento documentado tiene un test.
  3. Estructura antes que magia. CURP y RFC tienen estructura verificable; los nombres mexicanos tienen gramática. La explotamos antes de recurrir a modelos.

Licencia

Apache 2.0


tocayo (English)

Entity resolution building blocks for Latin American data. Record linkage tools assume Anglo naming conventions — one given name, one surname, fixed order. Latin American names have two surnames, compound particles (De la Garza), and appear in wildly inconsistent formats across systems. tocayo provides Mexican name parsing, structural validators for national identifiers (CURP, RFC) that extract embedded fields as partial matching evidence, Spanish-aware normalization, and (soon) ready-to-use Splink 4 comparators and phonetic encoding for Spanish.

Early alpha. Star the repo to follow along.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tocayo-0.1.0a1.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tocayo-0.1.0a1-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file tocayo-0.1.0a1.tar.gz.

File metadata

  • Download URL: tocayo-0.1.0a1.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.10

File hashes

Hashes for tocayo-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 5281a90b749e62029cd6802ac8e4c72e0bc18d2edda91e45833d6c4c985b9244
MD5 9e966386e46169d92a272a45019a02b8
BLAKE2b-256 8fe3aca86bffbe764b6d3150803c09a466ece6cd90d96dd323ac5c819987a95b

See more details on using hashes here.

File details

Details for the file tocayo-0.1.0a1-py3-none-any.whl.

File metadata

  • Download URL: tocayo-0.1.0a1-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.10

File hashes

Hashes for tocayo-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 576ac8fd67fad778356918e4a59a1c798999b83d7eacd134754efb3c36cce4e8
MD5 661bdc8f677fc94a6b339432e7b94b0c
BLAKE2b-256 8e355cde6d791d8680eae5d5a17e773aeffd025a87d64e3a62cb7336f1b4bc6a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page