Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

Het document text_data en het aanvullingswoordenboek comp_dict zijn in je werkruimte geladen.

  • Verwijder de leestekens in text_data met removePunctuation() en ken het resultaat toe aan rm_punc.
  • Roep strsplit() aan op rm_punc met het argument split gelijk aan " ". Nest dit binnen unlist() en ken toe aan n_char_vec.
  • Gebruik stemDocument() opnieuw om woordstammen te bepalen op n_char_vec en ken toe aan stem_doc.
  • Maak complete_doc door je gestamde document opnieuw aan te vullen met stemCompletion() en gebruik comp_dict als 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
Code bewerken en uitvoeren