El Modelo Políglota: Procesamiento de Lenguaje Natural en un mundo multilíngüe.

October 9, 2020

Hay algunas cosas que mejor no preguntarle a un lingüista, como por ejemplo, “¿cuántos idiomas hablas?", o “¿cuántos idiomas hay en el mundo?". Esta última pregunta, en apariencia simple, es un tema de acalorado debate entre los estudiosos de la lengua. Actualmente, se estima que hay alrededor de 6.500 idiomas hablados en el mundo. Algunos continentes, como Oceanía, concentran una variación lingüística enorme; solo en Papúa Nueva Guinea, por ejemplo, se hablan unos 840 idiomas; lo que muestra una diversidad y riqueza impresionantes.

Si en vez de con un lingüista hablamos con alguien que se dedica al Procesamiento del Lenguaje Natural, la cosa cambia. El desarrollo de técnicas para analizar y procesar texto humano automáticamente se restringe a un puñado de idiomas. De hecho, la gran mayoría de las técnicas, y sobre todo los impresionantes desarrollos de los últimos años, están focalizados en el inglés. Llegamos a un punto en el cual tenemos algoritmos que pueden producir artículos de opinión que poco o nada se diferencian de los que podría haber escrito un periodista, pero siempre en inglés.

Los motivos que explican esta realidad se pueden dividir en dos. Por un lado, se debe al interés general en la comunidad científica. La investigación se hace mayormente en inglés, y hasta hace poco, el área de Procesamiento de Lenguaje Natural estaba focalizado en ese idioma. Por otro lado, hay un motivo más técnico: la disponibilidad de datos. Las técnicas modernas usan cantidades enormes de texto para entrenar modelos de aprendizaje automático, y esos datos son difíciles de conseguir en otros idiomas.

Datos, data, dati, données.

Dependiendo del tipo de modelo que estemos entrenando, y del tipo de entrenamiento que necesite, la dificultad para conseguir datos variará. Un tipo de modelos, que se llaman “supervisados”, necesitan ejemplos anotados; es decir ejemplos en los cuales la predicción ya está hecha. Por ejemplo, imaginemos un algoritmo que identifica si un texto tiene una connotación positiva o negativa. Un modelo así se construye juntando muchos ejemplos (del tipo “Me encantó la hamburguesa” → Positivo / “Tienen las peores patatas fritas que comí en mi vida” → Negativo), y mostrándoselos al modelo para que aprenda qué hace que algo positivo sea positivo y algo negativo sea negativo. Ahora bien, estos ejemplos tienen que estar bastante bien hechos para que el modelo aprenda bien. En general los hacen humanos, y es un proceso lento y caro. Por eso se suelen hacer en un solo idioma, que normalmente es el inglés.

Otro tipo de modelos son los que aprenden de texto sin anotaciones. Este es el tipo de aprendizaje que se usa en los famosos modelos de lenguaje, que revolucionaron el área de NLP en los últimos años. En pocas palabras, los modelos ven muchísimo texto y aprenden una idea general sobre cómo funciona el idioma, que después les sirve para realizar diferentes tareas. A priori puede parecer que esta situación es más conveniente para conseguir datos para diversos lenguajes, ya que no hace falta anotarlos manualmente. Sin embargo, este tipo de entrenamiento puede hacer aún más profunda las diferencias entre unos idiomas y otros. Cuando decimos que los modelos ven “muchísimo texto”, nos referimos a que ven cantidades como toda la Wikipedia. Claramente, estos algoritmos no funcionarán igual de bien para idiomas como el guaraní, que tiene 3.850 artículos, frente a los 6.138.396 del inglés.

¿Qué puedo hacer si necesito algoritmos en otros lenguajes?

Si el desarrollo de algoritmos de procesamiento natural avanza como parece que lo está haciendo, y sus técnicas se vuelven de uso corriente en distintos ámbitos, las herramientas tienen que ser necesariamente multilingües. En el caso de IOMED, por ejemplo, es crucial poder analizar texto en los idiomas en los que escriben los médicos. Entonces, ¿qué se puede hacer? Entramos en el mágico mundo del procesamiento inter-lenguaje: aprovechar recursos existentes en un idioma para generar soluciones en otro. Y aunque parezca magia, se puede, a pesar de que es un mundo que recién comienza a explorarse.

Una de las técnicas más conocidas para hacer esto consiste en usar, como inicio, modelos que entiendan ambos idiomas. Para esto, es importante entender cómo funcionan los modelos que procesan texto. Más concretamente, ¿cómo se codifica una palabra de manera que un modelo pueda entenderla y procesarla? Una de las técnicas más extendidas consiste en modelar el vocabulario de un idioma en una matriz, donde a cada palabra se le asigna un vector que representa cómo se relaciona con las demás. Supongamos entonces que, por un lado tenemos una matriz para el lenguaje A y un modelo ya desarrollado para ese mismo idioma, y por otra parte tenemos una matriz para un lenguaje B. Para aprovechar el modelo de A, podemos “alinear” ambas matrices, dejando los vectores en el mismo espacio, y usarlos como si fuesen el mismo idioma. Claramente, esto funciona mejor cuanto más cercanos sean los lenguajes, y cuanto más simple sea la tarea del modelo.

Otra opción consiste en traducir los datos de entrenamiento. Si tenemos muchos datos anotados en el idioma A, y queremos entrenar un modelo para el idioma B, podemos utilizar algún mecanismo de traducción automática para generar un nuevo dataset. De nuevo, la eficacia de este método dependerá de la calidad de las herramientas de traducción que tengamos disponibles, que suelen ser muy buenas para inglés e idiomas similares, pero escasean para otros idiomas.

¿Y si no tenemos traductores ni matrices para nuestro idioma? No es una pregunta simple; para el 85% de los idiomas hablados en el mundo estos recursos son prácticamente inexistentes. Hay algunas propuestas experimentales muy interesantes. Por ejemplo, una dirección consiste en construir modelos para tareas específicas, que aprendan viendo solo elementos que sean comunes a varios lenguajes. Otra alternativa es desarrollar sistemas que generen texto en los idiomas de bajos recursos, para poder ir construyendo corpora automáticamente.

Es cierto que aún queda mucho trabajo por hacer, pero tal vez en unos años veamos modelos verdaderamente políglotas.



Image Description

Paula Chocrón

NLP Data Science