Get me outta here!

sábado, 6 de febrero de 2016

Tecnologías del Lenguaje Humano (TLH)


Que hablar ha sido uno de los primeros y más grandes logros culturales de la humanidad nadie lo discute pero tampoco se piensa en ello. Pensar, hablar y más tarde escribir, todas son acciones que requieren de una herramienta: el lenguaje. Depende de donde cayeras, será un idioma u otro, pero todos tienen una utilidad común: la comunicación, oral o escrita. Y ya que estamos, electrónica, así son los tiempos. 



Desde que el hombre ideó y construyó máquinas, seguro que alguno hubo que soñó con una que hablara y respondiera a nuestras preguntas. Pero no es hasta ahora, con la aparición y desarrollo de los ordenadores, que la cosa va en serio. Y con los algoritmos y los programas nace el procesamiento del lenguaje natural o las tecnología del lenguaje humano, en el fondo da lo mismo. 

La idea es tan sencilla como eso, que un ordenador entienda y genere comunicación. Antes debe “aprender” un lenguaje y ahí es donde entran las Tecnologías del Lenguaje Humano (TLH), el marco que engloba todos los esfuerzos por conseguir eso, una máquina parlante. Es obvio que las aplicaciones son y serán infinitas: resúmenes, extracción de datos relevantes, diagnósticos médicos, traducción automática, dictado, comercio electrónico, hasta escribir un artículo científico podría ser… 

El procesamiento del lenguaje natural (PLN) es una parte de la denominada Inteligencia Artificial que investiga y formula mecanismos computacionalmente efectivos que faciliten la interrelación entre hombre y máquina. Sin embargo, a poco que profundicemos, nos damos cuenta de que se trata de muchos problemas pequeños que, juntos, producen un problema de tamaño descomunal: nada más y nada menos que la comprensión y generación automática de lenguaje. 

Uno de los frentes atacados más tempranamente fue la traducción automática, allá por los cuarenta del siglo XX. Claro, el problema fundamental que llevamos arrastrando desde hace milenios, entendernos con el vecino. No obstante, la cosa no tuvo mucho éxito, ordenadores había pero de aquella manera. Ahora ya hablamos de clusters de ordenadores y de petaflops. Ahora sí se puede… ¿o no?
El problema del lenguaje, del idioma del que tan orgullosos estamos, es la ambigüedad. Lo que lo hace rico y hasta hermoso es su principal dificultad cuando de tratamiento automático se trata. 
Deja la comida que sobre sobre ​la mesa de la cocina, dijo llevando el sobre ​en la mano. 
Esta frase, a modo de ejemplo, nos parece hasta sencilla, pero diseñar un algoritmo que, de “sobre”, detecte que uno es un sustantivo, el otro una preposición y aquél un verbo no es cosa de un rato libre. 
O también… 
El coche es del hermano de mi amigo. El mío ​está estropeado. 
Que el “mío” está haciendo referencia al coche lo entendemos más que bien pero un programa de ordenador debe detectar que “mío” se aplica a un sustantivo, y que es coche y no “hermano” o “amigo”. 
O también… 
Me moría ​de risa. 
Aquí el problema es que esta expresión no se debe entender literalmente, todos sabemos lo que se quiere decir. Pero un ordenador no. 
Pero es que hay mucho más. De hecho, desde la antigüedad, se han definido varios tipos de ambigüedad, cada uno un problema para su procesamiento automático. En general se suele hablar de análisis: 
  • Morfológico (análisis de las palabras) 
  • Sintáctico (de la estructura sintáctica de las oraciones)
  • Semántico (del significado) 
  • Pragmático (cuando ya vamos más allá de las oraciones y las interpretamos por el contexto en el que se hallan) 
En realidad, el problema del lenguaje es que todos estos análisis dependen unos de otros en mayor o menor medida. El análisis semántico obtendría mejores resultados si dispusieramos de información pragmática; el sintáctico podría variar si supiéramos a ciencia cierta que el sentido de una palabra es uno concreto, pero para averiguar el sentido es muy recomendable realizar un análisis sintáctico previo. 
En fin, que todo es ponerse, y al principio, es natural, los primeros intentos quisieron introducir en los programas todo el conocimiento que nos inculcaron en la escuela. Métodos basados en el conocimiento se les denominó después. Básicamente son sistemas basados en reglas: “si se cumple esto, esto y esto, entonces es un verbo”. A medida que el problema se hacía más grande, más reglas y de mayor sofisticación se necesitan, a menudo apoyados en bases de conocimiento como las ontologías. 
Una ontología es un intento de estructurar el conocimiento del mundo, ese que llevamos cada uno en nuestra cabeza, en un recurso procesable que permita realizar inferencias. El caso típico: si “los bancos prestan dinero” y “Juan quiere comprarse un Ferrari”, “comprar” necesita “dinero”, “Juan necesita dinero para comprarse un Ferrari”; “Juan necesita un banco para que le preste el dinero”. Y una carretera donde aprovechar el coche pero eso ya es mucho más de lo que pretendemos. 
De lo que se dieron cuenta rápidamente es de que el esfuerzo de montar sistemas de PLN basados en conocimiento es mayúsculo. Mucha gente y mucho tiempo pensando, estructurando y escribiendo programas que capturen todo el conocimiento lingüístico necesario para una tarea concreta. Si a esto le añadimos que las lenguas son algo vivo, evolucionan y cambian, lo que hoy solucionaste mañana puede ya no ser del todo válido. 
Además, puesto que cuesta tanto, lo normal es que te centres en un dominio concreto, en un problema específico, en un área de la actividad y pensamiento humanos. Digamos “el dominio médico”. O mejor, “el dominio de las enfermedades respiratorias”. Esto hace que tu vocabulario sea mucho menos extenso, más preciso y, por tanto, más abordable desde el punto de vista computacional. 
Sin embargo, hay otra solución o aproximación: el aprendizaje automático. Recapitulemos. Para los sistemas basados en conocimiento necesitas ser un experto en la materia para trasladar a un programa informático tu sapiencia. Con el aprendizaje automático el ordenador se encarga de aprender él solo, ya no necesitas ser un experto. 
El punto de partida es simple, solo necesitas un montón, pero un montón, de ejemplos con los que nutrir la fase de entrenamiento de tu sistema. Eslo que se llama un corpus, un gran banco de ejemplos.
Veamos un caso particular, ¿cómo distinguir si la palabra "banco" se refiere a una entidad financiera o es el mueble de un parque? Pues una aproximación basada en aprendizaje automático requiere muchos ejemplos de ambos casos para que un sistema aprenda a distinguirlos por su contexto.. 
El programa se encargará de extraer todas las características que acompañan a cada aparición de banco y combinarlas mediante un determinado método que permita establecer relaciones entre el contexto y el sentido de la palabra. Para entendernos, si “dinero” aparece muchas veces alrededor de “banco” podemos asegurar, con una alta probabilidad, que su sentido es el de entidad financiera. 
Pero cuidado, estamos suponiendo que todo está bien escrito, sin faltas de ortografía, sin abreviaturas, sin jerga, con exquisita corrección gramatical. Pues no es el caso. 
Si la traducción automática lleva tantos años de desarrollo ¿por qué nos siguen haciendo gracia ciertos resultados cotidianos? Si ya hay tantas centralitas automatizadas ¿por qué seguimos enfadándonos con la “máquina” porque no hace o entiende lo que nosotros queremos? 

Las TLH, o el PLN, como lo quieras llamar,sigue siendo un problema sin resolver y al que le falta aún mucho hasta que se pueda decir que está suficientemente maduro. Hablar de tasas de éxito de no más allá del 60 % es más que habitual, y se suele decir que una tarea está “acabada”, solucionada, cuando se llega al 95 %. Ni hablar de la idea original que sacó a relucir el término “inteligencia artificial”, que un ordenador fuera capaz de comprender y generar lenguaje, de comunicarse con los humanos y hasta obedecer sin rechistar sus órdenes. 

Que quede mucho trabajo por hacer no quiere decir que no se hayan hecho ya cosas, y que hasta funcionan razonablemente. Por eso los investigadores siguen trabajando y cada día aportan nuevas soluciones a problemas cotidianos como, por ejemplo, la traducción automática. 

Pero hay más: 
  • Recuperar información, encontrar esas páginas de internet o esos documentos que contienen la información que deseamos, pero para lo que necesitamos ayuda porque es ingente la cantidad de documentos en los que buscar 
  • Extraer información, un paso más, no el documento sino directamente el dato que contiene el documento.
  • Clasificar y categorizar nuestros documentos, como en una biblioteca, por ejemplo 
  • Generar resúmenes a partir de un texto, esquematizarlos, simplificarlos 
  • Reconocer y transcribir nuestras conversaciones habladas y ejecutar acciones 
  • Pero es que también se podría 
  • Ayudar a superar las discapacidades directa o indirectamente relacionadas con el lenguaje y la comunicación 
  • Detectar, por las publicaciones en redes sociales, situaciones de riesgo como el acoso
  • Establecer sistemas de diagnóstico y prescripción automáticos para la salud 
  • Analizar las opiniones y los sentimientos para, por ejemplo, ayudar a decidirte en una compra 
Alguna de estas cosas casi es de ciencia ficción pero así se empieza. En definitiva, las TLH no tienen otro objetivo que hacernos la vida un poco más fácil y productiva. 


Referencias




0 comentarios:

Publicar un comentario