Stemming și completarea rădăcinilor într-o propoziție
Să considerăm următoarea propoziție ca document pentru acest exercițiu:
"In a complicated haste, Tom rushed to fix a new complication, too complicatedly."
Această propoziție conține aceleași trei forme ale cuvântului "complicate" pe care le-am văzut în exercițiul anterior. Diferența constă în faptul că, dacă ai apela stemDocument() direct pe această propoziție, funcția ar returna propoziția neschimbată, fără să aplice stemming niciunui cuvânt. Încearcă în consolă să te convingi – nu uita să incluzi și semnele de punctuație.
Acest lucru se întâmplă deoarece stemDocument() tratează întreaga propoziție ca pe un singur cuvânt. Cu alte cuvinte, documentul nostru este un vector de caractere cu lungimea 1, în loc de lungimea n, unde n reprezintă numărul de cuvinte din document. Pentru a rezolva această problemă, eliminăm mai întâi semnele de punctuație cu funcția removePunctuation(), pe care ai învățat-o câteva exerciții mai devreme. Apoi aplicăm strsplit() pe vectorul de lungime 1 pentru a obține un vector de lungime n, îl transformăm cu unlist(), după care procedăm la stemming și recompletare.
Nu-ți face griji dacă pare complicat. Vom parcurge procesul pas cu pas!
Acest exercițiu face parte din cursul
Text Mining cu Bag-of-Words în R
Instrucțiuni pentru exercițiu
Documentul text_data și dicționarul de completare comp_dict sunt încărcate în spațiul tău de lucru.
- Elimină semnele de punctuație din
text_datafolosindremovePunctuation()și atribuie rezultatul variabileirm_punc. - Apelează
strsplit()perm_punccu argumentulsplitsetat la" ". Imbrichează aceasta în interiorul luiunlist()și atribuie rezultatul variabilein_char_vec. - Folosește din nou
stemDocument()pentru a aplica stemming pen_char_vecși atribuie rezultatul variabileistem_doc. - Creează
complete_docrecompletând documentul cu stemming aplicat folosindstemCompletion()șicomp_dictca și corpus de referință.
Sunt stem_doc și complete_doc ce te-ai așteptat să obții?
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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