IniziaInizia gratis

Stemming e completamento degli stem su una frase

Considera la seguente frase come nostro documento per questo esercizio:

"In a complicated haste, Tom rushed to fix a new complication, too complicatedly."

Questa frase contiene le stesse tre forme della parola "complicate" viste nell'esercizio precedente. La differenza qui è che anche se chiamassi stemDocument() su questa frase, verrebbe restituita senza eseguire lo stemming di alcuna parola. Prenditi un momento per provarlo in console. Assicurati di includere i segni di punteggiatura.

Questo succede perché stemDocument() tratta l'intera frase come una sola parola. In altre parole, il nostro documento è un vettore di caratteri di lunghezza 1, invece che di lunghezza n, dove n è il numero di parole nel documento. Per risolvere il problema, prima rimuoviamo la punteggiatura con la funzione removePunctuation() che hai visto qualche esercizio fa. Poi applichiamo strsplit() a questo vettore di caratteri di lunghezza 1 per portarlo a lunghezza n, quindi unlist(), e infine procediamo con lo stemming e il ri-completamento.

Non preoccuparti se non è chiarissimo: vediamolo passo dopo passo!

Questo esercizio fa parte del corso

Text mining con Bag-of-Words in R

Visualizza il corso

Istruzioni dell'esercizio

Il documento text_data e il dizionario di completamento comp_dict sono già caricati nel tuo workspace.

  • Rimuovi la punteggiatura in text_data usando removePunctuation(), assegnando a rm_punc.
  • Chiama strsplit() su rm_punc con l'argomento split impostato a " ". Annida il tutto dentro unlist(), assegnando a n_char_vec.
  • Usa di nuovo stemDocument() per eseguire lo stemming delle parole in n_char_vec, assegnando a stem_doc.
  • Crea complete_doc ri-completando il documento stemmato con stemCompletion() e usando comp_dict come corpus di riferimento.

stem_doc e complete_doc sono come ti aspettavi?

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Remove punctuation: rm_punc
rm_punc <- ____

# Create character vector: n_char_vec
n_char_vec <- unlist(___(___, split = " "))

# Perform word stemming: stem_doc
stem_doc <- ___

# Print stem_doc
stem_doc

# Re-complete stemmed document: complete_doc
complete_doc <- ___

# Print complete_doc
complete_doc
Modifica ed esegui il codice