'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 siguentes 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 dialogos.
- '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 sigificado medante 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 Labguage 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.
|