 Imagine you enter a huge library. The shelves are packed with books. You are surrounded by information, by data, but you are looking for a specific book. So you check on the computer and what do you find? Five books with the same title. Are they the same book? Looking closer you see some are the same, some are different editions, some have different dates. All these issues stem from how the book's data was loaded into the database. In today's world we are amassing even more data but often we don't have an identifier by which to relate them. Our next speakers will explain how through the use of AI it's possible to check and match fields from data sources. They are Fatima Galán and Jordina Orcajo from MinSight and Javier Fernández, Senior Management at CTTI. Welcome. Hello, how are you? Muchas gracias Elena. Muchas gracias. Van a hacer su ponencia en español. Además colaboran pero cada uno está conectándose desde una parte diferente de la geografía española. Sé que alguno está en la playa, no diré quién, pero lleva gafas, no digo más. Por lo visto, lleva la playa ahí detrás, por eso tiene ese buen color. Y muchas más cosas que nos van a contar. Así que Fatima, Jordina, Javier, estamos deseando escucharos. Adelante. Muchísimas gracias Elena. Y muy buenas tardes a todos. Yo, como ha dicho Elena, soy Fatima Galán y me gustaría presentar a Jordina Orcajo, ella forma parte de mi equipo. Y tenemos el placer de contar con Javier Fernández. Él es el responsable de la de ATIG de la Agencia Tributaria de Cataluña y usuario de uno de nuestros algodinos. Como ha introducido Elena, hoy vamos a contaros un problema de calidad en los datos. Pero para ello lo vamos a explicar a través de la huella digital que generamos las personas en las bases de datos, sean de las empresas privadas o de la misma administración pública. Con lo que hemos bautizado como el síndrome multi-perfil. Pero qué es esto? Que el síndrome multi-perfil dice, será aquella persona o mascota, todo es posible. A día de hoy las mascotas también tienen cuenta en Instagram que maneja consciente o inconscientemente de distintos perfiles diseminando confusión en su huella en las redes sociales. ¿Qué significa esto? ¿Qué define el perfil de una persona? Una persona la podemos definir por su nombre, sus apellidos, su ciudad de residencia, un email, su knif, ¿verdad? Si pensamos cuántas fátimas conocéis, hablando unas cuantas, no muchas, pero seguro que hay unas cuantas. Fátima Galán, pues ya seguramente bastantes menos, pero si ponemos el email, seguro que es súper fácil, ya está claro que me encontraríais a mí, ¿verdad? Vale, pues vamos a poner un ejemplo. Ahora imaginemos que nos queremos comprar unas entradas para un concierto. Si estamos en pandemia, estamos encerrados, pero podemos ir a conciertos online. Lo primero que nos piden es que nos registremos. Y como no recordamos que hace años ya nos habíamos dado de alta, nos volvemos a dar de alta dentro del sistema. Ahora la empresa de entradas va a tener dos perfiles nuestros y en realidad somos la misma persona porque hace años nos habíamos creado una cuenta con aquella dirección de hotmail, ¿nos acordáis? Aquella que hay muchas veces que ya no nos acordamos como acceder, pues nos gustaría proponeros un juego. Vamos a jugar al quién es quién o guess who, como se dice en inglés, ¿vale? Pero antes, permitidme presentados a Babit, ¿vale? Babit es nuestra base de datos de conocimiento y contra la que vamos a jugar. Babit es una base de datos llamadura, es a gran escala, cuenta con seguridad, con procesos de calidad, más o menos homogéneos, ¿de acuerdo? Pero vamos a ver qué nos cuenta a Babit. Vamos a empezar a jugar con Charles, os presentamos a Charles. Charles es Rubio, tiene bigote, orejas con teagudas, se llama Charles Martinez O'Connor, vive en Malaga, España y le preguntamos a Babit. Oye, Babit, ¿cuántos Charles se encuentras? Babit ha encontrado seis Charles. Vamos a ver cuál es nuestro Charles, ¿os parece bien? Muy bien, nos identificamos primero hemos encontrado dos en Malaga. El primero es un Charles, M O'Connor, M, M puede ser Martinez, pero puede ser Machín o puede ser Machado, no me fío todavía. Vamos a mirar el siguiente, tenemos otro en Malaga. Charles O'Connor, Marx, pues este menos todavía. Vamos a seguir, ¿qué hemos encontrado? Tenemos un Charles Martinez O'Connor, este encaja perfectamente, pero está en La Habana, en Cuba, me da que tampoco. Vamos a ver, Dublín, Charles Martin, Martin O'Connor, Dublín, tampoco. Miramos el quinto, Edimburgo, Charlie Martin, este fijo que no, y finalmente tenemos otro Charles Martinez O'Connor, perfecto, pues está en Jaén. ¿Qué hacemos? Nos quedamos con el primero M punto que está en Malaga, o con el último que encaja pero está en Jaén. Lo tenemos complicado. Vamos a buscar otro ejemplo, ¿vale? Vamos a buscar ahora a Claire. Claire es la hermana de Charles, y con Claire vamos a poder ver que tenemos Unif. Vamos a poder ver su información de su Unif, y a partir de ahí identificar muchísimo mejor a quién hacemos referencia. Claire, Martínez O'Connor, Bavit, ¿qué encuentras? Bavit se va y ha encontrado tres casos. El primer caso, Claire, Martínez O'Connor, pero el Nif no encaja, empieza por X, pues no lo sabemos. El segundo caso, pues tenemos una María Martín Sánchez. El Nif encaja perfectamente, pues aquí o Claire o María se han equivocado poniendo el Nif. Y en el tercer caso encontramos a Charles, claro. Charles es el hermano de Claire y resulta que, además de coincidir, Martínez O'Connor, el Nif está consecutivo. ¿Qué es lo que ha ocurrido aquí? Pues ocurre que cuando han tenido un cambio del NIE extranjero al Nif, cambia el número y a la hora de introducir, pues en realidad correcto, era el primero. Pero esto mismo nos pasa con las empresas, ¿vale? Si miramos el ejemplo siguiente, nos encontramos el caso de la empresa Girasoles for You. La empresa Girasoles for You también nos proporciona un Nif y le preguntamos una vez más a Bavit. Bavit, ¿qué encuentras? Bavit lanza la consulta y sí que encuentre un primer Girasoles for You, pero no tenemos el S.A. y el número sí que coincide. El segundo caso, pues sólo pone Girasoles y el número es igual, pero cambia la primera letra. Bueno, pues seguimos. El tercero, el tercero no encaja el Nif, pero seguramente Bavit lo ha encontrado porque coincide por Girasoles. Y finalmente tenemos un cuarto que sí que coincide el Nif, pero no coincide el nombre. Aquí lo que aprendimos es que inicialmente la empresa se generó con un nombre societario y con un Nif que cuando cambiaron, cambiaron tanto el número como el nombre. Por tanto, el correcto finalmente en contamos queda el segundo caso. Esto es una metodología. Esta metodología la hemos implementado en muchísimos proyectos. Lo hemos implementado desde arreglar la calidad del marco y modelo de los vehículos. Lo hemos aplicado para nombres de aerolíneas y incluso lo aplicamos y lo tenemos funcionando como se explicara Javier para direcciones postales. Por tanto, como lo hemos resuelto, esa es la gran pregunta que os estaréis haciendo todos. Nosotros hemos diseñado la metodología, pero para poder resolverlo, simplemente nos hemos preocupado en dotar a los algoritmos de la información necesaria. Todo ese tablón con el cual vamos a empezar a trabajar y a partir de ahí enseñarle al algoritmo patrones que le han permitido generalizar en la detección de conocimiento y a partir de ahí los patrones. Y a partir de ahora os explica con mucho mejor detalle cómo lo hemos hecho. Jordina, por favor Jordina, explícanos. No, sí, creo que Jordina la hemos perdido por el momento, se ha quedado congelada. Esperamos a Jordina o Fátima o saltamos a Javier. Necesitamos hablar a Jordina primero. Necesitamos que habléis Jordina primero. Tengo que decir, aprovechar este momento que me ha venido a iluminar aquí alguien porque digo no he dicho lo de las preguntas. Recordad, querida audiencia, que alguien me ha inspirado, perdón a Fátima, ellos están pensando, no he dicho lo de las preguntas cuando lo digo, pues ahora que podéis preguntar a Fátima, Jordina y a Javier al final de la intervención como en, pues eso, en unos 20, 25 minutos y tomando nota de lo que queráis preguntar y no esperéis al final que ayer nos llegaban las preguntas cuando ya se habían ido los ponentes. Podéis hacerlas en español. You can make your questions, you can send them in English, I'll translate them if necessary, okay? Jordina, estoy aprovechando para decir algo que se me había olvidado, el debido lanzar las vibraciones y se ha interrumpido la conexión. Entonces, querido público, our dear audience, podéis hacer preguntas, you can make questions and your questions to the chat de esta, de esta charla para dentro de unos 25 minutos, vale? No lo dejéis para el final. Empezad a escribir ya, porque el pre-que primero llega, pues primero pregunto, así. Jordina, ahora sí te tenemos. Estás preparada? Sí? No sé si nos oye Jordina. Ah, estás mutuada, me dicen Jordina. Y aprovecho para decirle Javier que cuando intervenga Javier también acuérdate de desmutearte, ¿vale? Jordina, es que no sé si nos oye. ¿Te puedes desmutear, Jordina? Yo es que les veo que se han congelado. Si me han congelado la imagen, no lo sé si a nuestro público también. Fatima, si te veo. Mándenle un whatsapp a Jordina. Tranquilamente, sin estrés. Javier, lo que queremos es que nos saque es una foto de la playa que ya se ha enterado tu España y todo el mundo que se ha enterado, ¿sabes? Jordina, si estás de vuelta, ¿no soyes? No sé. ¿Le has escrito un whatsapp? Sí, sí. Yo es que la veo, pero no pone cara de que me oye. No? Vamos a ver. Sí, no sé, ahora le ha recibido el mensaje de Fatima que bueno esto de que sean coleras, claro. Ahora le está llamando. Hola. Sí, que no tienes el mutu puesto, quizá. Sí, no sé si, yo escucho a Fatima. No. Jordina. No te oímos Jordina. A ver, la oímos, a ver, la oímos un poco lejos. Vamos a ver. No, no sé. David, porque yo la oigo con un sonido un poco metálico y lejos. Puedes porque me oyes a través mío. Desmuteate, Zoom. Ah, claro. Desmuteate, ahi, ahora. Ahi, te tenemos. Es que no sabés. Ahora me escuchar. Ay, ahora, qué maravilla. Qué maravilla, qué maravilla, pero disculpas. Sí, ahora sí. Déjame que pide disculpas a la audiencia. Estamos conectando un montón de salas a la vez, sí, gente, disculpate, Zoom, el otro, siempre, ya sabéis. Un evento virtual tiene sus ventajas, que Javier puede estar en la playa, y sus inconvenientes que es que a veces no soíamos. Te pido disculpas, Jordina, recuperaremos este tiempo. Tomo la oportunidad para decir a la audiencia que os pueden hacer preguntas que las vayan preparando. Estás preparadas, Jordina, disculpa. Sí, ¿me escucháis bien ahora? Perfecto. Perfecto. Sí, vale, vale, de acuerdo. Bueno, pues, revivino. Perfecto. A mí me tocaba la parte de cómo lo hacemos, ¿no? ¿Cómo hacemos funcionar a Babil, de esta manera? Pues nosotros dividimos el proceso en cuatro fases. La primera fase es la obtención del tablón analítico. Este tablón tendrá una estructura distinta, según el reto, el que nos queramos enfrentar. Si lo que queremos es asignar un valor estándar, como os ha explicado Fátima, que es el caso de normalizar las direcciones, o normalizar las aerolíneas, o normalizar las marcas y modelos de vehículos. En este caso, el tablón será la tabla maestra con los valores en formato estándar. Si, por otro lado, lo que queremos es encontrar a la persona que más se le parece, como en nuestro caso es encontrar a Charles, en este caso el tablón analítico será la base de datos de candidatos sobre la que se hará la búsqueda. En nuestro caso, Babil es nuestro tablón analítico. Como segunda fase, tenemos la selección de los campos. ¿Qué campos van a componer este tablón analítico que hemos comentado sobre el que hacer las búsquedas? Y, por tanto, ¿qué campos son los que realmente se utilizarán para hacer las búsquedas? Los campos más identificativos son los que, de manera natural, se incluirían, como podrían ser nombre y nif, en nuestro caso, en el caso de Claire. Pero también hay otros campos que nos pueden reforzar y nos pueden apoyar a la hora de discernir quién es el candidato, como pueden ser ciudad, país, profesión, teléfono. Al final, estos campos dependerán de los campos disponibles en la base de datos y la aplicabilidad. Este tipo de campos, como he dicho, nosotros los llamamos campos de refuerzo. A veces puede que no estén informados, pero en caso de estar informados, nos pueden aportar mucho valor y ayudar a discernir. Pero estos campos tienen que garantizar cierta calidad para que realmente nos sirvan de refuerzo. Ojo que nosotros nos hemos encontrado a veces que estos campos necesitan de su propio proceso de data quality antes de poder utilizarlos. Por ejemplo, el campo país, nosotros nos hemos encontrado dos registros que para este mismo campo, aun y referirse los dos, hay un item kingdom, pues un registro te venía de esta manera y otro registro te venía con UK. Lo mismo para profesión, aun y referirse a la misma profesión, pues venían escritos de manera distinta. Por tanto, para que realmente estos campos no sean útiles, necesitamos garantizar cierta calidad. Los campos de refuerzo también pueden ser campos creados a partir de campos originales, pero que estos nuevos campos nos faciliten más la búsqueda. Por ejemplo, la fecha de fallecimiento. En nuestro caso, en una aplicación que hicimos, no nos hacía falta saber exactamente si coincidió o no la fecha de fallecimiento. Simplemente con saber si esa persona había fallecido o no, ya teníamos suficiente para discernir. Por tanto, creamos el campo de esta manera, como de función. Una vez ya tenemos el tablón analítico con los campos más identificativos y también con los de refuerzo, entramos en las fases 3 y 4. La fase 3 es la del motor de búsqueda que le vemos tres patas importantes, el preprocesado de texto a aplicar a los campos que se utilizarán para la búsqueda y las otras dos patas son los dos tipos de búsqueda implementados para encontrar el mejor candidato, que las diferenciamos según si son búsquedas directas y búsquedas por similitud. En la fase 4, se asigna la calidad a cada candidato encontrado por el motor de búsqueda, la definición de los matchpoints que después, sus detalles que son y la, perdón, y la calidad que finalmente se asigna a cada candidato. Como hemos dicho, para el motor de búsqueda, lo primero que necesitamos es preprocesar los campos de texto para eliminar el posible ruido y facilitar así las coincidencias. Hago un inciso. Yo aquí hablo de preprocesado de texto, porque en nuestro caso de buscar a una persona, la mayoría de los campos de los que disponemos son textuales, pero en el caso de ser campos numéricos, también se tendría que aplicar un preprocesado acorde para homogenizar los valores. Dicho esto, este preprocesado de texto dependerá del tipo de campo a tratar, ya que no se aplica el mismo tipo de preprocesado a todos los campos, por ejemplo. Para el campo nombre que tenemos Charles Martinez O'Connor, un preprocesado muy común es pasar todas mayúsculas, quitar los apóstrofes y de esta manera nos queda el campo, un nombre pre, que ya está preprocesado. En cambio, si el campo es el documento, ¿a qué me refiero que el preprocesado puede ser distinto al del nombre? Pues que aquí, bueno, sí que puede tener sentido que lo pase todas mayúsculas, porque tiene la letra, pero igual hay un preprocesado que le pega más al tema del documento, que es el hecho de fijar o intentar que siempre la longitud sea la misma, homogenizar las longitudes, y por tanto, si uno tiene un documento con una longitud inferior, pues le pongo ceros por delante. Cosa importante, el mismo preprocesado que se aplica al input se tiene que aplicar al tablón. Al final, se trata de homogenizar formatos en ambos sitios para quitar el ruido y facilitar así las coincidencias. Por tanto, el mismo preprocesado arriba que abajo en el tablón. Y como decía, que el preprocesado puede depender del tipo de campo, también puede depender del tipo de registro. Por ejemplo, en nuestro caso, Bábbit es una base de datos que incluya tanto empresas como personas físicas como hemos visto antes, y en el campo nombre puede aparecer nombres propios de persona como nombres de empresa. Pues el registro es de empresa, puede que en el preprocesado del nombre no me interese quitar los números, pero en cambio, si el registro es una persona, sí, porque no tiene sentido encontrarme un número en un nombre propio, lo podría considerar ruido. O el tema del tipo de sociedad, los sls, los ssas, al final del nombre de la empresa, puede interesar quitarlos para facilitar también la coincidencia. Ya que puede que en el tablón aparezca esa misma empresa con ese nombre, pero sin lsl, y si no quito este tema de los sls y ssas, ya haría que no me coincidiera cuando en realidad sí que aparece. La otra pata, y que ya es uno de los tipos de búsqueda implementados en este motor de búsqueda, las búsquedas directas en primer lugar. Estas son aquellas en las que realmente se busca que los campos de input y del candidato del tablón coinciden exactamente, lo que viene siendo una join. Pero siempre a partir de los campos preprocesados y a que como hemos dicho, son los que garantitan mejor la coincidencia. ¿Y cuándo tiene sentido aplicar estas búsquedas? Pues nosotros observamos dos aplicaciones. Para aquellos campos categóricos que no son de texto libre, sino que toman unos valores definidos previamente, como puede ser el país y la ciudad. Aquí si queremos ver si coinciden, se aplicará una búsqueda directa, más que una búsqueda por su militud, que computacionalmente es más costoso. Otra aplicación de estas búsquedas frente a las de similitud es en los proyectos de estandarización. Los que hemos comentado antes, normalizar las direcciones, normalizar las aerolíneas, que lo que se quiera allí es encontrar el candidato que más se parece. Si primero se aplica una búsqueda directa y se encuentra un candidato de esta manera, no existirá ningún otro candidato que se pueda encontrar por similitud, que sea más similar que lo encontrado por directa. Por tanto, te ahorrarías esa búsqueda por similitud. El otro tipo de búsqueda que tenemos el último ya voy, son las búsquedas por similitud, que se basan en el cálculo de distancia entre cadenas de texto. Una distancia entre cadenas de texto mide en cuanto se diferencian estas dos cadenas y, por tanto, la búsqueda basada en distancias devolverá el valor que menos se diferencia, lo que viene siendo pues el valor más similar dentro de una lista de distintos valores. Por ejemplo, en nuestro caso que tenemos al Charles Martínez O'Connor, que es nuestro input, se ha calculado la distancia con todos los registros que hay en la base de datos. Si miramos la columna de distancia, nos dice que el que tiene una distancia menor y, por tanto, es el más similar, es el tercer registro Charles Martínez O'Connor. En cambio, el que más se diferencia, quiere decir que es el menos similar, es el último, el Paco Jiménez García, claramente, no tiene nada que ver, por eso es el que tiene una distancia mayor. Igual que antes habíamos dicho con las directas, cuando tiene sentido aplicar este tipo de búsquedas, las de similitud, las directas tenían sentido aplicarlas con los campos categóricos, las de similitud tienen sentido aplicarlos cuando se trata de campos de texto libre. Aquellos que aún y refirsa el mismo valor, este valor puede estar escrito de dos maneras distintas y es aquí donde las búsquedas por similitud podrán encontrar el valor que, aún y no ser exactamente igual, se parece. Hay distintos tipos de distancias ya definidas. Hay distancias que calculan, por ejemplo, el número de letras que se tiene que cambiar para que una cadena sea igual que la otra. Hay otros tipos de distancias que calculan los grupos de letras que coinciden, por ejemplo, la Cugran, que mira los conjuntos de Q letras que coinciden en ambas cadenas. Otras que dan más peso a las diferencias al inicio de la cadena, otras que dan más peso a las diferencias al final de la cadera. Según la aplicación, puede tener sentido aplicar una distancia u otra. Aquí os muestro siete distancias aplicadas al nuestro caso de Charles. Por ejemplo, si nos encajamos en la Cugran, que es la que está marcada en verde, dice que el candidato que más se parece es el tercero, porque es al que le asigna una distancia menor, una distancia de seis. Después dice que en segundo lugar es el Charles O'Connor, el primer registro, con una distancia de once. Pero según la distancia, según lo que valora cada distancia, el candidato más similar puede ser uno o otro. Sí que vemos que todas coinciden en que el más similar es el tercer registro, todas lo ponen como el número uno, el que tiene menos distancia, pues si vamos a buscar los segundos más similares, como hemos dicho la Cugran, nos dice que es el primer registro, pero en cambio, esta última distancia que mide, aún y medir una distancia la mide de otra manera. Y esta otra, la Jarrow-Wickler, que también la mide de otra manera, dice que este es el tercero, que en realidad se parece más este segundo registro, ¿de acuerdo? Por eso es importante conocer bien el campo sobre el que se quiere aplicar la distancia y encontrar la distancia que mejor aplica nuestro caso. Por ejemplo, nosotros, para los nombres de personas, solemos utilizar la distancia Cugran y para el documento, pues la Levenstein. Otra cosa a notar, como se trata de distancias distintas y cada una se calcula de una manera distinta, su escala de valores es distinta. Por tanto, si se quisiera comparar, se tendría que normalizar. Vemos que algunas devuelven la distancia en decimal, como es esta primera y esta última, y otras devuelven un número entero. Por tanto, si se quieren comparar, se tendrían que normalizar. Otra cosa que hemos aplicado en algún caso, con el tema de las distancias, ha sido un algoritmo de votación. Cuando no teníamos claro qué distancia era mejor aplicar, se han seleccionado varias distancias potenciales de aplicación y nos hemos quedado con el candidato que más distancias han votado como el más similar. En este caso, todas las distancias, las siete distancias han votado al Charles Martin O'Connor. Por tanto, tenemos que este registro lo han votado siete de los siete algoritmos y, por tanto, será el resultado que dará la búsqueda por similitud para nuestro Charles Martin O'Connor como input. Ahora que ya tenemos el motor de búsqueda, debemos asignar una calidad al candidato que devuelve el motor de búsqueda. Aquí nosotros definimos los matchpoints. Entendemos los matchpoints como la combinación de los campos que nos interesa que coincidan. Cada candidato de vuelta será porque cumple alguno de estos matchpoints definidos y cada candidato de vuelta por el motor de búsqueda tendrá siempre asignado el matchpoint que cumple. Esto permitirá conocer en todo momento porque el motor de búsqueda está devolviendo tal candidato. Permitirá conocer cuáles son los campos que le coinciden a ese candidato. Por ejemplo, para el matchpoint uno se ha definido que el nombre tiene que ser igual, el país tiene que ser igual, la ciudad tiene que ser igual y el nombre tiene que ser poco común. Para el matchpoint dos solo el nombre igual, la misma ciudad, el mismo país, la misma ciudad. Aquí vemos que hemos añadido otro campo, distintos a los de refuerzo, pero que nos puede ayudar también a valorar la confianza, fiabilidad en un candidato como es la frecuencia del nombre. En este tipo de casos nosotros vemos interesante incluir este campo en los matchpoints ya que vemos que si una persona le coincide el nombre, el país y la ciudad y su nombre es poco común, pues será más fiable que si su nombre es muy común, en este caso no podremos estar tan seguros de que sea esa persona. Por otro lado, estos matchpoints se definen, se priorizan siempre con negocio según la necesidad. Y una vez ya tenemos los matchpoints definidos, el siguiente paso es asignar una calidad a cada matchpoint para que cuando el motor de búsqueda devuelva un candidato, según el matchpoint aplicado, le asigne una calidad u otra. La calidad nos medirá la confianza o fiabilidad en ese candidato. Esta asignación de la calidad se puede hacer de dos maneras por comprobación mostral o por propia definición de negocio. Si se dispone de un dataset donde realmente se puede comprobar que el candidato que devuelve el algoritmo es el candidato que toca, se puede hacer por vía mostral, sino pues por vía de definición de negocio. Aquí vemos el ejemplo donde tenemos cada uno de los matchpoints, se ha hecho una comprobación mostral, se ha sacado las precisiones, ¿no?, cuántos ha acertado, cuánto se ha equivocado el algoritmo. Y al final, a partir de estas precisiones mostrales, digamos, se asigna la calidad de mayor a menor precisión. Por tanto, cada matchpoint tendrá siempre asignado una calidad, lo que hace que cada candidato tenga una calidad asignada. ¿Por qué es útil esta asignación de la calidad? Pues para poder tomar acciones distintas según la calidad del candidato devuelto. Por ejemplo, si el candidato que me encuentras como Charles es de tipo A++, puedo estar muy segura de que se trata de la misma persona. Y por tanto, actualizar la información de mi base de datos automáticamente con la información nueva que me aporta este Charles. En cambio, si el candidato es de tipo A, igual no me interesa hacer una actualización automática, pero sí una propuesta, recomendación, ya que sea y que sea una persona la que valore realmente si se trata del mismo Charles o si no. Finalmente, ha encontrado un candidato para nuestro Charles con calidad A++. Los otros candidatos que han encontrado, aunque son parecidos, son de calidad inferiores. Aquí los tenemos ordenados según esa calidad. De hecho, igual el A++, que es este Charles Martinez O'Connor, lo que ya no es de Málaga, sino que es de JN, puede que se esté refiriendo al mismo Charles, pero según las calidades asignadas a los matchpoints, este no nos genera tanta confianza como si que nos genera el caso de arriba. Aun así, podemos proponerlo para que sea valorado por una persona. Y ahora, habiendo visto hasta aquí, ya sí que podemos decir que nuestra base de datos, Bavit, aparte de todas las insignias que ya tenía antes, pues que ahora nos puede garantizar la no-duplicidad de las personas, también la calidad de las nuevas inserciones y además acabar siendo el senso único de personas y empresas sobre el que todos los procesos harán referencia. Y ahora os dejo con Javier, que viene a explicar su experiencia con este tipo de proyectos. Javier, acuérdate de desmutearte el micro. Mira qué te lo he dicho. Nos pasa a todos. Yo la primera. Tienes toda razón. Gracias Jordina. Bien, la Agencia Tributaria de Cataluña es una organización como todas las agencias tributarias que gestionan muchísimos datos. Históricamente recibimos información de múltiples agencias, empresas privadas, ciudadanos. La calidad siempre ha sido, podemos decir, un problema en la consolidación de la información. Las fuentes son diversas, pueden ser más o menos fiables, pero no hay ninguna perfecta. La perfección, prácticamente, podemos decir que no existe. Históricamente, consolidar esta información en los operacionales ha ido dando problemas porque al no poder asegurar esa calidad y esa seguridad del dato ha repercutido en la duplicidad de información, en no poder relacionar información importante para la gestión tributaria y la arreglación. Entonces llegó un momento en que dentro de la agencia se diseñó una nueva estrategia de orientación al dato. Una estrategia donde se posicionaba el dato en el centro de las aplicaciones, en vez de tener diferentes bases de datos, se diseñó un modelo orientado en bitdata donde diferentes productos de bitdata pudiesen diseñar una base de datos corporativa donde se consolidasen las colecciones de conocimiento tanto de documentos como de entidades de negocio, datos de referencia o censos. Y cuando fuimos a abordar la calidad, pues a partir de ese momento, vimos que teníamos que abordar estos problemas de calidad de una forma diferente. Cuando diseñamos los nuevos sistemas, el primer proyecto que iniciamos fue la creación de un data quality con tecnologías de bitdata. Hicimos diferentes proyectos desde un repositor y documental en bitdata, un MDM en bitdata, pero el primer proyecto que lanzamos fue un data quality. Ese data quality lo fuimos desarrollando con esas tecnologías que nos daban más capacidades en el tratamiento de la información que las que teníamos antaño, más capacidad de proceso, pero a medida que fuimos evolucionando ese data quality hecho en Spark, con HSQL, Java y que fuimos evolucionando, veíamos que nosotros seguíamos abordando los problemas clásicos de la misma forma. Buscábamos y hacíamos con expresiones regulares, remediamos datos, teníamos más capacidad en el tratamiento de la información, pero seguíamos cometiendo errores clásicos. Un poco en ese paradigma de la calidad, aquí hay diferentes frases que la pueden definir, vimos que teníamos que resolver los problemas que teníamos de forma diferente a cómo los habíamos resoltó hasta entonces, porque había situaciones en que la forma clásica de abordar la resolución y la remediación de datos y de problemas de calidad no nos servía. A partir de aquí lanzamos diferentes proyectos de analítica avanzada, ligados a toda esa evolución de proyectos de bitata. A continuación, podemos ver diferentes proyectos que fuimos integrando dentro del portfolio de servicios para poder mejorar la calidad y la consolidación de la información. Por ejemplo, uno de ellos fue para el MDM, para el censo de vehículos. Nosotros teníamos un censo que nos venía información de diferentes fuentes, pero la calidad que se consolidaba de los vehículos no era muy muy muy buena. Básicamente teníamos, por ejemplo, la palabra Nissan Cascay nos podía parecer de 400 formas diferentes. Entonces, a partir de un módulo de analítica avanzada, lo que conseguimos fue integrar esas capacidades de analítica con las capacidades que teníamos de proceso y remediar, normalizar esos datos para poder consolidar un censo cuyo nivel de calidad fuera el necesario para la agencia tributaria. A partir de ahí fuimos evolucionando diferentes piezas de analítica. Otra fue, como han comentado antes, la normalización de direcciones postales. Las direcciones postales que teníamos a través de las diferentes fuentes que consolidábamos información siempre se nos habían producido muchísimas duplicidades, teníamos direcciones incorrectas, direcciones parciales. A partir de otro módulo de analítica avanzada, lo que conseguimos fue, a través de callejeros, como el deline y el de correos, normalizar, dejar las direcciones postales con un nivel de calidad que nos permitían, no sólo poder dirigirnos de una forma ágil y veloz al contribuyente, sino también evitar los costes que suponía las notificaciones a direcciones incorrectas. Y por último, la parte de personas. Lógicamente, la gestión tributaria, el epicentro, son las personas. Con todos los problemas históricos que habíamos tenido de datos, de calidad de datos, por las fuentes que nos enviaban información no totalmente bien relacionada, las personas o las podíamos tener duplicadas, las podíamos tener incorrectas, no tenemos considerado bien información de todas las personas. A partir del nuevo censo que conformamos, vimos que es fundamental introducir un módulo de analítica para poder hacer el scoring de esas personas. Como he comentado antes, Jordi and Fátima, el poder identificar correctamente a las personas, porque a partir de la identificación correcta de la persona nos da la capacidad de poder hacer una buena gestión operativa. A partir de ese momento no solamente hacíamos tratamientos en batch a través de data quality, sino estas piezas de analítica, una de las ventajas muy importantes que tiene es que tanto los utilizamos con los productos de data quality en procesos batch, como también en procesos online a través de APIs, se exponen para que los operacionales, las aplicaciones, la sede telemática de la agencia pueda aprovecharse de esa capacidad del tratamiento de información con estas tecnologías y poder identificar correctamente a las personas y también facilitar unos servicios de mayor calidad de la ciudad. Y bueno, básicamente, sobre todo, las gracias al equipo de MSI por todo el apoyo y todo el trabajo que han hecho que nos han permitido a la agencia tributaria de Cataluña tener una capacidad de ofrecer esos servicios con un nivel de calidad del siglo XXI. Muchas gracias. Muchas gracias, ahora vuelvo yo. Muchas gracias a ti, Javier, y muchas gracias por acompañarnos en esta ponencia. Desde MSI entendemos la inteligencia artificial como una pieza más de software de las compañías. Acompañamos a nuestros clientes a formularse las preguntas adecuadas, sean para eficientarse o sean para innovar y sobre todo ayudarles a crecer en el gobierno de la inteligencia. Por nuestra parte nada más, si quieres, Selena, podemos pasar a las que hayan podido surgir. Muchas gracias a los tres, a Fátima, Jordina y a Javier. La verdad es que tenemos muy poco tiempo porque con el lío que nos hemos empezado a disculpar. Pero bueno, daros las gracias en primer lugar por esta explicación tan interesante. Yo estaba ahí pensando que va a pasar con Charles, porque digo no sí debemos encontrar en Málaga en Jaén o no le vamos a encontrar. No me he quedado claro, entiendo que está en Málaga, ¿verdad? Que Charles, Martínez o Conor. Siempre están en la playa. Ha sido muy interesante que les explicara esta metodología a la que habéis llegado con tanto detalle, muy interesante Javier además que nos hablarás de la experiencia vuestra desde la agencia tributaria de Cataluña y sobre todo hablando de la calidad y de las personas. Nos preguntan muy rápidamente si nos podíais dar otro ejemplo de la utilización de Bábito o de la metodología para otro caso, pero claro, no tan extenso como podemos haber escuchado de Javier. No sé si nos podíais dar algún otro caso de éxito de la utilización de la metodología a Fátima, Jordina. Sí, la hemos utilizado, este mismo ejemplo que hemos utilizado de los nombres de personas, lo hemos hecho para fusionar bases de datos. Hay bases de datos en las cuales un cliente quiere tener un conjunto, por ejemplo, de profesionales y sabe que existen internet o la fuente similar que quiere poder fusionar. Y ahí estamos una vez más en un problema de cómo identifico a esa persona y la podemos fusionar. Esto es el mismo caso para personas, pero como decíamos, esto lo hemos utilizado para la calidad de nombres de AedoLineas, lo que hemos hecho para Marca y Modelo. La metodología es bastante flexible y la podemos adaptar y promover para cualquier nuevo caso de uso. Y esto además es transfronterizo, transempresa, se puede usar, se pueden intercambiar la agencia tributaria de Cataluña con la de Madrid, con la de... es decir, esto no tiene limitaciones, dependiendo como se explicaba Jordina, un poco de los parámetros que se incluyan en el... Eso es. Y entre países también o eso ya... Claro, y además tiene la casuística de que es multidioma porque aquí no ponemos el idioma al español o el inglés como un limitante que suele ser en el ámbito del estado de texto, sino que como nos fijamos en las instancias, no nos importa en qué idioma es lo que nos estén intentando pedir en este nuevo reto. Estupendo, me pregunto si también Bábil nos sirve para averiguar uno de las grandes misterios de la humanidad, que sabéis cuál es, encontrar los calcetines en la casa, porque sabéis que el calcetín uno se queda perdido y dónde estará el otro. Yo me pregunto si Bábil... Esto ya es difícil porque sabéis que nadie los encuentra. Pero bueno, me pregunto si Bábil lo conseguirá. Lo tomo un poco a broma porque estamos sin tiempo, así que simplemente daros las gracias a los tres por vuestra explicación. El caso de éxito os pido, os sugiero que os equideis porque tenemos muchos ponentes tan interesantes que vienen a continuación, así que ha sido un placer, un beso fuerte para Barcelona, Cataluña, Elche, donde está Fátima y a quedaros en el Atik porque vienen más, vienen más, así que muchas gracias y seguimos en un minuto, dos minutos, hasta ahora.