'Introduction to Natural Language Processing' es un extenso tratamiento de las técnicas usadas en el campo del procesamiento del lenguaje natural, con un enfoque muy algorítmico y matemático, aunque no elude los aspectos lingüísticos o un acercamiento a su empleo en la vida real.
Un libro de texto de rango universitario y quizá menos introductorio de lo que el título anticipa. Precisa, desde luego, de una importante base matemática y del hábito de leer expresiones algebráicas no necesariamente simples, así como de una lectura muy pausada (en realidad un estudio profundo con algunos repasos) si se quiere realmente asimilar el contenido.
El libro, bastante extenso, consta de 19 capítulos y dos apéndices, estructurados de la siguiente forma:
- '1. Introduction:' Un primer capítulo introductorio con dos partes claramente diferenciadas: primero una serie de definiciones y conceptos y luego la presentación de tres temas transversales al procesamiento de lenguaje natural, a saber, aprendizaje versus conocimiento, búsqueda y aprendizaje y perspectivas relacional, composicional y distribucional.
- 'I LEARNING:' Primera parte dedicada a la clasificación de palabras y el aprendizaje y que incluye los siguientes cuatro capítulos:
- '2, Linear Text Classification:' Trata del tema de asignar una etiqueta a un texto dado y muestra métodos de naturaleza lineal. Comienza describiendo el concepto de 'saco de palabras' ('bag of words'). Luego muestra cómo se puede conseguir el etiquetado mediante Näive Bayes y alguna variante así como conceptos asociados. A continuación habla del aprendizaje discriminativo usando el perceptrón y Support Vector Machines. Luego salta a la regresión logística que combina ventajas de las dos orientaciones anteriores y termina hablando de optimización y de algunos otros temas relacionados con la clasificación.
- '3. Nonlinear Classification:' Aunque hasta no hace tanto los métodos lineales eran suficientes e incluso más adecuados, en la actualidad están funcionando bien los no lineales. El autor comienza abordando redes neuronales, cómo se diseñan y cómo aprenden y dedica un espacio específico para hablar de la redes neuronales de convolución (CNN)
- '4. Linguistic Applications of Classification:' Un poco como remate de los dos capítulos anteriores explica la aplicación específica de las técnicas de clasificación a diversas áreas lingüísticas como el análisis de sentimiento y opinión o la desambigüación del sentido de ciertas palabras. Y también aborda otras temáticas relacionadas como la evaluación de los clasificadores o la construcción de conjuntos de datos.
- '5. Learning without Supervision:' Para terminar el espacio dedicado al aprendizaje, se tratan otras formas de aprendizaje sin supervisión como el aprendizaje no supervisado abordando algoritmos como K-means o Expectation-Maximization. También habla, además, del aprendizaje semi-supervisado.
- 'II SEQUENCES AND TREES:' No se trata ahora de clasificar palabras sino de producir cadenas de palabras y a ello dedica seis capítulos:
- '6. Language Models:' Menciona labores habituales en NLP en que la salida es una secuencia de palabras como es el caso de la traducción automática, reconocimiento del habla, realización de resúmenes o sistemas de diálogo. Comienza hablando de modelos de lenguaje de n-gramas para pasar luego a las redes neuronales recurrentes (RNN). También explica cómo evaluar estos modelos.
- '7. Sequence Labeling:' En el etiquetado de secuencias se trata de asignar una etiqueta, no a una palabra, sino sobre una secuencia de ellas y se usa, por ejemplo, para asignar categorías gramaticales a palabras de una secuencia. Se presenta la forma de tratarlo como un problema de clasificación y también como de predicción de una estructura. Luego explica el algoritmo de Viterbi y también los Modelos Ocultos de Markov (HMM) o las soluciones discriminativas que usan características ('features'). Pasa luego a otros enfoques neuronales con redes recurrentes y finaliza con soluciones no supervisadas.
- '8. Applications of Sequence Labeling:' Habla de algunos usos de etiquetado de secuencias y, en concreto, aborda temas como los atributos morfosintáctcos, el reconocimiento de entidades, la tokenización, la alternancia entre idiomas y los diálogos.
- '9. Formal Language Theory:' Se ataca la teoría formal del lenguaje que define claes de lenguajes y sus características computacionales. En concreto, se tratan tres tipos de lenguajes: los lenguajes regulares (aquellos que se pueden definir mediante expresiones regulares), los libres de contexto (basados en gramáticas libres de contexto expresadas como tuplas) y los sensibles al contexto.
- '10. Context-Free Parsing:' Mediante el 'parseado' se determina si una cadena puede derivarse de una gramática libre de contexto y cómo. Se explica el parseado determinista 'bottom-up', cómo tratar con la ambiguedad, las gramáticas libres de contexto ponderadas, refinamiento de gramáticas y algunas opciones más allá del parseado libre de contexto.
- '11. Dependency Parsing:' Se trata el parseado dd dependencias, una técnica basada en grafos dirigidos para dilucidar cómo se relacionan las palabras. Se habla de la gramática de dependencia. , de cómo se parsea basándose en grafos dirigidos, el parseado de dependencia basado en transiciones y las aplicaciones del parseado de dependencias.
- 'III MEANING:' Si en la parte anterior se buscaba reconstruir la sintaxis, en los temas que siguen se atacan aspectos de semántica, de significado. El análisis semántico busca convertir lenguaje natural en representaciones significativas.
- '12. Logical Semantics:' Se comienza explicando los conceptos de significado y denotación para pasar luego a las representaciones lógicas del significado mediante lógica proposicional o lógica de primer orden. Luego se explica el parseado semántico y cómo aprenden los 'parsers' semánticos.
- '13. Predicate-Argument Semantics:' Aborda una forma más ligera de significado que es la relación predicado argumento. Se explican los roles semánticos y cómo etiquetarlos y se finaliza con la representación abstracta de significado que utiliza una estructura de grafo.
- '14. Distributional and Distributed Semantics:' Un capítulo dedicado a una técnica para encontrar significado de palabras no etiquetadas como puede ser en el caso de palabras desconocidas. La idea es que si ciertas distribuciones estadísticas de dos palabras son similares es que su significado también lo es. Explicada esa hipótesis se comentan ciertas decisiones de diseño respecto a la representación de palabras, el análisis de semántica latente y otras técnicas como el uso de los llamados 'word embeddings' en redes neuronales.
- '15. Reference Resolution:' Las referencias, como por ejemplo el caso de pronombres, son una fuente de ambigüedad, no sólo para sistemas computacionales sino también para los propios hablantes. Este capítulo aborda las técnicas de resolución de esas referencias. Primero se estudian algunas formas de referencias para luego mostrar algunos algoritmos de resolución de co-referencias y algunas representaciones usadas. Se finaliza explicando cómo evaluar la resolución de co-referencias.
- '16. Discourse:' Se finaliza esta parte hablando del discurso, es decir, textos que incluyen ya múltiples frases. Se habla fundamentalmente de la segmentación y de las relaciones.
- 'IV APPLICATIONS:' Última parte con tres capítulos para sendas áreas de aplicación:
- '17. Information Extraction:' Se habla de la extracción de entidades, relaciones y de eventos, es decir, situaciones que involucran a más de dos entidades. Luego se habla de cómo extraer información sobre situaciones hipotéticas o con un cierto nivel de probabilidad para pasar finalmente a la respuesta a preguntas y la lectura por máquinas.
- '18. Machine Translation:' Sobre traducción automática se explica cómo hacerla como una tarea, cómo evaluar traducciones y cómo hacerla con enfoques estadísticos. Luego se habla de la traducción con redes neuronales como las LSTM. Se finaliza con el problema de la decodificación y del entrenamiento.
- '19. Text Generation:' Se explican algunas variantes de la generación de texto como es el caso de la conversión de dato a texto, (por ejemplo, a partir de datos sobre el tiempo atmosférico, generar un texto que lo explique), la conversión texto a texto (como en la realización de resúmenes de textos) y diálogos (como los que exhiben chatbots y asistentes virtuales)
- 'Appendix A: Probability:' Una descripción de ciertos conceptos estadísticos, incluyendo el teorema de Bayes.
- 'Appendix B: Numerical Optimization:' Un esbozo de algoritmos de optimización como el descenso de gradiente.
'Introduction to Natural Language Processing' es un buen libro, probablemente muy bueno, con amplia cobertura de la temática del procesamiento de lenguaje natural, que aporta ejercicios y recursos adicionales y que explica con bastante corrección pero que a pesar de ello es de bastante compleja lectura porque en realidad no es un libro para leer sino para estudiar y partiendo de los fundamentos adecuados especialmente en matemáticas.
Muy recomendable, pues, para especialistas o estudiantes universitarios del ramo, pero no tanto para ejecutivos o simplemente curiosos.
Jacob Eisenstein
Jacob Eisenstein es un científico investigador en Google. Su trabajo abarca una amplia gama de materias relativas a procesamiento de lenguaje natural, con foco en sociolinguística computacional, discurso y machine learning.
Antes de incorporarse a Google, fue profesor asociado en Ciencia de los Computadores en el Georgia Institute of Technology, donde recibió el NSF CAREER Award y el Air Force Office of Scientific Research Young Investigator Award.
Antes de su estancia en Georgia Tech, Jacob fue investigador posdoctoral en Carnegie Mellon, donde inició una línea de investigación usando métodos machine learning en variables latentes, para analizar datos de medios sociales y obtener conclusiones en sociolinguística y otras áreas de las ciencias sociales.
Completó su doctorado en el MIT en 2008, ganando el George M. Sprowls dissertation award por su investigación sobre modelos computacionales del habla y gestualzación.
La investigación de Eisenstein ha sido presentada en el New York Times, National Public Radio, y la BBC.
Puedes saber más del autor visitando su página personal o visitando su cuenta en Twitter donde se identifica como @jacobeisenstein.
(Fuente: Traducción y ligera elaboración propia de su perfil en Github)
Jacob Eisenstein |
Antes de incorporarse a Google, fue profesor asociado en Ciencia de los Computadores en el Georgia Institute of Technology, donde recibió el NSF CAREER Award y el Air Force Office of Scientific Research Young Investigator Award.
Antes de su estancia en Georgia Tech, Jacob fue investigador posdoctoral en Carnegie Mellon, donde inició una línea de investigación usando métodos machine learning en variables latentes, para analizar datos de medios sociales y obtener conclusiones en sociolinguística y otras áreas de las ciencias sociales.
Completó su doctorado en el MIT en 2008, ganando el George M. Sprowls dissertation award por su investigación sobre modelos computacionales del habla y gestualzación.
La investigación de Eisenstein ha sido presentada en el New York Times, National Public Radio, y la BBC.
Puedes saber más del autor visitando su página personal o visitando su cuenta en Twitter donde se identifica como @jacobeisenstein.
Ficha técnica:
AUTOR: Jacob Eisenstein
EDITORIAL: MIT Press Ltd
AÑO: 2019
ISBN: 978-0262042840
PAGINAS: 536
PAGINAS: 536
Artículos de este blog relacionados
No hay comentarios:
Publicar un comentario