Procesamiento del lenguaje natural

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

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.

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

¿Qué significa estos conceptos y por qué serían útiles para construir sistemas inteligentes?

Inteligencia Artificial

Estructuras simbólicas

Procesos computacionales

Representar conocimiento

Razonar con estas estructuras simbólicas

Conocimiento

"Chelita sabe que ..."

"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:

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

"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

"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

mariposa

El uso de símbolos formales para representar una colección de proposiciones creídas por algún agente

Representación del conocimiento

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

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?

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.

Interprete

Ejemplo: ¿Por qué se movió de cierta manera?

¿Por qué representación del conocimiento y razonamiento?

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

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

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

0

1

0

1

0

1

1

0

1

Máquina de Turing

0

0

1

1

0

0

1

0

1

0

1

0

0

1

0

0

0

1

A

B

+

C

entradas

salida

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?

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

\(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

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