Diferencia entre revisiones de «Procesamiento de lenguajes naturales»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Sin resumen de edición
m Revertidos los cambios de 201.164.170.122 a la última edición de 80.34.201.58
Línea 1: Línea 1:
El '''Procesamiento de Lenguajes Naturales''' —abreviado '''PLN''', o '''NLP''' del idioma inglés ''Natural Language Processing''— es una subdisciplina de la [[Inteligencia Artificial]] y la rama ingenieril de la [[lingüística computacional]]. El PLN se ocupa de la formulación e investigación de mecanismos eficaces computacionalmente para la comunicación entre personas o entre personas y máquinas por medio de [[lenguaje natural|lenguajes naturales]]. El PLN no trata de la comunicación por medio de lenguajes naturales de una forma abstracta, sino de diseñar mecanismos para comunicarse que sean eficaces computacionalmente —que se puedan realizar por medio de programas que ejecuten o simulen la comunicación—. Los modelos aplicados se enfocan no sólo a la comprensión del lenguaje de por sí, sino a aspectos generales cognitivos humanos y a la organización de la memoria. El lenguaje natural sirve sólo de medio para estudiar estos fenómenos.
El procesamiento del lenguaje natural (PLN) es, muy probablemente, una de las empresas más atrevidas que los científicos han querido llevar a cabo mediante la utilización de computadoras. En nuestra opinión, el PLN es una empresa difícil debido, más que a las limitaciones de las computadoras, a que, a diferencia de las leyes de la física, los mecanismos con los que las personas procesamos el lenguaje natural se desconocen en buena medida. En este artículo explicaremos lo que es es el PLN, los distintos enfoques que se han utilizado para llevarlo a cabo, así como las deficiencias y limitaciones de cada uno de estos enfoques.


== Historia ==
=Procesamiento del lenguaje natural: Enfoques y limitaciones=
El Procesamiento del Lenguaje Natural (PLN) es una de las piedras angulares tempranas de la [[inteligencia artificial]] (IA). La [[Traducción automática]], por ejemplo, nació a finales de la década de los cuarenta, antes de que se acuñara la propia expresión «Inteligencia Artificial». No obstante, el PLN ha desempeñado múltiples papeles en el contexto de la IA, y su importancia dentro de este campo ha crecido y decrecido a consecuencia de cambios tecnológicos y científicos. Los primeros intentos de traducir textos por ordenador a finales de los cuarenta y durante los cincuenta fracasaron debido a la escasa potencia de los ordenadores y a la escasa sofistificación lingüística. Sin embargo, los esfuerzos realizados en las décadas de los sesenta y los setenta para producir interfaces en lenguaje natural para bases de datos y otras aplicaciones informáticas obtuvieron un cierto grado significativo de éxito. La década de los ochenta y el principio de la de los noventa han visto resurgir la investigación en el terreno de la Traducción Automática.


== Dificultades en el procesamiento de lenguajes naturales ==
El término “Procesamiento del Lenguaje Natural” se usa normalmente, en un sentido amplio, para describir cualquier método que haga posible la manipulación del lenguaje natural por medio de computadoras [Bird, Klein, Loper, 2009]. Entendiéndose por lenguaje natural cualquier lenguaje usado por grupos humanos para comunicarse entre las personas. Ejemplos de lenguajes naturales son el español, el inglés y el portugués. Sin embargo, para ser más precisos con respecto a lo que es el PLN tomaremos la definición de Liddy [2001] que es la siguiente:
=== Ambigüedad ===
El lenguaje natural es inherentemente ambiguo a diferentes niveles:


*A nivel [[léxico]], una misma palabra puede tener varios significados, y la selección del apropiado se debe deducir a partir del contexto oracional o conocimiento básico. Muchas investigaciones en el campo del procesamiento de lenguajes naturales han estudiado métodos de resolver las ambigüedades léxicas mediante diccionarios, gramáticas, bases de conocimiento y correlaciones estadísticas.
''El PLN es un “conjunto de técnicas computacionales” bien fundadas, para representar y analizar textos en lenguaje natural en uno o más
*A nivel referencial, la resolución de [[anáfora]]s y [[catáfora]]s implica determinar la entidad lingüística previa o posterior a que hacen referencia.
“niveles de análisis lingüístico” con el objetivo de hacer posible un “procesamiento del lenguaje parecido al que hacemos las personas”,
*A nivel estructural, se requiere de la [[semántica]] para desambiguar la dependencia de los sintagmas preposicionales que conducen a la construcción de distintos [[árbol sintáctico|árboles sintácticos]]. Por ejemplo, en la frase ''Rompió el dibujo de un ataque de nervios''.
dentro de “rango de tareas y aplicaciones”.''
*A nivel pragmático, una oración, a menudo, no significa lo que realmente se está diciendo. Elementos tales como la [[Figura retórica|ironía]] tienen un papel importante en la interpretación del mensaje.

En esta definición hemos entrecomillado las nociones que consideramos clave para entender el PLN. A continuación explicaremos concisamente cada una de ellas.

==Procesamiento del lenguaje para tareas y aplicaciones particulares==

El enunciado “procesamiento del lenguaje parecido al que hacemos las personas” nos dice que el PLN es considerado una disciplina dentro de la Inteligencia Artificial (IA). Aunque el PLN tenga base en otras disciplinas como la lingüística, dado que se esfuerza en lograr un comportamiento parecido al de las personas, es apropiado considerarlo como una disciplina de la IA [Liddy, 2001].

Sin embargo la expresión “rango de tareas y aplicaciones” indica que el PLN no es una meta en sí mismo, excepto para los investigadores de la IA [Liddy, 2001]. Para el resto, el PLN es un medio mediante el que se lleva a cabo una tarea particular para una aplicación específica. En particular una tarea representa el objetivo general para el que se construye un sistema de PLN. Ejemplos de estas tareas son: la traducción automática (esta es la tarea más exigente del PLN) , la generación automática de resúmenes y la desambiguación automática. Una aplicación es la particularización de una tarea, para un dominio bien definido. Por ejemplo, la generación automática de resúmenes de las actas de las cortes federales de Canadá [Farzindar y Lapalme, 2004].

Por tanto podemos considerar que el PLN está orientado hacia objetivos prácticos, es decir, hacia la resolución de problemas específicos, muchos de ellos relacionados con la aplicación particular para la que se utiliza [Liddy, 2001].

==Análisis lingüístico==

La siguiente noción que hay que tener clara es la de “niveles de análisis lingüístico”. Básicamente el análisis lingüístico es el proceso mediante el que una computadora puede comprender e interpretar un texto [Ferrari y Biagioli, 1986]. Este proceso, tal y como Dale [2001] establece, se puede descomponer en varias etapas o niveles que reflejan las distinciones lingüísticas establecidas entre sintaxis, semántica y pragmática. Esto implica que los enunciados que componen un texto son primero analizados en términos de su sintaxis. El análisis sintáctico provee un orden y una estructura apropiada para un análisis posterior en términos de semántica. Por último viene una etapa de análisis pragmático donde el significado del texto es completado de acuerdo al contexto.

Aunque está ampliamente reconocido que no es fácil separar claramente el procesamiento del lenguaje en cajas que representen a cada estrato, esta separación, según Dale [2000], sirve de ayuda pedagógica y constituye la base para modelos arquitectónicos que hacen manejable computacionalmente la tarea de analizar el lenguaje natural. Sin embargo esta división tripartita es demasiado simplista, sobre todo si tomamos en cuenta el procesamiento de datos lingüísticos reales, así como el estado actual del PLN. La figura 1, tomada de Dale [2000] presenta una división más realista del proceso de análisis.

[[Image:Fases_PLN.png|thumb|center|alt=Etapas del análisis en el procesamiento del lenguaje natural.| Figura 1. Etapas del análisis en el procesamiento del lenguaje natural.]]

==Enfoques para PLN==

La expresión “conjunto de técnicas computacionales” indica que existen diversos métodos, técnicas o enfoques computacionales para realizar el análisis lingüístico de un texto. Aunque no existe consenso sobre la categorización de estos enfoques, en este trabajo tomaremos la clasificación de Liddy [2001] que establece las siguientes categorías entre los distintos enfoques: a) simbólicos; b) estadísticos o empíricos; c) conexionistas e d) híbridos. Aquí sólo abordaremos los enfoques simbólicos y estadísticos, ya que en nuestra línea de trabajo no se abordan los dos últimos.

===Métodos simbólicos para PLN===

Los métodos simbólicos fueron los primeros en ser utilizados para PLN. El objetivo de una técnica simbólica es la representación explícita del conocimiento implicado en un texto escrito en lenguaje natural. Este conocimiento se encapsula en una base de conocimiento y es utilizado por un sistema de PLN como un medio para resolver el problema de procesar el lenguaje natural de manera automática (ver figura 2). Aunque a lo largo de la historia del PLN se han desarrollado varios métodos simbólicos, en este apartado sólo abordaremos los que, en nuestra opinión, mejor representan este enfoque.

[[Image:Enfoques_Simbolicos_PLN.png|thumb|center|alt=Representación gráfica del enfoque simbólico para PLN.| Figura 2. Representación gráfica del enfoque simbólico para PLN.]]


No podemos introducir los métodos simbólicos sin antes explicar lo que es una “base de conocimiento” y un “sistema de PLN”. En particular una “base de conocimiento” es un repositorio donde está representado de forma explícita y comprensible el conocimiento que determina el comportamiento de un sistema basado en conocimiento [Mark, Dukes-Schlossberg y Kerber, 1995]. Según Wong y Mylopoulos [1977], una base de conocimiento contiene grandes cantidades de conocimiento abstracto, por ejemplo conocimiento acerca de las relaciones entre departamentos donde un empleado y su administrador trabajan pero también conocimiento concreto, por ejemplo el departamento de cada empleado. La figura 3 muestra la representación gráfica de una base de conocimiento.

[[Image:Base_De_Conocimiento.png|thumb|center|alt=Representación gráfica de una base de conocimiento.|Figura 3. Representación gráfica de una base de conocimiento.]]

Esta definición tan laxa de lo que es una base de conocimiento se debe a que no existe en la literatura una definición general de este término. Además, tal como veremos más adelante, cada enfoque simbólico entiende de manera diferente este término y representa de manera distinta el conocimiento.
En cuanto al término “sistema de PLN”, dado que éste utiliza una base de conocimiento para realizar el análisis de un texto, podemos considerarlo un sistema basado en conocimiento.

En particular, aunque todos los programas contienen conocimiento acerca de un problema, lo que hace a un sistema basado en conocimiento diferente de los programas convencionales es que estos representan el conocimiento necesario para resolver un problema en un formato de alto nivel (i.e., la base conocimiento), separado físicamente de las instrucciones que componen un programa [Walker et al., 1987]. Adicionalmente la misma noción de sistema nos dice que un “sistema de PLN” divide un problema complejo en partes, donde cada parte representa la solución a un subproblema particular [Pfleeger, 2005]. Por tanto, tomando la figura 1 como base, podemos decir que un “sistema de PLN” está compuesto, por lo menos , por un conjunto de analizadores. La figura 4 muestra la representación gráfica de esta idea.

[[Image:Sistema_PLN_Enfoque_Simbolico.png|thumb|center|alt=Representación gráfica de un sistema de PLN basado en el enfoque simbólico.|Figura 4. Representación gráfica de una base de conocimiento.]]

====El enfoque simbólico-formal====

Un primer ejemplo de método simbólico es el que denominamos simbólico-formal. Este enfoque se basa en el uso de la lógica matemática como herramienta para procesar el lenguaje natural. Un ejemplo de lógica usada para PLN es la lógica de predicados de primer orden (LPPO). La LPPO, mediante una sintaxis y una semántica , nos permite expresar ciertas propiedades de conjuntos de objetos [Poesio, 2000]. Por tanto, con LPPO podemos representar la información expresada en los enunciados de un texto en lenguaje natural, estableciendo que un objeto es miembro de un conjunto.

Por ejemplo, “Juan es un marinero” puede representarse en LPPO por medio de un predicado “marinero” que denota un conjunto de objetos y el término “juan”. La fórmula atómica marinero(juan) expresa el enunciado anterior. Dentro de este enfoque, “juan” tiene que formar parte de la base de conocimiento del mundo que maneja el sistema para que “marinero(juan)” pueda tomar el valor “verdadero”.

Adicionalmente, usando predicados de mayor aridad , podemos asignar una interpretación semántica a enunciados que establecen que ciertos objetos están relacionados de alguna manera. Por ejemplo el enunciado “Juan está casado con María”, en LPPO, podría traducirse como “casado(juan,maría)”.En LPPO también podemos representar enunciados para establecer que algo no es parte de un conjunto, como en el enunciado “Juan no está casado” que se representaría como: ~casado(juan).

La interpretación semántica de enunciados para afirmar que un conjunto está incluido en otro también se puede representar en LPPO. Por ejemplo el enunciado “los perros son mamíferos” puede expresarse por medio del cuantificador universal ∀ de la siguiente forma: ∀x(perro(x) → mamífero(x)). La semántica de enunciados que establecen que un conjunto no es vacío también se puede representar en LPPO por medio del cuantificador existencial ∃. Verbigracia, el enunciado “tengo un carro” puede expresarse como: ∃x(carro(x) ∧ esDueñoDe(hablante,x)).

Usando estos mismos principios no sólo podemos representar oraciones de un lenguaje natural sino también construir una base de conocimiento. En este enfoque, una base de conocimiento es una colección de fórmulas lógicas que proveen una descripción parcial de la realidad [Brodie, Mylopoulos y Schmidt, 1984]. En otras palabras, una base de conocimiento es una representación lógica del universo de discurso (UdD) de un sistema de PLN cuya función es proporcionar al sistema una manera de decidir la veracidad o falsedad de una afirmación sobre un UdD particular [Hirst, 1992]. La figura 5 muestra la representación gráfica del enfoque simbólico-formal.


Para resolver estos tipos de ambigüedades y otros, el problema central en el PLN es la traducción de entradas en lenguaje natural a una representación interna sin ambigüedad, como [[árbol sintáctico|árboles de análisis]].


=== Detección de separación entre las palabras ===
En la lengua hablada no se suelen hacer pausas entre palabra y palabra. El lugar en el que se debe separar las palabras a menudo depende de cuál es la posibilidad que mantenga un sentido lógico tanto gramatical como contextual. En la lengua escrita, idiomas como el [[idioma chino mandarín|chino mandarín]] tampoco tienen separaciones entre las palabras.


=== Recepción imperfecta de datos ===
Acentos extranjeros, regionalismos o dificultades en la producción del habla, errores de mecanografiado o expresiones no gramaticales, errores en la lectura de textos mediante [[OCR]]


== Componentes ==
== Componentes ==

Revisión del 00:51 6 nov 2009

El Procesamiento de Lenguajes Naturales —abreviado PLN, o NLP del idioma inglés Natural Language Processing— es una subdisciplina de la Inteligencia Artificial y la rama ingenieril de la lingüística computacional. El PLN se ocupa de la formulación e investigación de mecanismos eficaces computacionalmente para la comunicación entre personas o entre personas y máquinas por medio de lenguajes naturales. El PLN no trata de la comunicación por medio de lenguajes naturales de una forma abstracta, sino de diseñar mecanismos para comunicarse que sean eficaces computacionalmente —que se puedan realizar por medio de programas que ejecuten o simulen la comunicación—. Los modelos aplicados se enfocan no sólo a la comprensión del lenguaje de por sí, sino a aspectos generales cognitivos humanos y a la organización de la memoria. El lenguaje natural sirve sólo de medio para estudiar estos fenómenos.

Historia

El Procesamiento del Lenguaje Natural (PLN) es una de las piedras angulares tempranas de la inteligencia artificial (IA). La Traducción automática, por ejemplo, nació a finales de la década de los cuarenta, antes de que se acuñara la propia expresión «Inteligencia Artificial». No obstante, el PLN ha desempeñado múltiples papeles en el contexto de la IA, y su importancia dentro de este campo ha crecido y decrecido a consecuencia de cambios tecnológicos y científicos. Los primeros intentos de traducir textos por ordenador a finales de los cuarenta y durante los cincuenta fracasaron debido a la escasa potencia de los ordenadores y a la escasa sofistificación lingüística. Sin embargo, los esfuerzos realizados en las décadas de los sesenta y los setenta para producir interfaces en lenguaje natural para bases de datos y otras aplicaciones informáticas obtuvieron un cierto grado significativo de éxito. La década de los ochenta y el principio de la de los noventa han visto resurgir la investigación en el terreno de la Traducción Automática.

Dificultades en el procesamiento de lenguajes naturales

Ambigüedad

El lenguaje natural es inherentemente ambiguo a diferentes niveles:

  • A nivel léxico, una misma palabra puede tener varios significados, y la selección del apropiado se debe deducir a partir del contexto oracional o conocimiento básico. Muchas investigaciones en el campo del procesamiento de lenguajes naturales han estudiado métodos de resolver las ambigüedades léxicas mediante diccionarios, gramáticas, bases de conocimiento y correlaciones estadísticas.
  • A nivel referencial, la resolución de anáforas y catáforas implica determinar la entidad lingüística previa o posterior a que hacen referencia.
  • A nivel estructural, se requiere de la semántica para desambiguar la dependencia de los sintagmas preposicionales que conducen a la construcción de distintos árboles sintácticos. Por ejemplo, en la frase Rompió el dibujo de un ataque de nervios.
  • A nivel pragmático, una oración, a menudo, no significa lo que realmente se está diciendo. Elementos tales como la ironía tienen un papel importante en la interpretación del mensaje.

Para resolver estos tipos de ambigüedades y otros, el problema central en el PLN es la traducción de entradas en lenguaje natural a una representación interna sin ambigüedad, como árboles de análisis.

Detección de separación entre las palabras

En la lengua hablada no se suelen hacer pausas entre palabra y palabra. El lugar en el que se debe separar las palabras a menudo depende de cuál es la posibilidad que mantenga un sentido lógico tanto gramatical como contextual. En la lengua escrita, idiomas como el chino mandarín tampoco tienen separaciones entre las palabras.

Recepción imperfecta de datos

Acentos extranjeros, regionalismos o dificultades en la producción del habla, errores de mecanografiado o expresiones no gramaticales, errores en la lectura de textos mediante OCR

Componentes

  • Análisis morfológico. El análisis de las palabras para extraer raíces, rasgos flexivos, unidades léxicas compuestas y otros fenómenos.
  • Análisis sintáctico. El análisis de la estructura sintáctica de la frase mediante una gramática de la lengua en cuestión.
  • Análisis semántico. La extracción del significado de la frase, y la resolución de ambigüedades léxicas y estructurales.
  • Análisis pragmático. El análisis del texto más allá de los límites de la frase, por ejemplo, para determinar los antecedentes referenciales de los pronombres.
  • Planificación de la frase. Estructurar cada frase del texto con el fin de expresar el significado adecuado.
  • Generación de la frase. La generación de la cadena lineal de palabras a partir de la estructura general de la frase, con sus correspondientes flexiones, concordancias y restantes fenómenos sintácticos y morfológicos.

Aplicaciones

Las principales tareas de trabajo en el PLN son:

Véase también

Enlaces externos

Referencias