VISITAS:

lunes, 23 de enero de 2012

Introducción al procesamiento del lenguaje natural (I)

Empiezo con éste, una serie de artículos sobre procesamiento del lenguaje natural. Este es el primero que servirá de introducción. Trataré temas como análisis de palabras (autómatas, expresiones regulares, transductores, N-gramas, part-of-speech tagging, modelos de Markov), análisis sintáctico (gramáticas formales, parseado sintáctico, parseado estadístico, unificación) y análisis semántico (representación del significado, semántica computacional, semántica léxica, semántica léxica computacional, discurso).
Si todo va bien, serán muchos artículos durante bastante tiempo. Empecemos por tanto introduciendo el procesamiento del lenguaje natural (NLP) con sistemas informáticos.

La idea de dar a los ordenadores la capacidad de procesar el lenguaje humano no es nueva. Se trata de un campo interdisciplinar que abarca: estadística, computación, almacenamiento masivo, teoría de la información, aprendizaje automático, lingüística computacional, etc. El objetivo de este campo es conseguir que los ordenadores ejecuten tareas útiles que involucran al lenguaje humano. Ejemplos de sistemas o aplicaciones serían: agentes conversacionales, traducción automática, respuesta a preguntas, extracción de información, chequeo ortográfico y gramatical, reconocimiento de voz, generación automática de texto, etc.

CONOCIMIENTOS UTILIZADOS EN NLP
La principal diferencia entre NLP y otras aplicaciones de proceso de datos es que NLP utiliza conocimientos del lenguaje. Estos conocimientos del lenguaje se pueden resumir en:
  • Fonética y fonología: conocimiento sobre los sonidos. Cómo se pronuncian las palabras en términos de secuencias de sonidos y cómo estos sonidos se generan acústicamente.
  • Morfología: conocimiento de los componentes de cada palabra. Cómo se forma el plural, las distintas personas y tiempos verbales.
  • Sintaxis: conocimiento de las relaciones estructurales entre las palabras de una frase. No todas las secuencias de palabras son válidas, existen unas reglas que hay que cumplir. Además, intercambiar el orden de ciertas palabras, puede cambiar completamente el significado de una frase.
  • Semántica: Conocimiento del significado de cada palabra.
  • Pragmática: Conocimiento sobre cómo el contexto influye en el significado.
  • Discurso: Conocimiento sobre unidades lingüísticas más grandes que una frase. Es decir, cómo afecta lo que se ha dicho en frases anteriores al significado de la frase actual.

AMBIGÜEDAD
Un aspecto común a todos los conocimientos utilizados en NLP (fonética, fonología, morfología, sintaxis, semántica, pragmática y discurso) es que todos intentan resolver ambigüedades.
Los modelos y algoritmos del NLP presentan diversas formas de resolver estas ambigüedades.

MODELOS Y ALGORITMOS
Afortunadamente, todas las clases de conocimiento mencionadas pueden ser capturadas utilizando un número relativamente pequeño de modelos y teorías. Además estos modelos son conocidos sobradamente en la ciencia informática.
Los modelos más importantes son: máquinas de estados, sistemas de reglas, lógica, modelos probabilísticos y modelos espacio-vectoriales. Estos modelos llevan a una serie de algoritmos que se utilizarán para implementar aplicaciones NLP. Veamos rápidamente cada unos de estos modelos.
Las máquinas de estados son modelos formales que consisten en estados, transiciones entre estados y entradas (eventos). Se utilizan en fonología, morfología y sintaxis.
Los sistemas de reglas son gramáticas (regulares o libres de contexto). Se utilizan en fonología, morfología y sintaxis.
Los modelos basados en lógica (de primer orden o de predicados) se han utilizado habitualmente para modelar semántica y pragmática.
Los modelos probabilísticos se pueden utilizar para mejorar las cualidades de todos los demás modelos (máquinas de estados, reglas, lógica). La ventaja de los modelos probabilísticos es su capacidad para resolver muchos problemas de ambigüedad dando una probabilidad a cada una de las soluciones posibles.
Finalmente, los modelos espacio-vectoriales están basados en el álgebra lineal y se utilizan en el tratamiento del significado de las palabras.

En cualquiera de estos modelos, el procesamiento del lenguaje implica buscar en un espacio de estados que representan hipótesis sobre una entrada. Por ejemplo, en reconocimiento de voz, se busca en un espacio de secuencias de sonidos para encontrar la palabra correcta. En análisis sintáctico, se busca en un espacio de árboles sintácticos.

LENGUAJE, IDEAS Y COMPRENSIÓN
Muchos expertos opinan que cuando la capacidad de los ordenadores para procesar el lenguaje sea comparable a la que tenemos los humanos, eso será señal de que las máquinas son realmente inteligentes. Esta creencia se basa en el hecho de que el uso efectivo del lenguaje está directamente relacionada con nuestras habilidades cognitivas.
Turing en 1950 propuso la siguiente prueba. Tres participantes, dos personas y un ordenador. Una de las personas, el entrevistador, habla con dos terminales. Detrás de uno de ellos está la otra persona y tras el otro está el ordenador. Para ganar, el entrevistador debe adivinar detrás de qué terminal está el ordenador. La persona tras el terminal debe convencer al entrevistador que él es el humano. El ordenador tratará de engañar al entrevistador para que llegue a creer que él es realmente humano. El tiempo de la entrevista es de cinco minutos.
Afortunadamente, para los propósitos y objetivos del NLP, no es importante si el ordenador es inteligente o no.

ESTADO DEL ARTE
Estamos en un momento en que el NLP puede ser algo apasionante. Los recursos de computación y almacenamiento son muy baratos y podríamos decir que casi ilimitados, incluso para un usuario medio. La web es una fuente de información masiva que crece día a día.
Estos son ejemplos de aplicaciones funcionando hoy día que reflejan esta tendencia:
  • Reserva de viajes con agentes conversacionales
  • Sistemas de navegación GPS que reconocen las indicaciones de voz del conductor
  • Sistemas de búsqueda en vídeos que analizan millones de grabaciones de audio por reconocimiento de voz
  • Buscadores multilenguaje (Google)
  • Analizadores automáticos de artículos
  • Agentes virtuales que enseñan a los niños, por ejemplo a leer
  • Análisis de opiniones de usuarios en blogs, foros y grupos de usuarios







No hay comentarios:

Publicar un comentario