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
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
tokenizercomo la anterior que genere bigramas de 2 palabras. - Crea
unigram_dtmllamando aDocumentTermMatrix()sobretext_corpsin usar la funcióntokenizer(). - Crea
bigram_dtmusandoDocumentTermMatrix()sobretext_corpcon la funcióntokenizer()que acabas de crear. - Examina
unigram_dtmybigram_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
___