En los últimos años, la sociedad ha cambiado radicalmente gracias a los avances tecnológicos. Hoy en día es difícil imaginar la vida sin nuestros smartphones, los ordenadores de última generación, las plataformas de televisión, etc. La tecnología llega para hacernos la vida más fácil, y esto es sinónimo de progreso. Recientemente, la investigación tecnológica se ha centrado en la Inteligencia Artificial (IA), lo cual constituye un verdadero hito histórico. Los desarrolladores están creando funcionalidades asombrosas que eran inconcebibles a finales del siglo XX. Entre ellas, podemos encontrar:
- Sistemas de recomendación, como el que utiliza Netflix u otras plataformas para mostrarnos sugerencias basadas en nuestro historial.
- Comprensión del habla humana, como Siri o Alexa, que pueden realizar acciones a partir de nuestras palabras.
- Traducción de textos, como la que ofrece Google, que puede proporcionar una traducción sólida de fragmentos completos de texto.
- Coches autoconducidos, que son vehículos autónomos capaces de mantenerse en un carril, evitar obstáculos o incluso aparcar.
Esta es sólo una lista muy breve de algunas de las funcionalidades que van de la mano de la IA. Hoy vamos a introducir un concepto clave en el contexto del Procesamiento del Lenguaje Natural (NLP), esto es, el subcampo de la IA que se ocupa de las interacciones entre los ordenadores y el lenguaje humano. Se trata del llamado Reconocimiento de Entidades (NER). ¿Os imagináis poder extraer las ideas más importantes de un documento sin necesidad de leer y comprender todo el texto? Aquí es donde el NER entra en escena.
¿En qué consiste el Reconocimiento de entidades nombradas (NER)?
NER consiste en identificar la información clave del texto y clasificarla en un conjunto de categorías predefinidas. Pongamos un ejemplo dentro del mundo jurídico. Imaginemos que se necesita conocer los detalles de un contrato de trabajo, como la empresa contratante, el nombre del empleado, el salario o la duración del contrato. Toda esta información podría estar dispersa por el documento, y podríamos perder mucho tiempo intentando encontrar todos estos detalles. ¿No sería fantástico tener una aplicación que leyera y procesara automáticamente tu documento y te devolviera toda esta información? Por descontado nos ahorraría mucho tiempo y esfuerzo. Y ahora esta funcionalidad está al alcance de tu mano gracias al Reconocimiento de Entidades.
Pero, ¿cómo funciona NER? En esencia, el NER es un proceso de dos pasos. En primer lugar, el algoritmo debe detectar una entidad en un texto. En segundo lugar, debe categorizar la entidad detectada. Algunas categorías frecuentes son persona (PER), localización (LOC), organización (ORG), monetaria (MON) o fecha (DATE). Ilustrémoslo con un ejemplo:
Como se puede ver, el modelo parte de la frase “Me llamo Galo Gonzalvo, vivo en Valencia y trabajo en Bounsel S.L.” y extrae tres entidades, la persona “Galo Gonzalvo”, la localización “Valencia”, y la organización “Bounsel S.L.”. Concretamente, se trata de un modelo RoBERTa específico para NER impulsado por Facebook AI. Se entrena con el conjunto de datos CoNLL-2003, que contiene más de 20.000 entidades etiquetadas en más de 20.000 frases. Está especializado en detectar todas las entidades de localización, organización y persona. Puedes probar este modelo a través de la API de HuggingFace siguiendo este link.
Ahora vamos a entrar en algunos detalles. El primer paso es detectar una entidad, y esto se hace frecuentemente utilizando el etiquetado Inside-outside-beginning (IOB). Como se muestra en el ejemplo anterior, una entidad dada puede ser simplemente una palabra (o token), pero también puede ser una combinación de tokens. En este caso, I- y B- son etiquetas de prefijo asociadas a una entidad detectada, mientras que una etiqueta O indica que una palabra no pertenece a ninguna entidad. Concretamente, el prefijo I- indica que un token dado está dentro de una entidad detectada, y el prefijo B- indica que la entidad detectada es el principio de una entidad que sigue inmediatamente a una entidad anterior sin etiquetas O entre ellas. Ilustrémoslo con otro ejemplo: “María está visitando a su abuela en las Islas Canarias, España”:
Internamente, el etiquetado IOB funcionaría de la siguiente manera:
Como puede observarse, tanto “María” como “Islas Canarias” y “España” están etiquetadas correctamente. “España” contiene una etiqueta B- solo para diferenciarla claramente de “Islas Canarias”, ya que ambas son localizaciones pero se refieren a entidades diferentes.
Hasta este punto, hemos estado ilustrando cómo funciona NER utilizando modelos de aprendizaje profundo de última generación, como RoBERTa. Sin embargo, para construir nuestro modelo NER se pueden utilizar principalmente tres técnicas diferentes:
Técnicas para construir nuestro modelo NER
Tablas de búsqueda
Este es el caso de uso más sencillo. La idea consiste en crear una base de datos con entidades y sus correspondientes categorías. Por ejemplo, se podría crear una tabla de búsqueda con todos los países del mundo, y cada vez que el algoritmo encuentre una ocurrencia de cualquiera de ellos en un fragmento de texto, lo etiquetaría como una entidad de país.
Expresiones regulares
Las expresiones regulares son patrones con una estructura determinada. Por ejemplo, se podría crear una expresión regular de la forma “DD-MM-YYYY”, donde tanto D, M como Y son dígitos, y cada vez que este patrón aparezca en un texto éste se etiquetará como una entidad tipo fecha.
Aprendizaje profundo
El NER de aprendizaje profundo es el NER de última generación y se basa en principios de IA. Utiliza un método denominado word embedding, que asocia un vector numérico a una palabra determinada para comprender las relaciones semánticas y sintácticas entre los distintos componentes del texto.
Ahora te estarás preguntando, si los modelos de aprendizaje profundo son los más potentes, ¿por qué necesitamos considerar tablas de búsqueda o expresiones regulares? Pues bien, la respuesta a esta pregunta es que los modelos de aprendizaje profundo son robustos siempre que se disponga de datos de entrenamiento. La IA aprende con la experiencia y, por lo tanto, es crucial disponer de un conjunto de datos lo suficientemente grande como para captar las sutilezas de un caso de uso específico. En general, el procedimiento habitual consiste en obtener un modelo NER general, como RoBERTa, que se entrena en un conjunto de datos lo suficientemente grande, y luego afinarlo para un caso de uso específico (por ejemplo, documentos legales, como hacemos en Bounsel 😉). Para obtener los datos de entrenamiento para dicho caso, puede ser útil recurrir a tablas de búsqueda y expresiones regulares, lo cual constituye una forma fantástica de empezar a entrenar tu modelo para el problema en cuestión.
Además, para algunas entidades específicas como fechas o dinero, que tienen patrones muy particulares, las expresiones regulares han demostrado ser extremadamente útiles. Así pues, está claro que los modelos de aprendizaje profundo constituyen el NER más potente y sofisticado, pero conviene tener en cuenta que existen otras posibilidades que pueden constituir un magnífico punto de partida para afinar los modelos para tareas más específicas.
Espero que después de leer este artículo quede más claro cómo funciona el NER y lo útil que puede ser extraer las entidades más importantes de un texto determinado. Si aún no estás convencido, voy a concluir este artículo con algunas de las aplicaciones de las técnicas NER, que se utilizan a diario en muchos ámbitos diferentes. Por ejemplo, son muy empleadas en los departamentos de recursos humanos, que utilizan estas técnicas para resaltar los elementos clave de los currículums y agilizar los procesos de contratación; los motores de búsqueda también emplean NER para extraer los componentes clave de una consulta y encontrar con mucha más facilidad información relevante; y la categorización de artículos emplea NER para extraer las personas, organizaciones y lugares implicados en los mismos y situarlos automáticamente dentro de una categoría determinada.
Aquí, en Bounsel, aplicamos técnicas de IA para hacer los contratos más comprensibles, más fáciles de leer y acercarlos a las personas. En concreto, entrenamos nuestros propios modelos en un corpus específico de documentos jurídicos para hacerlos extremadamente robustos para todas las tareas del mundo jurídico-legal. Esto ahorra mucho tiempo y esfuerzo a nuestros clientes, que pueden manipular fácilmente sus documentos legales dentro de la plataforma Bounsel y utilizar nuestros modelos NER para identificar las piezas clave de información aprovechando las técnicas de IA más avanzadas. Si quieres seguir aprendiendo sobre las increíbles funcionalidades de IA incluidas en las soluciones Bounsel, ¡sigue atento para saber más!