ComenzarEmpieza gratis

Cambiar n-gramas

Hasta ahora, solo hemos creado TDM y DTM usando palabras sueltas. De forma predeterminada se crean con unigramas, pero también puedes centrarte en tokens que contengan dos o más palabras. Esto puede ayudar a extraer frases útiles que aporten información adicional o que ofrezcan mejores atributos predictivos para un algoritmo de Machine Learning.

La función siguiente usa el paquete RWeka para crear tokens de trigramas (tres palabras): min y max se establecen ambos en 3.

tokenizer <- function(x) {
  NGramTokenizer(x, Weka_control(min = 3, max = 3))
}

Luego, la función personalizada tokenizer() se puede pasar a las funciones TermDocumentMatrix o DocumentTermMatrix como un parámetro adicional:

tdm <- TermDocumentMatrix(
  corpus, 
  control = list(tokenize = tokenizer)
)

Este ejercicio forma parte del curso

Minería de texto con Bag-of-Words en R

Ver curso

Instrucciones del ejercicio

Se ha preprocesado un corpus como antes usando los tuits sobre chardonnay. El objeto resultante text_corp está disponible en tu espacio de trabajo.

  • Crea una función tokenizer como la anterior que genere bigramas de 2 palabras.
  • Crea unigram_dtm llamando a DocumentTermMatrix() sobre text_corp sin usar la función tokenizer().
  • Crea bigram_dtm usando DocumentTermMatrix() sobre text_corp con la función tokenizer() que acabas de crear.
  • Examina unigram_dtm y bigram_dtm. ¿Cuál tiene más términos?

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Make tokenizer function 
___ <- function(x) {
  ___(___, ___(___, ___))
}

# Create unigram_dtm
___ <- ___(___)

# Create bigram_dtm
___ <- ___(
  ___,
  ___
)

# Print unigram_dtm
___

# Print bigram_dtm
___
Editar y ejecutar código