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
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
tokenizersimilară celei de mai sus, care generează bigrami de 2 cuvinte. - Creează
unigram_dtmapelândDocumentTermMatrix()petext_corpfără a folosi funcțiatokenizer(). - Creează
bigram_dtmapelândDocumentTermMatrix()petext_corpcu funcțiatokenizer()pe care tocmai ai creat-o. - Examinează
unigram_dtmșibigram_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
___