Procesamiento del lenguaje natural
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/6800614/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/6800618/pasted-from-clipboard.png)
Jacobo G. González León
@jacoboggleon
Temario
Evaluación
Método de aprendizaje | Porcentaje (%) |
---|---|
Examen escrito sobre el dominio y compresión teórico-empírica. | 20 |
Prácticas y participación con propuestas de casos de estudio. | 20 |
Tareas individuales y colaborativas. | 20 |
Proyecto integrador en el que se apliquen y demuestren los conocimientos adquiridos. | 40 |
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/6830521/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/6830525/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/6830533/pasted-from-clipboard.png)
Bibliografía
- Bird, S., Klein, E., & Loper, E. (2009). Natural language processing with Python. Beijing: O'Reilly.
- Green, G. (2012). Pragmatics and Natural Language Understanding. Hoboken: Taylor and Francis.
- James, G., Witten, D., Hastie, T., & Tibshirani, R. An introduction to statistical learning.
- Jurafsky, D., & Martin, J. (2009). Speech and language processing. Upper Saddle River, N.J.: Pearson Prentice Hall.
- Manning, C., & Schütze, H. (2003). Foundations of statistical natural language processing. Cambridge, Mass.: MIT Press.
- Mitkov, R. (2005). The Oxford handbook of computational linguistics.
- Srinivasa-Desikan, B. Natural language processing and computational linguistics.
Introducción al Procesamiento del Lenguaje Natural (PLN)
Temas
- Antecedentes
- La representación, análisis y generación del conocimiento lingüístico
- Métodos estadísticos vs. Métodos basados en reglas.
![](https://opentechai.blog/wp-content/uploads/2017/11/AI-Sciences-Position-With-Interfaces.png)
PLN \(\subseteq\) AI
¿Qué es la Inteligencia?
Decisiones sobre qué hacer basados en lo que conocemos (o creemos) sobre el mundo, de manera inconsciente y sin esfuerzo
¿Qué es el comportamiento inteligente?
Inteligencia Artificial
El estudio de el comportamiento inteligente logrado a través de medios computacionales. La representación del conocimiento y el razonamiento son parte de la IA que se enfoca en cómo un agente usa lo que sabe para decidir qué hacer
Es el estudio de pensar como un proceso computacional
![](https://thumbs.gfycat.com/GoodnaturedSnoopyHellbender-size_restricted.gif)
¿Qué significa estos conceptos y por qué serían útiles para construir sistemas inteligentes?
Inteligencia Artificial
Estructuras simbólicas
Procesos computacionales
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7779859/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7779861/pasted-from-clipboard.png)
Representar conocimiento
Razonar con estas estructuras simbólicas
Conocimiento
"Chelita sabe que ..."
![](https://i.pinimg.com/originals/65/90/5b/65905b45a0bc28b9c1470e05a64b977b.jpg)
"Chelita sabe que Vicente vendrá a la fiesta"
Relación entre conocedores o conocedoras
Y una idea 💡 expresada por una oración declarativa
(o preposición)
"Chelita sabe que \(p\)"
"Chelita sabe que es cierto que \(p\)"
Se ha formado un juicio de algún tipo y se ha dado cuenta de que el mundo es de una manera y no de otra.
Conocimiento
De cualquier manera, lo que interesa sobre la preposición es la verdad:
![](https://i.pinimg.com/originals/65/90/5b/65905b45a0bc28b9c1470e05a64b977b.jpg)
Si Chelita espera que Vicente vaya a la fiesta, entonces Chelita espera que el mundo sea de una manera y no de otra.
Conocimiento
Existen oraciones que implican conocimiento pero que que no mencionan explícitamente preposiciones
![](https://i.pinimg.com/originals/65/90/5b/65905b45a0bc28b9c1470e05a64b977b.jpg)
"Chelita sabe cómo llegar ahí"
Podemos imaginar preposiciones implícitas
"Chelita sabe para llegar a la fiesta hay que seguir recto y dar vuelta a la derecha ..."
"Chelita sabe programar desde que ..."
O adquirir entendimiento de alguien o algo
Conocimiento
![](https://i.pinimg.com/originals/65/90/5b/65905b45a0bc28b9c1470e05a64b977b.jpg)
"Chelita {sabe, confía, sospecha, opina, espera, duda,...} que ..."
Las actitudes preposicionales son relaciones entre agentes y preposiciones difieren sólo en el nivel de convicción que se expresa:
Representación
Relación entre dos dominios
Abstracción
Símbolos
representante
representación
![](https://i.pinimg.com/564x/09/70/1c/09701c0eda8fc4df801fbb63bba0c224.jpg)
mariposa
El uso de símbolos formales para representar una colección de proposiciones creídas por algún agente
Representación del conocimiento
![](https://i.pinimg.com/originals/a7/3c/e6/a73ce64d3e25d69eb20d6a5a68fa53e9.gif)
Simbolo o grafema
\(1\)
Alfabeto
\(\{0, 1\}\)
Palabra (string)
\(001101\)
Lenguaje
Sea \(L_1\): el conjunto de palabras (strings) de longitud 2:
\(\{00, 01, 10, 11\}\)
Ejemplo
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7777810/pasted-from-clipboard.png)
IA (cómputo)
Razonamiento
Manipulación
formal
Colección de preposiciones o símbolos
Nuevas preposiciones o símbolos
Razonamiento
Manipulación:
suma
1011
0010
1101
Razonamiento
Manipulación:
inferencia lógica
Vicente le gusta a Chelita
Vicente irá a la fiesta
Alguien que le gusta a Chelita irá a la fiesta
¿Por qué representación del conocimiento y razonamiento?
¿Por qué es relevante para los sistemas inteligentes?
![](https://images.chesscomfiles.com/uploads/v1/images_users/tiny_mce/SamCopeland/phpuTejFE.gif)
Se movió de esta manera porque creía que el rey era vulnerable, pero podía atacar la torre.
Se movió de esta manera porque creía que su dama era vulnerable, pero aún quería atacar la torre.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7777810/pasted-from-clipboard.png)
Interprete
Ejemplo: ¿Por qué se movió de cierta manera?
¿Por qué representación del conocimiento y razonamiento?
![](https://images.chesscomfiles.com/uploads/v1/images_users/tiny_mce/SamCopeland/phpuTejFE.gif)
Se movió de esta manera porque el procedimiento de evaluación \(P\) que usa la función de evaluación estática \(Q\) devolvió un valor de \(+7\) después de una búsqueda minimax alfa-beta a la profundidad \(4\)
Equivocado nivel de detalle
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7777810/pasted-from-clipboard.png)
Programa
Ejemplo: ¿Por qué se movió de cierta manera?
Métodos basados en reglas
... razonamiento sobre el conocimiento explícitamente representado
The bathroom is dry. The hall is wet. There is a leak in the kitchen.
IF the bathroom is dry AND the hall is wet THEN there is a leak in the kitchen.
Hecho (fact)
Regla (rule)
Análisis lingüístico
Lingüística
Análisis lingüístico
... estrategias lingüísticas en las oraciones desde una perspectiva de lingüística computacional
Análisis lingüístico
El señor llevaba un pañuelo azul
El señor llevaba un pañuelo azul
El señor llevaba un pañuelo azul
sustantivo, masc., sin.
artículo, masc. sin.
verbo, 3ra persona
determinante indefinido
sustantivo común, masc. sin.
adjetivo, masc. sin.
Análisis morfológico:
Análisis sintáctico:
núcleo del sujeto
modificador directo
núcleo del predicado
objeto directo
El señor llevaba un pañuelo azul
Análisis semántico:
persona adulta
mover o desplazar consigo a una persona o una cosa hacia un lugar diferente del que uno está.
pieza cuadrada de tela fina, generalmente de algodón, que se usa principalmente para limpiarse la nariz, enjugarse las lágrimas o secarse el sudor de la frente y suele llevarse encima.
Métodos estadísticos
Varios modelos y técnicas estadísticos (en el lenguaje) utilizados en diversas tareas computacionales como:
- etiquetado POS;
- modelado y análisis gramatical probabilístico:
- semántica estadística;
- desambiguación semántica (sentidos de palabras, alcance del cuantificador, etc.);
- reconocimiento de entidades;
- modelado del discurso;
- extracción de conocimientos del texto.
Bases computacionales
Temas
- Teoría computacional
- Modelos de lenguaje
- Procesadores de lenguaje
- Algoritmos de n-gramas
- Problemas intersantes {Desambiguación léxica, Resolución de anáforas}
Diseñar modelos de cómputo y sus capacidades
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7776092/pasted-from-clipboard.png)
Automata de estados finitos
Teoría de la computación
¿Qué es computar?
Definiciones
Simbolo o grafema
\(a,...,z \)
Alfabeto
\(\{a,...,z \}\)
Palabra (string)
\(001101\)
Lenguaje
Sea \(L_1\): el conjunto de palabras (strings) de longitud 2:
\(\{00, 01, 10, 11\}\)
finita secuencia de símbolos
finita conjuto de símbolos
¿Qué es computar?
Definiciones
Simbolo o grafema
\(1, 0\)
Alfabeto
\(\{0, 1\}\)
Palabra (string)
\(001101\)
Lenguaje
Sea \(L_1\): el conjunto de palabras (strings) de longitud 2:
\(\{00, 01, 10, 11\}\)
finita secuencia de símbolos
finita conjuto de símbolos
¿Qué es computar?
Problema de decisión:
un algoritmo para decidir si un enunciado dado se puede demostrar a partir de los axiomas usando las reglas de la lógica
Tesis de Alan Turing (1936)
Máquina de Turing
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7776291/Untitled_Diagram-Page-1__5_.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7776294/Untitled_Diagram-Page-2__8_.png)
0
1
0
1
0
1
1
0
1
Máquina de Turing
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7776291/Untitled_Diagram-Page-1__5_.png)
0
0
1
1
0
0
1
0
1
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7776291/Untitled_Diagram-Page-1__5_.png)
0
1
0
0
1
0
0
0
1
A
B
+
C
entradas
salida
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7776303/Untitled_Diagram-Page-2__9_.png)
proceso
Tesis Church-Turing
¿Se tendrán mayor poder de cómputo si ...
- ... se tienen más cintas?
- ¿... se tiene una infinita secuencia de símbolos (palabra)?
- ¿... se tienen más alfabetos que sólo \(\{0,1\}\)?
- ¿... la cabecera se mantiene en la misma posición?
- ¿... se permite el no determinismo?
(no regresa el mismo resultado)
R1 = todas las variaciones son equivalentes en capacidad de cómputo
R2 = una función es computable de manera realista (o algorítmica) si y solo si es computable por una máquina de Turing
¿Qué es un algoritmo?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7777808/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7777810/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7777810/pasted-from-clipboard.png)
matemáticas
cómputación
¿Qué es un algoritmo?
... procedimiento paso a paso para realizar alguna tarea en un período de tiempo finito
¿Qué es un estructura de datos?
... es una forma sistemática de organizar y acceder a los datos.
espacio
¿Cómo analizar un algoritmo?
Metodología general: definición
Un algoritmo es una función \(f(n)\) que caracteriza el tiempo de ejecución en términos del tamaño de entrada \(n\)
Ejemplo:
- El algoritmo \(A\) se ejecuta en un tiempo proporcional a \(n\)
- Dado dos algoritmos \(A\) y \(B\), donde \(A\) se ejecuta en el tiempo proporcional a \(n\) y \(B\) se ejecuta en el tiempo proporcional a \(n^2\), entonces preferiremos \(A\) a \(B\), ya que la función \(n\) crece a menor tasa que la función \(n^2\).
Modelo de computación
Conjunto de operaciones primitivas de alto nivel que son independientes del lenguaje de programación utilizado y pueden identificarse también en el pseudocódigo
- Asignar un valor a una variable
- Llamar a un método
- Realizar una operación aritmética
- Comparar dos números
- Indexación en una estructura de datos
- Seguir una referencia de objeto
- Retorno de un método
Modelo RAM (Random Access Machine)
\(w={w_1,w_2,... }\)
la memoria almacena una palabra (word)
?
acceso aleatorio a la memoria via una operación primitiva
Modelo de computación
Metodología general: pseudocódigo
Ejemplo: encontrar el elemento máximo en un arreglo \(A\) con \(n \in \Z\) elementos enteros
Algorithm arrayMax(A, n): Input: An array A storing n ≥ 1 integers. Output: The maximum element in A. currentMax ← A[0] for i ← 1 to n − 1 do if currentMax < A[i] then currentMax ← A[i] return currentMax
Algoritmo
¿Cómo analizar un algoritmo?
Ejemplo: encontrar el elemento máximo en un arreglo \(A\) con \(n \in \Z\) elementos enteros
Algorithm arrayMax(A, n): Input: An array A storing n ≥ 1 integers. Output: The maximum element in A. currentMax ← A[0] for i ← 1 to n − 1 do if currentMax < A[i] then currentMax ← A[i] return currentMax
\(+2\) (Indexado y asignación)
\(+1\) (Asignación)
\(+2(n-1)\) (Indexado y comparación)
\(+2(n-1)\) (Indexado y asignación)
\(+1\) (Retorno)
\(+n\) (Comparación)
\(i<n\)
\(i+=1\)
\(+2(n-1)\) (Suma y asignación)
¿Cómo analizar un algoritmo?
Ejemplo: encontrar el elemento máximo en un arreglo \(A\) con \(n \in \Z\) elementos enteros
Tiempo de ejecución \(t(n)\) del algoritmo arrayMax(A, n):
\(2 + 1 + n + 4(n − 1) + 1 = 5n\)
\(2 + 1 + n + 6(n − 1) + 1 = 7n-2\)
Mejor caso
Peor caso
cuando \(A [0]\) es el elemento máximo, por lo que la variable \(currentMax\) nunca se reasigna
cuando los elementos se ordenan en orden creciente, de modo que la variable \(currentMax\) se reasigna en cada iteración del bucle \(for\).
Conceptos lingüísticos básicos
Sintáxis <- estructura de la oración
Morfología <- forma de palabras
Semántica <- significado de palabras
Conceptos lingüísticos básicos
Categorías gramaticales o sintácticas
a.k.a. partes de la oración (parts of speech, POS)
\(\text{sustantivo}\): personas, animales, conceptos y cosas.
\(\text{adjetivo}\): propiedades de los \(\text{sustantivos}\)
\(\text{verbo}\): expresa una acción tomada
\(\text{El}\) \(\text{perro}\) \( \begin{Bmatrix} astuto \\ inteligente \\ intrépido \\ dots \end{Bmatrix} \) \(\text{está}\) \(\text{en el parque}\)
Ejemplo:
\(sustantivo\) \(+\) \(adjetivo\) \(+\) \(verbo\)
Oración:
Conceptos lingüísticos básicos
Clases de palabras
\(\text{There}\) \(\text{is}\) \(\text{a}\) \(\text{sweet}\) \(\text{candy}\)
Muchas palabras pueden tener muchas POS:
\(\text{Too much boiling will}\) \(\text{candy}\) \(\text{the}\) \(\text{molasses}\)
verbo
sustantivo
Categorías gramaticales o sintácticas
Conceptos lingüísticos básicos
Categorías léxicas o sintácticas
Categorías abiertas o léxicas:
aquellas como sustantivos, verbos y adjetivos que tienen varios miembros (clases) y a las que comúnmente se agregan nuevas palabras.
Categorías cerradas o funcionales:
tales como preposiciones y determinantes que tienen sólo unos pocos miembros, y los miembros de los cuales normalmente tienen un uso gramatical claro.
Las distintas partes del discurso de una palabra se enumeran en un diccionario, también conocido como léxico (lexicon).
Conceptos lingüísticos básicos
Esquemas de marcado gramatical
<p><s>And then he left.</s>
<s>He did not say another word.</s></p>
Categorías léxicas o sintácticas
SGML (Standard Generalized Markup Language) es un lenguaje general que permite definir una gramática para los textos.
Conceptos lingüísticos básicos
POS tags
Categorías léxicas o sintácticas
Conceptos lingüísticos básicos
Categorías de palabras (morfología)
En cualquier texto dado, encontraremos palabras y formas de palabras que no hemos visto antes y que no están en nuestro diccionario precompilado.
Muchas de estas nuevas palabras están relacionadas morfológicamente con palabras conocidas. Entonces, si entendemos los procesos morfológicos, podemos inferir mucho sobre las propiedades sintácticas y semánticas de las palabras nuevas.
Sintáxis
Morfología
Semántica
Conceptos lingüísticos básicos
Categorías de palabras (morfología)
Morfemas léxicos o lexemas
Construcción teórica que representa el significado unitario y las propiedades sintácticas compartidas de un grupo de formas de palabras.
Inferencia estadística para NLP
Datos
Inferencia
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7894581/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7894583/pasted-from-clipboard.png)
\(P(x|x_1)\)
iid
Inferencia estadística para NLP
Modelo de lenguaje (language modeling)
El perro callejero está a punto de _____
predecir la siguiente palabra
Aplicaciones:
- Reconocedores
- Analizadores
- Traductores
- Generadores
Inferencia estadística para NLP
Modelo de lenguaje (language modeling)
El perro callejero está a punto de _____
predecir la siguiente palabra: clasificación
suposiciones de independencia:
en los datos o, no hay dependencia entre características, o la dependencia es lo suficientemente menor como para que podamos ignorarla.
\(sustantivo\) \(+\) \(adjetivo\) \(+\) \(verbo\)
Inferencia estadística para NLP
Modelo de lenguaje (language modeling)
\(P(w_{n}|w_1,\dots,w_{n-1})\)
Modelo n-gram
\(P(w_{n}|w_{n-1})\)
\(P(\text{the}|\text{its water is so transparent that})=\frac{C(\text{its water is so transparent the})}{C(\text{its water is so transparent that})}\)
Ejemplo:
Markov assumption
Función de probabilidad
Frecuencia
Inferencia estadística para NLP
Modelo de lenguaje (language modeling)
\(P(w_{n}|w_1,\dots,w_{n-1})\)
Modelo n-gram
\(P(w_{n}|w_{n-1})\)
\(P(\text{the}|\text{its water is so transparent that})=\frac{C(\text{its water is so transparent the})}{C(\text{its water is so transparent that})}\)
Ejemplo:
Markov assumption
Función de probabilidad
Frecuencia
Inferencia estadística para NLP
Modelo de lenguaje (language modeling)
Estimación por máxima verosimilitud (Maximum Likelihood Estimation, MLE)
\(P_{\text{MLE}}(w_1,\dots,w_{n-1})=\frac{C(w_1,\dots,w_n)}{N}\)
\(P_{\text{MLE}}(w_{n}|w_1,\dots,w_{n-1})=\frac{C(w_1,\dots,w_n)}{C(w_1,\dots,w_{n-1})}\)
Estimadores estadísticos
El espacio de todas las posibles asignaciones de parámetros dentro de una determinada distribución dados los datos
![](https://s3.amazonaws.com/media-p.slid.es/uploads/848972/images/7897862/pasted-from-clipboard.png)
Recursos del Procesamiento de Lenguaje Natural
Temas
- Lexicones y base de conocimiento
- Información semántica: WordNet y otras ontologías
- {Corpus textuales, Toquenización, Análisis estadísticos}
Análisis morfosintáctico
Temas
- Análisis morfológico y morfosintáctico.
- Morfología de dos niveles
- Categorización gramatical (POS).
- Construcción de etiquetadores morfosintácticos.
- Estrategias de entrenamiento.
- Etiquetadores en cascada.
- Evaluación y modificación de las reglas
Conceptos claves
Léxico:
Símbolos que se pueden usar en un lenguaje.
Sintáxis:
Reglas sintácticas que especifican la secuencia de símbolos que forman una oración en un lenguaje.
Esa persona puede correr rápido.
\(sustantivo\) \(+\) \(adjetivo\) \(+\) \(verbo\)
Sintáxis
Léxico
{persona, poder, correr, rápido}
Ejemplo: en la oración
Gramática: descripción y explicación de la estructura de una lengua
Conceptos claves
Morfema: unidad mínima de expresión lingüística y significado gramatical, que se une al lexema/gramema para formar una palabra.
Lexema:
- Morfema léxico
- Valor referencial, carecen de significado individualmente.
Gramema:
- Morfema gramatical
- Valor relativo de una categoría gramatical.
gato: \(\text{gat}\)+\(\text{o}\)
lexema de género masculino
gato: \(\text{gat}\)+\(\text{itos}\)
mofema de pluralidad
morfema
morfema
Análisis sintáctico
Temas
- Gramáticas independientes de contexto
- Identificador de sintagmas nominales
- Análisis sintáctico
- Resolución anafórica
Procesamiento del lenguaje natural
By Goa J
Procesamiento del lenguaje natural
- 11