"Entre lo que pienso, lo que quiero decir, lo que creo decir, lo que digo, lo que quieres oír, lo que oyes, lo que crees entender y lo que entiendes, existen nueve posibilidades de no entenderse", dice una famosa frase. Si además uno de los interlocutores es una máquina, la complejidad y los problemas aumentan considerablemente.
A día de hoy, uno de los principales retos de la inteligencia artificial aplicada al procesamiento del lenguaje natural es hacer que los sistemas informáticos comprendan qué quiere decir su interlocutor y le respondan de manera coherente. Y, aunque la mayoría de los idiomas comparten dificultades como la ambigüedad o los localismos, no todos son igual de complicados de procesar por las máquinas.
Entendiendo los sistemas de procesamiento de lenguaje natural
Carlos Gómez, profesor de la Universidad de La Coruña e integrante del Grupo de Investigación de Lengua y Sociedad de la Información explica los distintos niveles dentro del procesamiento del lenguaje natural.
"Lo primero que se hace es un análisis morfológico para detectar la categoría de la palabra. Es decir, determinar si es un sustantivo, un verbo, etc... Esto permite un análisis sintáctico o de la estructura de la oración y qué papel desempeña cada palabra en ella." ¿Qué palabras ejercen de sujeto? ¿Cuáles de predicado?
Gómez explica que, una vez identificadas correctamente las palabras morfológicamente y en su contexto sintáctico, "se pueden hacer cosas más cercanas al usuario real, como la minería de opiniones y análisis del sentimiento o el análisis semántico". El análisis semántico por ejemplo, sabría interpretar si al utilizar la palabra estrella nos referimos a un cuerpo celeste o a una actriz famosa.
La minería de opiniones y análisis de sentimientos, por otro lado, sirve para saber si un texto genera opiniones positivas o negativas en sus receptores. "El análisis de sentimientos no funciona con precisión absoluta, pero en algunos dominios funciona bien. Las empresas están interesadas en saber cómo la gente recibe sus productos o sus servicios".
La cantidad de datos de los que se disponga hará que los sistemas de procesamiento de lenguaje natural, independientemente del idioma, sean capaces de extraer información y aprender de una forma más rápida y eficaz. Aunque sólo sea por una cuestión de volúmenes, cuantas más personas hablen un idioma, de más datos se dispondrá. En la actualidad, el español es la segunda lengua más hablada del mundo.
Ambigüedad, regionalismos e ironía
¿Qué ocurriría si le preguntamos a un asistente de voz dónde está el banco más cercano? ¿Cómo sabe si nos referimos a un banco para descansar o para sacar dinero? Según Carlos Gómez, "normalmente un ser humano no tiene problema para entender esto por el contexto. Pero ese tipo de razonamiento basado en el contexto y el sentido común para un ordenador es mucho más difícil."
Un famoso chiste sobre programadores ilustra muy bien esta situación. Una mujer le dice a su marido que vaya al supermercado y le traiga un cartón de leche y, si hay huevos, una docena. El marido regresa y aparece con una docena de cartones de leche.
"Un ser humano sabe que los huevos se compran por docenas y la leche no. Y que nadie compra doce cartones de leche. Podemos hacer que las máquinas aprendan esto, pero es todo un desafío."
Otros problemas, que también aparecen en la comunicación interpersonal, son interpretar correctamente la ironía y gestionar todas las diferentes variedades que hay del español. "El español cambia muchísimo dependiendo de la variedad regional y es algo más problemático que el inglés. Hay que preguntarse para qué español se está trabajando y hay que sacar versiones distintas para cada variedad. En inglés también se hace, pero se pueden reutilizar más recursos", afirma Gómez.
El stemming, NER y sintaxis en español
Un quebradero de cabeza importante es el stemming, es decir, la búsqueda de la raíz de las palabras.Los algoritmos de stemming consiguen que, si alguien consulta información sobre flores, pueda encontrar información sobre floristas o floristerías puesto que la raíz es la misma.
Felisa Verdejo, Catedrática de Lenguajes y Sistemas Informáticos en la UNED e investigadora del Grupo de Investigación de Procesamiento del Lenguaje Natural, comenta que en español esto es mucho más difícil que en inglés.
"En inglés funcionan bien los algoritmos de stemming, mientras que para el español, que tiene múltiples procesos de flexión, derivación y composición, así como excepciones, no funcionan igual de bien. Si quieres calidad de procesamiento de datos, tienes que hacer un análisis sintáctico."
La flexión es un proceso que permite componer palabras con una misma raíz pero distintos atributos. Por ejemplo, en la palabra rojo, tenemos la raíz roj y un morfema flexivo de género másculino (la o).
Si en lugar de crear rojo habláramos de rojito, mantendríamos la misma raíz (roj) pero le daríamos un nuevo significado añadiéndole el "ito" (rojo, pero un poco menos rojo), por lo que no hablaríamos de un cambio de género o número, sino de una modificación que afecta también a lo nos da a entender la palabra.
A la hora de componer palabras, el proceso consistiría en unir la raíz de dos palabras distintas para crear una nueva. Un ejemplo sería rojiblanco.
La dificultad en el reconocimiento de entidades nombradas o NER, por sus siglas en inglés, es otro escollo en el procesamiento del español. El NER es el proceso de reconocer una palabra cuando se refiere a una entidad. "Madrid, por ejemplo, es un nombre. Pero puede ser el nombre de una ciudad española, de una ciudad en América, de una persona, o referirse al gobierno español."
Además, tal y como afirma la investigadora, los problemas continúan a la hora de elaborar un análisis sintáctico.
"En español no hay una estructura fija de las palabras dentro de una oración como ocurre en otras lenguas, lo que genera que haya diferentes posibilidades de análisis y se requiera un mayor tratamiento semántico."
Esto hace que no baste con conocer cómo se componen las palabras o las frases, sino que haya que ir un paso más allá y adentrarse en el significado. Y, en español, es bastante complicado, ya no sólo por los dobleces y dobles significados de nuestra lengua, sino por los distintos localismos y regionalismos que hace que una misma palabra pueda tener cientos de connotaciones diferentes dependiendo del país, región o contexto.
Un ejemplo divertido pero realista es la canción "Qué difícil es hablar el español" de los artistas colombianos Inténtalo Carito, que, en sucanal de YouTube parodian la dificultad del aprendizaje de nuestra lengua y muestran los principales escollos a la hora de comprender nuestro idioma.
Otros problemas en el procesamiento del lenguaje natural
El procesamiento del lenguaje natural no es algo nuevo. Los expertos en inteligencia artificial llevan muchos años interesados en este tema con recursos dedicados a que las máquinas sean capaces de entender el lenguaje humano. Con la aparición de las redes neuronales los avances han sido evidentes.
Sin embargo, aún quedan muchos problemas por resolver. Y no todos son lingüisticos o computacionales. La inversión en investigación es claramente insuficiente en el caso de lenguas minoritarias, como el finés o el alemán. El entrenamiento de los sistemas para que se perfeccionen y lleguen a responder como un humano sigue siendo un trabajo duro y, conseguir que la gente a la que no le agrada hablar con una máquina utilice estas tecnologías todo un reto.
Pero dentro de esto, los hispanohablantes estamos de suerte. Idiomas como el chino, el turco o el árabe son, a día de hoy, más difíciles aún de procesar que el español. Y lenguas que tienen una morfología mas compleja que el español, como por ejemplo el euskera, el alemán o el finés con sus mecanismos de palabras compuestas, suponen un auténtico quebradero de cabeza por la forma en la que se crean las palabras.