¿Cuáles son buenos puntos de partida para alguien interesado en el procesamiento del lenguaje natural? [cerrado]

StackOverflow https://stackoverflow.com/questions/212219

  •  03-07-2019
  •  | 
  •  

Pregunta

Pregunta

Así que recientemente se me ocurrieron algunos posibles proyectos nuevos que tendrían que tratar de derivar el "significado" del texto enviado y generado por los usuarios.

El procesamiento del lenguaje natural es el campo que se ocupa de este tipo de problemas, y después de algunos investigación inicial Encontré el OpenNLP Hub y colaboraciones universitarias como el intentar proyectar . Y stackoverflow tiene esto .

Si alguien pudiera vincularme con algunos buenos recursos, desde documentos de investigación y textos introductorios hasta apis, ¡sería más feliz que un niño de 6 años abriendo sus regalos de Navidad!

Actualizar

A través de una de sus recomendaciones, he encontrado opencyc ( 'el más grande y más grande del mundo base de conocimiento general completa y motor de razonamiento de sentido común '). Aún más sorprendente aún, hay un proyecto que es una versión destilada de opencyc llamada UMBEL . Cuenta con datos semánticos en la sintaxis rdf / owl / skos n3.

También me topé con antlr , un generador de analizador para 'construir reconocedores, intérpretes, compiladores , y traductores de descripciones gramaticales '.

Y aquí tengo una pregunta, que enumera toneladas de Datos libres y abiertos .

¡Gracias comunidad stackoverflow!

¿Fue útil?

Solución

Llamada difícil, PNL es un campo mucho más amplio de lo que la mayoría de la gente piensa que es. Básicamente, el lenguaje se puede dividir en varias categorías, lo que requerirá que aprendas cosas totalmente diferentes.

Antes de comenzar, déjame decirte que dudo que tengas algún éxito notable (como profesional, al menos) sin tener un título en algún campo (muy relacionado). Hay mucha teoría involucrada, la mayor parte es algo seco y difícil de aprender. Necesitarás mucha resistencia y sobre todo: tiempo.

Si estás interesado en el significado del texto, bueno, esa es la próxima gran cosa. Se prevé que los motores de búsqueda semánticos inicien la Web 3.0, pero aún estamos lejos de "llegar". La extracción de la lógica de un texto depende de varios pasos:

  • Tokenización, fragmentación
  • Desambiguación a nivel léxico (el tiempo vuela como una flecha, pero la fruta vuela como un plátano).
  • Análisis sintáctico
  • Análisis morfológico (tiempo, aspecto, caso, número, todo eso)

Una pequeña lista, fuera de mi cabeza. Hay más :-), y muchos más detalles para cada punto. Por ejemplo, cuando digo "análisis", ¿qué es esto? Hay muchos diferentes algoritmos de análisis, y hay tantos formalismos de análisis. Entre los más poderosos se encuentran Gramática del árbol adyacente y Gramática de la estructura de frases dirigida por la cabeza . Pero ambos apenas se usan en el campo (por ahora). Por lo general, tratará con un enfoque generativo a medias y tendrá que realizar un análisis morfológico usted mismo.

Pasar de allí a la semántica es un gran paso. Una interfaz de Sintaxis / Semántica depende tanto del marco semántico sintáctico como empleado, y aún no hay una solución de trabajo única. En el lado semántico, hay una semántica generativa clásica, luego hay Teoría de la representación del discurso , semántica dinámica , y muchos más. Incluso el formalismo lógico en el que todo se basa todavía no está bien definido. Algunos dicen que uno debería usar la lógica de primer orden, pero eso no parece suficiente; luego está la lógica intensional, como la usa Montague, pero eso parece demasiado complejo y computacionalmente inviable. También hay lógica dinámica (Groenendijk y Stokhof han sido pioneros en este tema. ¡Muy bien!) Y muy recientemente, este verano en realidad, Jeroen Groenendijk presentó un nuevo formalismo, Inquisitivo Semántica , también muy interesante.

Si desea comenzar en un nivel muy simple, lea Blackburn and Bos ( 2005) , ¡es una gran cosa, y la introducción de facto a la semántica computacional! Recientemente extendí su sistema para cubrir la teoría de la partición de las preguntas (¡la respuesta a las preguntas es una bestia!), Según lo propuesto por Groenendijk y Stokhof (1982), pero desafortunadamente, la teoría tiene una complejidad de O (n²) sobre el dominio de los individuos . Mientras lo hacía, encontré que la implementación de B & amp; B era un poco, erhm ... hackish, en algunos lugares. Aún así, realmente te ayudará a sumergirte en la semántica computacional, y sigue siendo una muestra impresionante de lo que se puede hacer. Además, merecen puntos extra por implementar una gramática que se establece en Pulp Fiction (la película).

Y mientras estoy en eso, recoge Prolog. Gran parte de la investigación en semántica computacional se basa en Prolog. Learn Prolog Now! es una buena introducción. También puedo recomendar "The Art of Prolog" y "Prolog Programming in Depth" de Covington y " Procesamiento de lenguaje natural para programadores Prolog " ;, el primero de los cuales está disponible de forma gratuita en línea.

Otros consejos

Chomsky es totalmente la fuente equivocada para buscar PNL (y él mismo lo diría enfáticamente) - vea: " Métodos estadísticos y lingüísticos " por Abney.

Jurafsky y Martin, mencionados anteriormente, es una referencia estándar, pero yo mismo prefiero Manning y Schütze . Si eres serio con la PNL, probablemente querrás leer ambas. Hay videos de uno de los cursos de Manning disponibles online .

Si pasa por Prolog hasta el capítulo de DCG en Learn Prolog Now! Como mencionó anteriormente el Sr. Dimitrov, tendrá un buen comienzo para introducir algo de semántica en su sistema, ya que Prolog le brinda una forma muy simple de mantener una base de datos de conocimiento y creencias, que puede actualizarse mediante preguntas y respuestas.

Con respecto a la literatura, tengo una recomendación importante para usted: agotar y comprar Procesamiento del habla y el lenguaje por Jurafsky & amp; Martín. Es más o menos el libro sobre PNL (el primer capítulo está disponible en línea); utilizado en un millón de cursos universitarios, pero también muy legible para los no lingüistas y orientado a la práctica, al mismo tiempo que profundiza en los problemas lingüísticos. Realmente no puedo recomendarlo lo suficiente. Los capítulos 17, 18 y 21 parecen ser lo que estás buscando (14, 15 y 18 en la primera edición); te muestran una notación simple lambda que se traduce bastante bien a Prolog DCG's con características.

Oh, por cierto, en conseguir los maestros en lingüística; Si te gusta la semántica NL, prefiero tomar todos los cursos relacionados con la inteligencia artificial que puedas encontrar (aunque cualquier curso en " semántica lingüística, lógica, semántica lógica, DRT , LFG / HPSG / CCG, análisis de NL, teoría lingüística formal, etc. no dolería ...)

La lectura de la literatura original de Chomsky no es realmente útil; por lo que sé, no hay implementaciones actuales que directamente correspondan a sus teorías, todo lo útil de él está prácticamente subsumido por otras teorías (y cualquiera que permanezca cerca de los lingüistas por cualquier razón de tiempo) Absorber el conocimiento de Chomsky por ósmosis).

Recomiendo encarecidamente jugar con el NLTK y leer el Libro NLTK . El NLTK es muy poderoso y fácil de ingresar.

Podría intentar leer un poco sobre gramática estructurada de frases , que es básicamente la matemática Detrás de mucho lenguaje se procesa. En realidad no es tan pesado, ya que se basa en gran medida en la teoría de conjuntos y gráficos. Lo estudié hace muchas lunas como parte de un curso de matemáticas discreto, y creo que hay muchas buenas referencias disponibles en esta etapa.

Editar: no tanto como esperaba en google, aunque este parece una buena fuente de aprendizaje.

Uno de los primeros exploradores de PNL es Noam Chomsky; Escribió pequeños libros sobre el tema en los años 50 y 70. Puede encontrar esa lectura atractiva.

Cycorp tiene una breve descripción de cómo su base de conocimientos de Cyc deriva significado a partir de oraciones.

Al utilizar una base de conocimiento masiva de hechos comunes, el sistema puede determinar el análisis más lógico de una oración.

Un lugar más sencillo para comenzar con los bloques de construcción es el aspecto de la documentación de un paquete que intenta hacerlo. Recomiendo Python [Natural Language Toolkit (NLTK) 1 , particularmente debido a su libro gratuito, bien escrito , que está lleno de ejemplos. No te llevará a lo que quieres (lo que es un problema difícil para la IA), pero te dará una buena base. NLTK tiene analizadores, particiones, gramáticas libres de contexto y más.

Esto es realmente difícil. Comenzaría obteniendo al menos un Máster en Lingüística, y luego trabajaría para obtener mi doctorado en informática, concentrándome en la PNL.

El problema es que la mayoría de nosotros no entendemos qué es el idioma. Y sin esa comprensión, es muy difícil implementar una solución.

Otros comentarios dan algunas lecturas, que probablemente estén bien si quieres comenzar a jugar con un pequeño subconjunto del problema, pero para encontrar una solución realmente sólida, entonces no hay atajos. Necesitas la formación académica en ambas disciplinas.

Una introducción legible muy agradable es The Language Instinct de Steven Pinker. Entra en el material de Chomsky y también cuenta historias interesantes desde el ángulo de la biología evolutiva. Podría valer la pena comenzar con algo así antes de sumergirse en los documentos de Chomsky y el trabajo relacionado, si eres nuevo en el tema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top