2011-04-08 31 views
9

Estoy buscando información sobre algoritmos para procesar oraciones de texto o seguir una estructura al crear oraciones que son válidas en un lenguaje humano normal como el inglés. Me gustaría saber si hay proyectos trabajando en este campo que pueda aprender o comenzar a usar.Algoritmo de inteligencia artificial para escribir oraciones?

Por ejemplo, si le doy un nombre a un programa, le proporcioné un diccionario de sinónimos (para palabras relacionadas) y parte de la oración (para que entendiera dónde pertenecía cada palabra en una oración) - podría crear un azar, oración válida?

Estoy seguro de que hay muchas subsecciones de este tipo de investigación, por lo que cualquier pista sobre esto sería genial.

Respuesta

1

Escribir oraciones aleatorias no es tan difícil. Los ejemplos de gramática simple en inglés de cualquier libro de texto sintáctico se pueden ejecutar a la inversa para generar oraciones sin sentido gramaticalmente correctas.

Otra forma es la palabra-tupla-paseo aleatorio, popularizada por la antigua farsa revista BYTE, o cosas por el estilo http://www.perlmonks.org/index.pl?node_id=94856

9

Esto se llama NLG (Generación de Lenguaje Natural), aunque esto es principalmente la tarea de generar texto que describe un conjunto de datos. También hay mucha investigación sobre generación de oraciones completamente aleatorias también.

Un punto de partida es usar cadenas de Markov para generar oraciones. Cómo se hace esto es que tienes una matriz de transición que dice qué tan probable es la transición entre cada parte del discurso. También tiene la parte de la oración de inicio y finalización más probable. Pon todo esto junto y puedes generar secuencias probables de partes de discurso.

Ahora, está lejos de haber terminado, esto en primer lugar no ofrecerá un muy buen resultado ya que solo está considerando la probabilidad entre palabras adyacentes (también llamadas bi-grams), entonces lo que quiere hacer es extender esto para buscar, por ejemplo, en la matriz de transición entre tres partes del discurso (esto hace una matriz 3D y te da trigramas). Puede extenderlo a 4 gramos, 5 gramos, etc. dependiendo de la potencia de procesamiento y si su corpus puede llenar dicha matriz.

Por último, necesita arreglar cosas tales como acuerdo de objeto (sujeto-verbo-acuerdo, adjetivo-verbo-acuerdo (no en inglés), etc.) y tiempo, para que todo sea congruente.

14

El campo que está buscando se llama la generación de lenguaje natural, un subcampo de procesamiento del lenguaje natural http://en.wikipedia.org/wiki/Natural_language_processing

generación frase es o muy fácil o muy difícil, dependiendo de lo bien que se desea que las frases sean. Actualmente, no hay programas que puedan generar oraciones 100% razonables sobre los sustantivos dados (incluso con un tesauro), si eso es lo que quieres decir.

Si, por otro lado, estarías satisfecho con tonterías que a veces no eran gramaticales, entonces podrías probar un generador de oraciones basado en n-gramas. Estas solo cadenas de palabras que tienden a aparecer en secuencia, y los generadores de 3-4 gramos se ven bastante bien a veces (aunque los reconocerá como lo que genera una gran cantidad de correo no deseado).

Aquí es una introducción a los conceptos básicos de la generación basada en n-gramas, utilizando NLTK: http://www.nltk.org/book/ch02.html#generating-random-text-with-bigrams

+0

¡El segundo enlace necesita autenticación! – Skynet

3

Sí. Hay algo de trabajo que trata de resolver problemas en NLG con técnicas de IA. Hasta donde yo sé, actualmente no existe un método que pueda usar para ningún uso práctico.

Si tienes los antecedentes, te sugiero que te familiarices con un trabajo de Alexander Koller de la Universidad de Saarland. Él describe cómo codificar NLG a PDDL. El artículo principal que querrá leer es "Generación de frases como un problema de planificación".

Si no tiene ningún fondo en NLP, simplemente busque los cursos en línea o los materiales del curso de Michael Collings o Dan Jurafsky.

Cuestiones relacionadas