Wortstämme in R - Stemmen und Lemmatisieren

Wie bestimme ich die häufigsten Wortstämme in einer Textdatei?

Tuorial für R-Studio.

# Pakete installieren (Code auswählen und "Run" bzw. STRG/CMD + Enter)

###########################################################################
#. install.packages("tidytext")
# install.packages("tidyverse")
# install.packages("hunspell")
# install.packages("spelling")


# Bibliotheken laden
# library(tidytext)
library(tidyverse)
library(hunspell)
# library(textstem)
library("tools") # Um die Dateienden auslesen zu können

#### Wörterbücher installieren
# RStudio > Tools > Global Options > Spelling > "Install more languages"
list_dictionaries() # Hier sollte de_DE, de_DE_neu ausgegben werden:
"de_DE" %in% list_dictionaries()

"de_DE_neu" %in% list_dictionaries()




# Datensatz einlesen

######################

# A) Beispieldatensätze
# stichprobe.raw <- c("kaufen","Personen", "kaufte", "ratsuchende Person", "beratungsstelel", "Demenzberatung")
# stichprobe.raw <- c("kaufte", "besorgt")
# stichprobe.raw <- c("Leerzeichen Space", "Minus-Bindestrich", "Strichpunkt;Semikolon", "Punkt.Dot", "Untertrich_lowercase","Komma,comma", "Schrägstrich/Slash", "Schrägstrich\\Backslasch")
### Datensatz Aufbereiten


# Das Arbeitsverzeichnis wird hier komplizierter gesetzt, als es sein müsste. Das dient dem Schutz der Privatsphäre.
standardarbeitsverzeichnis <- getwd() # nur initial ausführen
my.arbeitsverzeichnis <- paste(standardarbeitsverzeichnis, "/RStudio_WD/Stemming", sep="") %>%
setwd()
getwd()
my.datenverzeichnis <- c("./Dataset1/")

# Dateien im Verzeichnis auslesen
dateien.list <- list.files(my.datenverzeichnis) %>%
print()
# Dateitypen analysieren
dateien.typ <- dateien.list %>%
file_ext() %>%
unique() %>%
print()

# Testdatensatz testtext.txt Laden
testdatei <- c("Testtext-3.txt")
stichprobe.raw <- read_lines(paste(my.datenverzeichnis, testdatei, sep="")) %>%
as_tibble_col("Original") %>%
mutate(copy = Original) %>%

print()


### Häufigkeiten Zählen und Wortstämme finden

##############################################
# 1) Einzigartige Originale finden. Damit werden die wichtigsten Begriffe identifiziert.
stichprobe.freq <- table(stichprobe.split) %>%
sort(decreasing=TRUE) %>%
as.tibble() %>%
mutate(AnzStem = hunspell_stem(stichprobe.split, dict = dictionary("de_DE"))) %>%
mutate(Letzter = AnzStem) %>%
mutate(Letzter = lapply(Letzter, nth, -1)) %>%
unnest(Letzter) %>%
print()


code-end]