Procesamiento natural del lenguaje

El procesamiento del lenguaje natural (PNL) es un subcampo de ciencias de la computación, ingeniería de la información e inteligencia artificial relacionada con las interacciones entre las computadoras y los lenguajes humanos (naturales), en particular, cómo programar las computadoras para procesar y analizar grandes cantidades de datos en lenguaje natural.

Los desafíos en el procesamiento del lenguaje natural con frecuencia incluyen el reconocimiento de voz, la comprensión del lenguaje natural y la generación de lenguaje natural.

Historia
La historia del procesamiento del lenguaje natural generalmente comenzó en la década de 1950, aunque se puede encontrar trabajo de períodos anteriores. En 1950, Alan Turing publicó un artículo titulado «Inteligencia» que proponía lo que ahora se llama la prueba de Turing como criterio de inteligencia.

El experimento de Georgetown en 1954 involucró la traducción automática de más de sesenta oraciones rusas al inglés. Los autores afirmaron que dentro de tres o cinco años, la traducción automática sería un problema resuelto. Sin embargo, el progreso real fue mucho más lento, y después del informe ALPAC en 1966, que encontró que la investigación de diez años no había cumplido con las expectativas, la financiación para la traducción automática se redujo drásticamente. Poco más investigación en traducción automática se llevó a cabo hasta finales de la década de 1980, cuando se desarrollaron los primeros sistemas estadísticos de traducción automática.

Algunos sistemas de procesamiento de lenguaje natural notablemente exitosos desarrollados en la década de 1960 fueron SHRDLU, un sistema de lenguaje natural que trabaja en «mundos de bloques» restringidos con vocabularios restringidos, y ELIZA, una simulación de un psicoterapeuta Rogeriano, escrita por Joseph Weizenbaum entre 1964 y 1966. Sin información sobre el pensamiento o la emoción humana, ELIZA a veces proporcionaba una interacción sorprendentemente similar a la humana. Cuando el «paciente» superó la base de conocimientos muy pequeña, ELIZA podría proporcionar una respuesta genérica, por ejemplo, respondiendo a «Me duele la cabeza» con «¿Por qué dices que te duele la cabeza?».

Durante la década de 1970, muchos programadores comenzaron a escribir «ontologías conceptuales», que estructuraban la información del mundo real en datos comprensibles por computadora. Ejemplos son MARGIE (Schank, 1975), SAM (Cullingford, 1978), PAM (Wilensky, 1978), TaleSpin (Meehan, 1976), QUALM (Lehnert, 1977), Politics (Carbonell, 1979) y Plot Units (Lehnert 1981 ). Durante este tiempo, se escribieron muchos chatterbots incluyendo PARRY, Racter y Jabberwacky.

Hasta la década de 1980, la mayoría de los sistemas de procesamiento de lenguaje natural se basaban en conjuntos complejos de reglas escritas a mano. Sin embargo, a partir de finales de los años 80, hubo una revolución en el procesamiento del lenguaje natural con la introducción de algoritmos de aprendizaje automático para el procesamiento del lenguaje. Esto se debió tanto al aumento constante del poder computacional (ver la ley de Moore) como a la disminución gradual del predominio de las teorías chomskyanas de la lingüística (por ejemplo, la gramática transformacional), cuyos fundamentos teóricos desalentaron el tipo de lingüística de corpus que subyace en el enfoque de aprendizaje automático. al procesamiento del lenguaje. Algunos de los algoritmos de aprendizaje automático más antiguos, como los árboles de decisión, produjeron sistemas de reglas rígidas similares a las reglas escritas a mano existentes. Sin embargo, el etiquetado de parte del discurso introdujo el uso de modelos ocultos de Markov en el procesamiento del lenguaje natural, y cada vez más, la investigación se ha centrado en los modelos estadísticos, que toman decisiones suaves y probabilísticas basadas en adjuntar pesos de valor real a las características que componen la entrada. datos. Los modelos de lenguaje de caché en los que se basan muchos sistemas de reconocimiento de voz ahora son ejemplos de dichos modelos estadísticos. Dichos modelos generalmente son más robustos cuando se les da una entrada desconocida, especialmente una entrada que contiene errores (como es muy común en los datos del mundo real), y producen resultados más confiables cuando se integran en un sistema más grande que comprende múltiples subtareas.

Muchos de los éxitos iniciales notables se produjeron en el campo de la traducción automática, debido especialmente al trabajo en IBM Research, donde se desarrollaron modelos estadísticos cada vez más complicados. Estos sistemas pudieron aprovechar los corpus textuales multilingües existentes que habían sido producidos por el Parlamento de Canadá y la Unión Europea como resultado de leyes que exigían la traducción de todos los procedimientos gubernamentales a todos los idiomas oficiales de los sistemas de gobierno correspondientes. Sin embargo, la mayoría de los otros sistemas dependían de corpus específicamente desarrollados para las tareas implementadas por estos sistemas, lo cual era (y con frecuencia sigue siendo) una limitación importante en el éxito de estos sistemas. Como resultado, se ha investigado mucho sobre métodos para aprender de manera más efectiva a partir de cantidades limitadas de datos.

Las investigaciones recientes se han centrado cada vez más en los algoritmos de aprendizaje no supervisados ​​y semi-supervisados. Dichos algoritmos pueden aprender de datos que no se han anotado a mano con las respuestas deseadas, o usando una combinación de datos anotados y no anotados. En general, esta tarea es mucho más difícil que el aprendizaje supervisado, y generalmente produce resultados menos precisos para una cantidad dada de datos de entrada. Sin embargo, hay una enorme cantidad de datos no anotados disponibles (incluido, entre otras cosas, todo el contenido de la World Wide Web), que a menudo puede compensar los resultados inferiores si el algoritmo utilizado tiene una complejidad de tiempo suficientemente baja para Sé práctico.

En la década de 2010, el aprendizaje por representación y los métodos de aprendizaje automático de estilo de red neuronal se generalizaron en el procesamiento del lenguaje natural, debido en parte a una serie de resultados que muestran que tales técnicas pueden lograr resultados de vanguardia en muchas tareas del lenguaje natural, por ejemplo en modelado de lenguaje, análisis, y muchos otros. Las técnicas populares incluyen el uso de incrustaciones de palabras para capturar las propiedades semánticas de las palabras, y un aumento en el aprendizaje de extremo a extremo de una tarea de nivel superior (por ejemplo, responder preguntas) en lugar de depender de una serie de tareas intermedias separadas (por ejemplo, etiquetado de parte del discurso y análisis de dependencia). En algunas áreas, este cambio ha implicado cambios sustanciales en la forma en que se diseñan los sistemas de PNL, de modo que los enfoques basados ​​en redes neuronales profundas pueden verse como un nuevo paradigma distinto del procesamiento estadístico del lenguaje natural. Por ejemplo, el término traducción automática neuronal (NMT) enfatiza el hecho de que los enfoques basados ​​en el aprendizaje profundo para la traducción automática aprenden directamente las transformaciones secuencia a secuencia, obviando la necesidad de pasos intermedios como la alineación de palabras y el modelado del lenguaje que se usaron en estadística. traducción automática (SMT).

NLP basada en reglas vs. estadística
En los primeros días, muchos sistemas de procesamiento de idiomas se diseñaron codificando a mano un conjunto de reglas, por ejemplo, escribiendo gramáticas o ideando reglas heurísticas para la derivación. Sin embargo, esto no es en general robusto a la variación del lenguaje natural.

Desde la llamada «revolución estadística» a fines de la década de 1980 y mediados de la década de 1990, gran parte de la investigación sobre el procesamiento del lenguaje natural se ha basado en gran medida en el aprendizaje automático.

El paradigma del aprendizaje automático requiere, en cambio, el uso de la inferencia estadística para aprender automáticamente tales reglas a través del análisis de grandes corpora de ejemplos típicos del mundo real (un corpus (plural, «corpora») es un conjunto de documentos, posiblemente con anotaciones humanas o informáticas. ).

Muchas clases diferentes de algoritmos de aprendizaje automático se han aplicado a tareas de procesamiento de lenguaje natural. Estos algoritmos toman como entrada un gran conjunto de «características» que se generan a partir de los datos de entrada. Algunos de los algoritmos más antiguos, como los árboles de decisión, produjeron sistemas de reglas rígidas, similares a los sistemas de reglas escritas a mano que eran comunes. Sin embargo, cada vez más, la investigación se ha centrado en modelos estadísticos, que toman decisiones suaves y probabilísticas basadas en la asignación de ponderaciones de valor real a cada función de entrada. Dichos modelos tienen la ventaja de que pueden expresar la certeza relativa de muchas respuestas posibles diferentes en lugar de solo una, produciendo resultados más confiables cuando dicho modelo se incluye como componente de un sistema más grande.

Los sistemas basados ​​en algoritmos de aprendizaje automático tienen muchas ventajas sobre las reglas producidas a mano:

Los procedimientos de aprendizaje utilizados durante el aprendizaje automático se centran automáticamente en los casos más comunes, mientras que cuando se escriben reglas a mano, a menudo no es obvio hacia dónde debe dirigirse el esfuerzo.
Los procedimientos de aprendizaje automático pueden hacer uso de algoritmos de inferencia estadística para producir modelos que sean robustos a entradas desconocidas (por ejemplo, que contengan palabras o estructuras que no se hayan visto antes) y a entradas erróneas (por ejemplo, con palabras incorrectamente escritas o palabras omitidas accidentalmente). En general, el manejo de tales aportes con las reglas escritas a mano o, más generalmente, la creación de sistemas de reglas escritas a mano que toman decisiones flexibles, es extremadamente difícil, propenso a errores y requiere mucho tiempo.
Los sistemas basados ​​en el aprendizaje automático de las reglas se pueden hacer más precisos simplemente proporcionando más datos de entrada. Sin embargo, los sistemas basados ​​en reglas escritas a mano solo pueden hacerse más precisos al aumentar la complejidad de las reglas, lo cual es una tarea mucho más difícil. En particular, hay un límite a la complejidad de los sistemas basados ​​en reglas hechas a mano, más allá de la cual los sistemas se vuelven cada vez más inmanejables. Sin embargo, crear más datos para ingresar a los sistemas de aprendizaje automático simplemente requiere un aumento correspondiente en el número de horas-hombre trabajadas, generalmente sin aumentos significativos en la complejidad del proceso de anotación.

Principales evaluaciones y tareas.
La siguiente es una lista de algunas de las tareas más investigadas en el procesamiento del lenguaje natural. Tenga en cuenta que algunas de estas tareas tienen aplicaciones directas en el mundo real, mientras que otras más comúnmente sirven como subtareas que se utilizan para ayudar a resolver tareas más grandes.

Si bien las tareas de procesamiento del lenguaje natural están estrechamente relacionadas, con frecuencia se subdividen en categorías para mayor comodidad. Una división gruesa se da a continuación.

Sintaxis

Inducción gramatical
Genera una gramática formal que describe la sintaxis de un idioma.

Lemmatización

Segmentación morfológica
Separe las palabras en morfemas individuales e identifique la clase de los morfemas. La dificultad de esta tarea depende en gran medida de la complejidad de la morfología (es decir, la estructura de las palabras) del lenguaje que se está considerando. El inglés tiene una morfología bastante simple, especialmente una morfología de inflexión, y por lo tanto, a menudo es posible ignorar esta tarea completamente y simplemente modelar todas las formas posibles de una palabra (por ejemplo, «abrir, abrir, abrir, abrir») como palabras separadas. En idiomas como el turco o el meitei, un idioma indio muy aglutinado, sin embargo, este enfoque no es posible, ya que cada entrada del diccionario tiene miles de posibles formas de palabras.

Etiquetado de parte del discurso
Dada una oración, determina la parte del discurso para cada palabra. Muchas palabras, especialmente las comunes, pueden servir como múltiples partes del habla. Por ejemplo, «libro» puede ser un sustantivo («el libro sobre la mesa») o un verbo («reservar un vuelo»); «conjunto» puede ser un sustantivo, verbo o adjetivo; y «fuera» puede ser cualquiera de al menos cinco partes diferentes del habla. Algunos idiomas tienen más ambigüedad que otros. [Dudoso – discuta] Los idiomas con poca morfología de inflexión, como el inglés, son particularmente propensos a tal ambigüedad. El chino es propenso a tal ambigüedad porque es un lenguaje tonal durante la verbalización. Dicha inflexión no se transmite fácilmente a través de las entidades empleadas dentro de la ortografía para transmitir el significado deseado.

Análisis
Determine el árbol de análisis (análisis gramatical) de una oración dada. La gramática de los lenguajes naturales es ambigua y las oraciones típicas tienen múltiples análisis posibles. De hecho, quizás sorprendentemente, para una oración típica puede haber miles de parsis potenciales (la mayoría de los cuales parecerán completamente absurdos para un humano). Hay dos tipos principales de análisis, análisis de dependencia y análisis de constituyentes. El análisis de dependencia se enfoca en las relaciones entre las palabras en una oración (marcando cosas como objetos primarios y predicados), mientras que el análisis de la unidad se enfoca en construir el árbol de análisis usando una gramática libre de contexto probabilístico (PCFG).

Related Post

Romper la oración (también conocida como desambiguación del límite de la oración)
Dado un trozo de texto, encuentra los límites de la oración. Los límites de las oraciones a menudo están marcados por puntos u otros signos de puntuación, pero estos mismos caracteres pueden servir para otros fines (por ejemplo, abreviaturas de marcado).

Tallo
Segmentacion de palabras
Separa un trozo de texto continuo en palabras separadas. Para un idioma como el inglés, esto es bastante trivial, ya que las palabras generalmente están separadas por espacios. Sin embargo, algunos idiomas escritos como el chino, el japonés y el tailandés no marcan los límites de las palabras de esa manera, y en esos idiomas la segmentación del texto es una tarea importante que requiere el conocimiento del vocabulario y la morfología de las palabras en el idioma. A veces, este proceso también se usa en casos como la creación de bolsas de palabras (BOW) en la minería de datos.

Extracción de terminología
El objetivo de la extracción de terminología es extraer automáticamente términos relevantes de un corpus determinado.

Semántica

Semántica léxica
¿Cuál es el significado computacional de palabras individuales en contexto?

Máquina traductora
Traducir automáticamente el texto de un idioma humano a otro. Este es uno de los problemas más difíciles, y es miembro de una clase de problemas denominados coloquialmente «AI-complete», es decir, que requieren todos los diferentes tipos de conocimiento que poseen los humanos (gramática, semántica, hechos sobre el mundo real, etc.) .) para resolver correctamente.

Reconocimiento de entidad nombrada (NER)
Dado un flujo de texto, determine qué elementos en el texto se asignan a nombres propios, como personas o lugares, y cuál es el tipo de cada nombre (por ejemplo, persona, ubicación, organización). Tenga en cuenta que, aunque el uso de mayúsculas puede ayudar a reconocer entidades nombradas en idiomas como el inglés, esta información no puede ayudar a determinar el tipo de entidad nombrada y, en cualquier caso, a menudo es inexacta o insuficiente. Por ejemplo, la primera palabra de una oración también está en mayúscula, y las entidades nombradas a menudo abarcan varias palabras, solo algunas de las cuales están en mayúscula. Además, muchos otros idiomas en las escrituras no occidentales (por ejemplo, chino o árabe) no tienen ninguna capitalización en absoluto, e incluso los idiomas con mayúscula pueden no usarla constantemente para distinguir nombres. Por ejemplo, el alemán usa mayúsculas en todos los nombres, sin importar si son nombres, y el francés y el español no ponen en mayúscula los nombres que sirven como adjetivos.

Generación de lenguaje natural
Convierta información de bases de datos informáticas o intentos semánticos en lenguaje humano legible.

Comprensión del lenguaje natural
Convierta trozos de texto en representaciones más formales, como las estructuras lógicas de primer orden que son más fáciles de manipular por los programas informáticos. La comprensión del lenguaje natural implica la identificación de la semántica pretendida de la semántica posible múltiple que puede derivarse de una expresión del lenguaje natural que usualmente toma la forma de notaciones organizadas de conceptos del lenguaje natural. La introducción y creación del metamodelo del lenguaje y la ontología son soluciones eficientes pero empíricas. Se espera una formalización explícita de la semántica del lenguaje natural sin confusiones con suposiciones implícitas como la suposición de mundo cerrado (CWA) frente a la suposición de mundo abierto, o la subjetiva / afirmativa de sí / no contra objetiva para la construcción de una base de formalización semántica .

Reconocimiento óptico de caracteres (OCR)
Dada una imagen que representa texto impreso, determine el texto correspondiente.

Respuesta a la pregunta
Ante una pregunta en lenguaje humano, determina su respuesta. Las preguntas típicas tienen una respuesta correcta específica (como «¿Cuál es la capital de Canadá?»), Pero a veces también se consideran preguntas abiertas (como «¿Cuál es el significado de la vida?»). Trabajos recientes han analizado preguntas aún más complejas.

Reconociendo la vinculación textual
Dados dos fragmentos de texto, determinar si uno es verdadero implica el otro, implica la negación del otro, o permite que el otro sea verdadero o falso.

Extracción de relaciones
Dado un trozo de texto, identifique las relaciones entre las entidades nombradas (por ejemplo, quién está casado con quién).

Análisis de sentimiento (ver también análisis de sentimiento multimodal)
Extraiga información subjetiva generalmente de un conjunto de documentos, a menudo utilizando revisiones en línea para determinar la «polaridad» sobre objetos específicos. Es especialmente útil para identificar tendencias de la opinión pública en las redes sociales, con el propósito de marketing.

Segmentación y reconocimiento de temas.
Dado un trozo de texto, sepárelo en segmentos, cada uno de los cuales está dedicado a un tema, e identifique el tema del segmento.

Desambiguación del sentido de las palabras
Muchas palabras tienen más de un significado; Tenemos que seleccionar el significado que tenga más sentido en el contexto. Para este problema, generalmente se nos da una lista de palabras y sentidos de palabras asociados, por ejemplo, de un diccionario o de un recurso en línea como WordNet.

Discurso

Resumen automático
Producir un resumen legible de un trozo de texto. A menudo se utiliza para proporcionar resúmenes de texto de un tipo conocido, como artículos en la sección financiera de un periódico.
Resolución de la referencia

Dada una oración o un fragmento de texto más grande, determine qué palabras («menciones») se refieren a los mismos objetos («entidades»). La resolución de la anáfora es un ejemplo específico de esta tarea, y se ocupa específicamente de hacer coincidir los pronombres con los nombres o nombres a los que se refieren. La tarea más general de la resolución de la referencia también incluye la identificación de las llamadas «relaciones puente» que involucran expresiones de referencia. Por ejemplo, en una oración como «Entró en la casa de John por la puerta principal», «la puerta principal» es una expresión de referencia y la relación de puente que debe identificarse es el hecho de que la puerta a la que se hace referencia es la puerta principal de John casa (en lugar de alguna otra estructura a la que también se pueda hacer referencia).

Análisis del discurso
Esta rúbrica incluye una serie de tareas relacionadas. Una tarea es identificar la estructura del discurso del texto conectado, es decir, la naturaleza de las relaciones del discurso entre oraciones (por ejemplo, elaboración, explicación, contraste). Otra tarea posible es reconocer y clasificar los actos de habla en una porción de texto (p. Ej., Pregunta sí-no, pregunta de contenido, afirmación, afirmación, etc.).

Habla

Reconocimiento de voz
Dado un clip de sonido de una persona o personas que hablan, determine la representación textual del discurso. Esto es lo contrario de texto a voz y es uno de los problemas extremadamente difíciles denominados coloquialmente «AI-complete» (ver más arriba). En el habla natural, casi no hay pausas entre las palabras sucesivas y, por lo tanto, la segmentación del habla es una subtarea necesaria del reconocimiento de voz (ver más abajo). Tenga en cuenta también que en la mayoría de los idiomas hablados, los sonidos que representan letras sucesivas se mezclan entre sí en un proceso denominado coarticulación, por lo que la conversión de la señal analógica en caracteres discretos puede ser un proceso muy difícil.

Segmentacion del habla
Dado un clip de sonido de una persona o personas que hablan, sepárelo en palabras. Una subtarea de reconocimiento de voz y típicamente agrupada con ella.

Texto a voz
Dado un texto, transforma esas unidades y produce una representación hablada. El texto a voz se puede usar para ayudar a los discapacitados visuales.

Share