IniziaInizia gratis

Modificare gli n-gram

Finora abbiamo creato solo TDM e DTM usando singole parole. L'impostazione predefinita è usare unigrammi, ma puoi anche concentrarti su token che contengono due o più parole. Questo può aiutare a estrarre frasi utili che portano a ulteriori insight o forniscono attributi predittivi migliori per un algoritmo di Machine Learning.

La funzione seguente utilizza il pacchetto RWeka per creare trigrammi (tre parole): min e max sono entrambi impostati a 3.

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

Quindi la funzione tokenizer() personalizzata può essere passata alle funzioni TermDocumentMatrix o DocumentTermMatrix come parametro aggiuntivo:

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

Questo esercizio fa parte del corso

Text mining con Bag-of-Words in R

Visualizza il corso

Istruzioni dell'esercizio

Un corpus è stato pre-elaborato come in precedenza usando i tweet su chardonnay. L'oggetto risultante text_corp è disponibile nel tuo workspace.

  • Crea una funzione tokenizer come quella sopra che generi bigrammi di 2 parole.
  • Crea unigram_dtm richiamando DocumentTermMatrix() su text_corp senza usare la funzione tokenizer().
  • Crea bigram_dtm usando DocumentTermMatrix() su text_corp con la funzione tokenizer() che hai appena creato.
  • Esamina unigram_dtm e bigram_dtm. Quale ha più termini?

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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

# Create unigram_dtm
___ <- ___(___)

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

# Print unigram_dtm
___

# Print bigram_dtm
___
Modifica ed esegui il codice