Por qué buscar «ucet» debería encontrar también «účet»

Es normal escribir deprisa y omitir un signo diacrítico que sabes que debería estar ahí. Una buena búsqueda de documentos no debería penalizarte por ello: aquí explicamos con palabras sencillas cómo funciona, con ejemplos reales en cuatro idiomas.

El problema: un signo, dos maneras de escribir una palabra

Muchos idiomas marcan una letra con una tilde, un gancho, un anillo o una ligadura para cambiar su sonido: á, é, ě, š, č, ř, ž, ů en checo, ä, ö, ü, ß en alemán, é, è, ç en francés, á, é, í, ó, ú, ñ en español. En un teclado de teléfono configurado en inglés, o al escribir deprisa de memoria, es fácil omitir un signo: escribir ucet cuando el documento dice en realidad účet, la palabra checa para una factura o una cuenta. Para un sistema de búsqueda que compara caracteres de forma exacta, son dos cadenas diferentes, y buscar una no encontrará un documento que solo contenga la otra.

La solución: normalizar los signos diacríticos

La idea es sencilla: antes de comparar dos fragmentos de texto, elimina los signos diacríticos de ambos —tildes, háčeks y cedillas por igual— y compara lo que queda. «Normalización» es el término técnico para reducir una letra marcada como á a su forma simple, a. Hazlo de forma uniforme con las palabras que escribes y las almacenadas en el índice, y ucet y účet se convierten en el mismo término de búsqueda, independientemente de cuál hayas escrito y cuál aparezca realmente en la página. Es una técnica consolidada en la búsqueda de texto en general, no algo exclusivo de una app; es la misma idea que permite a un buscador encontrar «cafe» cuando una página dice «café».

La normalización sí tiene un coste que conviene explicar claramente: considera equivalentes dos grafías al buscar coincidencias, por lo que a veces también coincidirá una palabra completamente distinta que se normalice de la misma manera. El checo ofrece un ejemplo claro: smlouva (un contrato) y smlouvá (negocia, una forma verbal) son palabras diferentes, no la misma palabra con una tilde añadida; pero al eliminar los signos diacríticos de ambas, buscar una también puede mostrar un documento que contenga la otra. Esa es la contrapartida de la normalización, a cambio de no perder coincidencias reales por una tilde omitida.

El otro problema: el alemán forma palabras uniéndolas

El alemán (y, en menor medida, los otros idiomas de esta guía) forma palabras compuestas largas uniendo directamente otras más cortas, sin espacios. La rescisión de un contrato de alquiler es una Mietvertragskündigung, formada por Mietvertrag (contrato de alquiler) y Kündigung (rescisión), unidas por una «s» de enlace. Un índice de búsqueda que solo hace coincidir palabras completas no encontrará Vertrag dentro de Mietvertragskündigung, aunque el contrato sea exactamente lo que buscas.

Aquí colaboran dos técnicas que importan por razones diferentes. La primera es la coincidencia por prefijo: escribir Vertrag también hace coincidir cualquier palabra que empiece por Vertrag, por eso encuentra Vertragsunterlagen (documentos del contrato) por sí sola. Sin embargo, esto no sirve con Mietvertragskündigung, porque Vertrag no es el principio de esa palabra; Miet sí lo es. En ese caso, la búsqueda recurre a una coincidencia por subcadena, que se intenta solo cuando la coincidencia por prefijo no encuentra nada, y esa alternativa es lo que permite que Vertrag aparezca dentro de una palabra compuesta esté donde esté, no solo al principio.

Ejemplos en cuatro idiomas

  • Checo: al escribir ucet encuentra účet (una factura o una cuenta); al escribir vyuctovani encuentra vyúčtování (un extracto de suministros).
  • Alemán: al escribir Vertrag encuentra Vertragsunterlagen; al escribir Grundstuck encuentra Grundstück (un terreno).
  • Francés: al escribir deces encuentra décès (una defunción, como en un certificado de defunción); al escribir francais encuentra français.
  • Español: al escribir camion encuentra camión (un camión); al escribir informacion encuentra información.

La misma idea funciona también al revés: si escribes correctamente el signo diacrítico, la búsqueda sigue encontrando una versión del documento en la que se haya reconocido sin él, algo que puede ocurrir cuando un escaneo es tenue o el reconocimiento omite un pequeño signo sobre una letra.

No depende solo de cómo escribas

Hasta aquí hemos hablado de la diferencia entre lo que escribes y lo que dice el documento. Hay otra diferencia menos visible que conviene conocer: el reconocimiento de texto no siempre acierta con las tildes. Un escaneo tenue, una foto de baja resolución o un tipo de letra inusual pueden hacer difícil distinguir el pequeño signo sobre una letra de una mancha o una sombra, y el reconocimiento puede omitirlo aunque una persona que leyera la misma página no tuviera ningún problema. Cuando eso ocurre, al texto reconocido que se almacena para el documento le falta la tilde, por mucho cuidado que pongas al escribir la búsqueda. La normalización de signos diacríticos también ayuda aquí, en el mismo sentido: si la búsqueda normaliza asimismo el texto con el que compara, escribir correctamente účet sigue encontrando una página cuyo texto se haya reconocido como ucet. En otras palabras, la normalización te protege de los errores a ambos lados del cuadro de búsqueda, no solo de los que puedas cometer al escribir.

Cómo lo aplica la búsqueda de Pocket Aurora Papers

La búsqueda sin conexión de Pocket Aurora Papers normaliza los signos diacríticos para buscar coincidencias y realiza dos pasadas: primero busca coincidencias al principio de las palabras y después recurre a una coincidencia por subcadena solo si no encuentra nada, lo que permite que también aparezca una palabra escondida en medio de un compuesto alemán. Ambas pasadas se prueban con un corpus de búsqueda que cubre los cinco idiomas de reconocimiento: inglés, checo, alemán, francés y español. Todo se ejecuta en el dispositivo, igual que el reconocimiento de texto que permite buscar en una página escaneada. Por ahora, la interfaz de la app solo está en inglés; es la búsqueda, y no los menús y botones, la que entiende los otros cuatro idiomas.

¿Quieres probarlo?

Te escribiremos cuando haya algo que probar y te preguntaremos qué es lo que más te importa antes del lanzamiento.

Apúntate a la lista de espera