ÎncepețiÎncepe gratuit

Modificarea n-gramelor

Până acum, am creat TDM-uri și DTM-uri folosind doar cuvinte individuale. Tokenizarea implicită se bazează pe unigrami, dar poți lucra și cu token-uri formate din două sau mai multe cuvinte. Acest lucru poate ajuta la extragerea unor expresii utile, care oferă informații suplimentare sau atribute predictive mai bune pentru un algoritm de învățare automată.

Funcția de mai jos folosește pachetul RWeka pentru a crea token-uri de tip trigram (trei cuvinte): min și max sunt ambele setate la 3.

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

Funcția personalizată tokenizer() poate fi apoi transmisă funcțiilor TermDocumentMatrix sau DocumentTermMatrix ca parametru suplimentar:

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

Acest exercițiu face parte din cursul

Text Mining cu Bag-of-Words în R

Vezi cursul

Instrucțiuni pentru exercițiu

Un corpus a fost preprocesат în prealabil folosind tweet-urile despre chardonnay. Obiectul rezultat, text_corp, este disponibil în spațiul tău de lucru.

  • Creează o funcție tokenizer similară celei de mai sus, care generează bigrami de 2 cuvinte.
  • Creează unigram_dtm apelând DocumentTermMatrix() pe text_corp fără a folosi funcția tokenizer().
  • Creează bigram_dtm apelând DocumentTermMatrix() pe text_corp cu funcția tokenizer() pe care tocmai ai creat-o.
  • Examinează unigram_dtm și bigram_dtm. Care dintre ele conține mai mulți termeni?

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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

# Create unigram_dtm
___ <- ___(___)

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

# Print unigram_dtm
___

# Print bigram_dtm
___
Editează și rulează codul