ComeçarComece de graça

Alterando n-grams

Até agora, só criamos TDMs e DTMs usando palavras únicas. O padrão é fazê-los com unigramas, mas você também pode focar em tokens contendo duas ou mais palavras. Isso pode ajudar a extrair frases úteis que geram insights adicionais ou oferecer atributos preditivos melhores para um algoritmo de Machine Learning.

A função abaixo usa o pacote RWeka para criar tokens de trigrama (três palavras): min e max estão ambos definidos como 3.

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

Depois, a função tokenizer() personalizada pode ser passada para as funções TermDocumentMatrix ou DocumentTermMatrix como um parâmetro adicional:

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

Este exercício faz parte do curso

Mineração de Texto com Bag-of-Words em R

Ver curso

Instruções do exercício

Um corpus foi pré-processado como antes usando os tweets sobre chardonnay. O objeto resultante text_corp está disponível no seu workspace.

  • Crie uma função tokenizer como a acima que gere bigramas de 2 palavras.
  • Crie unigram_dtm chamando DocumentTermMatrix() em text_corp sem usar a função tokenizer().
  • Crie bigram_dtm usando DocumentTermMatrix() em text_corp com a função tokenizer() que você acabou de fazer.
  • Examine unigram_dtm e bigram_dtm. Qual tem mais termos?

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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

# Create unigram_dtm
___ <- ___(___)

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

# Print unigram_dtm
___

# Print bigram_dtm
___
Editar e executar o código