Woordstammen en stam-aanvulling op een zin
Laten we voor deze oefening de volgende zin als ons document nemen:
"In a complicated haste, Tom rushed to fix a new complication, too complicatedly."
Deze zin bevat dezelfde drie vormen van het woord "complicate" die we in de vorige oefening zagen. Het verschil hier is dat zelfs als je stemDocument() op deze zin zou aanroepen, de zin teruggegeven wordt zonder woorden te stammeren. Probeer het gerust even in de console. Vergeet de leestekens niet mee te nemen.
Dit gebeurt omdat stemDocument() de hele zin als één woord behandelt. Met andere woorden, ons document is een tekenvector van lengte 1, in plaats van lengte n, waarbij n het aantal woorden in het document is. Om dit op te lossen verwijderen we eerst de leestekens met de functie removePunctuation(), die je een paar oefeningen geleden hebt geleerd. Daarna passen we strsplit() toe op deze tekenvector van lengte 1 naar lengte n, voeren unlist() uit, en gaan vervolgens stammeren en opnieuw aanvullen.
Maak je geen zorgen als dit verwarrend was. We doorlopen het proces stap voor stap!
Deze oefening maakt deel uit van de cursus
Text mining met bag-of-words in R
Oefeninstructies
Het document text_data en het aanvullingswoordenboek comp_dict zijn in je werkruimte geladen.
- Verwijder de leestekens in
text_datametremovePunctuation()en ken het resultaat toe aanrm_punc. - Roep
strsplit()aan oprm_puncmet het argumentsplitgelijk aan" ". Nest dit binnenunlist()en ken toe aann_char_vec. - Gebruik
stemDocument()opnieuw om woordstammen te bepalen opn_char_vecen ken toe aanstem_doc. - Maak
complete_docdoor je gestamde document opnieuw aan te vullen metstemCompletion()en gebruikcomp_dictals je referentiecorpus.
Zijn stem_doc en complete_doc wat je had verwacht?
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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