NLP concepts

NLP es Natural Language Processing
NLU es Natural Language Understanding

Partimos de la base que tenemos un texto ya partido en tokens

  • We
  • choose
  • to
  • go
  • to
  • the
  • moon

    Técnicas Pre-procesamiento

Antes de hacer ningún tipo de procesamiento de lenguaje, pre-procesamos los tokens en función de lo que queramos conseguir

Técnica Descripción
Text normalization Antes de generar el token podemos querer normalizar el texto en función de nuestro análisis (quitar signos puntuación, todo a minúsculas). Esto puede ayudar para análisis de frecuencia de palabras pero perdemos significado semántico.

Mr Banks has worked in many banks. quizás queramos diferenciar entre la persona y el banco, o entre banks. y banks. Ese punto añade información de que la frase termina
Stop word removal Stop words son palabras que se deben excluir del análisis ya que no aportan nada. Por ejemplo the, a, it
N-gram extraction Encontrar frases que se puedan representar de diferentes maneras: artificial intelligence o natural language processing.
Una frase con una palabra es un unigram, con dos palabras es bigram, con tres trigram
Stemming Técnica para consolidar palabras quedándote solo con la raíz: si de las siguientes palabras powering, powered, powerful quitamos las terminaciones ing, ed, ful nos queda el mismo token power
Lemmatization Otra forma de reducir palabras a su forma base (llamada lemma). A diferencia de stemming no acorta las palabras si no que se basa en linguistica y vocabulario para asegurarse que el resultado es válido. Ejemplo running -> run o global -> globe
Parts of speech (POS) tagging Poner labels a cada token con su categoría gramatical (noun, verb, adjective or adverb). Tiene en cuenta el token y su contexto en la frase

Statistical text analisis

Una vez tenemos ya hecho el pre-procesamiento y los tokens, podemos hacer análisis sobre documentos

Frequency Analysis

La forma más obvia en analizar un único documento aislado. Consiste en contar el número de veces que aparece un token en un documento.

Term Frequency
ai 4
business 3
benefit 2

No es ideal para comparar varios documentos que traten sobre un mismo tema ya que todo lo que veremos es que tratan sobre ia y beneficios (temas parecidos), pero no nos ayuda a discriminar cada documento individual.

Term Frequency - Inverse Document Frequency (TF-IDF)

Soluciona el caso anterior: Queremos saber cuán frecuente es un token en un documento, comparado con su frecuencia en la colección entera de documentos.

Nos sirve para identificar términos altamente relevantes en un documento particular. Se considera altamente relevante cuando es muy frecuente en un documento pero raro en el resto.

Pasos:

  1. Calculate Term Frecuency (TF): cuantas veces una palabra aparece en un documento
  2. Calculate Inverse Term Frequency (IDF): cuantas veces aparece en la colección entera de documentos
  3. Combine them (TF-IDF): Sigue una fórmula que no voy a entrar en detalle

Una TF-IDF alta nos indica que un término aparece mucho en un doc, pero es raro en toda su colección.

documento 1

Term Frequency
copilot 2.0794
studio 2.0794
declarative 1.3863

documento 2

Term Frequency
code 2.0794
develop 2.0794
foundry 2.0794

De esta forma aunque ambos documentos traten sobre el mismo tema general, podemos diferenciarlos en su conjunto.

“Bag-of-words” ML techniques

Técnica de extracción que representa tokens de texto como un vector de frecuencia de aparición de palabras, ignorando la gramática y el orden de las palabras.

TextRank

Algoritmo no supervisado basado en grafos que modela texto como una red de nodos conectados.

Por ejemplo cada frase en un documento se puede considerar un nodo, y se les asigna puntuación a las conexiones entre ellas en función de la similaridad de sus palabras.

Se usa para sumarizar textos identificando un subset de frases en un documento que mejor lo representan.

  1. Construir un grafo: cada frase es un nodo se les asigna puntuación a las conexiones
  2. Calcular rangos iterativamente: cada nodo se puntua basado en las puntuaciones de los nodos cercanos
  3. Extraer las frases con más puntuación: el resumen se obtiene sacando las frases mejor puntuadas

textrank