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")# install.packages("textstem") # https://cran.r-project.org/web/packages/textstem/t...# 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ührenmy.arbeitsverzeichnis <- paste(standardarbeitsverzeichnis, "/RStudio_WD/Stemming", sep="") %>%setwd()getwd()my.datenverzeichnis <- c("./Dataset1/")# Dateien im Verzeichnis auslesendateien.list <- list.files(my.datenverzeichnis) %>%print()# Dateitypen analysierendateien.typ <- dateien.list %>%file_ext() %>%unique() %>%print()# Testdatensatz testtext.txt Ladentestdatei <- 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]