Eigene Stopwords-Datei einbinden?

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
Dirk
Beiträge: 2
Registriert: Fr Aug 02, 2019 2:22 pm

Eigene Stopwords-Datei einbinden?

Beitrag von Dirk »

Hallo an Alle,

Das ist mein erster Post und ich freue mich dieses Forum gefunden zu haben, da ich noch ein ziemlicher Anfänger in R bin, das aber gerne ändern würde :)

Folgende Frage/Problemstellung:

Ich habe einen Datenkorpus angelegt den ich hauptsächlich mit RQDA bearbeite (top Paket für MaxQDA Umsteiger). Nebenbei wollte ich aus Interesse ein bisschen mit anderen R-Funktionen spielen (tm und wordcloud vor allem).

Ich arbeite mit folgendem Code, den ich von https://lucidmanager.org/qualitative-data-science/ übernommen und angepasst habe:

Code: Alles auswählen

library(tidyverse)
library(RQDA)
library(tm)
library(wordcloud)
library(igraph)

openProject("~/Masterarbeit/Projekt.rqda")
threads <- data.frame(name = RQDAQuery("SELECT name FROM source"),
                         text = RQDAQuery("SELECT file FROM source"))
threads <- Corpus(VectorSource(threads$file))

threads <-  tm_map(threads, stripWhitespace)
threads <-  tm_map(threads, content_transformer(tolower))
threads <-  tm_map(threads, removeWords, stopwords("german"))
threads <-  tm_map(threads, removePunctuation)
threads <-  tm_map(threads, removeNumbers)

# Word cloud
set.seed(1969)
wordcloud(threads, min.freq = 10, max.words = 50, rot.per=0.35, 
          colors = brewer.pal(8, "Blues")[-1:-5])
Meine Frage bezieht sich auf die Entfernung der "Stopp Wörter". Die deutschen stoppwörter im tm-Paket sind sehr dürftig (= für meine Zwecke zu wenige). Ich würde gerne die Liste von Github verwenden: https://github.com/solariz/german_stopw ... _plain.txt und dieses ggf. durch eigene Begriffe ergänzen.

Da es sich um wirklich viele Wörter handelt, scheint es mir unpraktisch mit der Funktion zu arbeiten:

Code: Alles auswählen

threads <-  tm_map(threads, removeWords, c("Wort1", "Wort2")) ....
Die eigentliche Frage:

Ich bin etwas unerfolgreich in meiner Suchmaschinen-Recherche, was ich finde ist z.B. folgendes:
https://stackoverflow.com/questions/184 ... ds-in-r-tm

Was ich aber gerne tun würde wäre die "german_stopwords_plain.txt" in R zu laden um dann einfach den pfad angeben zu müssen. (oder Ähnliches)

Ich bin mir sehr sicher dass das total einfach ist - aber gerade bin ich zu unbeholfen um richtig zu suchen.
Erbarmt sich jemand und kann mir sagen wie man das macht?

Liebe Grüße!

PS:
R version 3.4.4 (2018-03-15) -- "Someone to Lean On"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)


/edit:

versucht habe ich es mit:

Code: Alles auswählen

mystopwords <- readLines("~/Masterarbeit/mystopwords.txt")
threads <-  tm_map(threads, removeWords, mystopwords)
folgende Meldum kam:
Warnmeldung:
In tm_map.SimpleCorpus(threads, removeWords, mystopwords) :
transformation drops documents
beheben konnte ich die Meldung in dem ich im Code folgendes geändert habe:
threads <- VCorpus(VectorSource(threads$file))

Credits gehen zu StackOverflow; https://stackoverflow.com/questions/519 ... -documents

Damit habe ich den Fehler selbst gefunden. Danke trotzdem für das lesen!
Athomas
Beiträge: 769
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Eigene Stopwords-Datei einbinden?

Beitrag von Athomas »

Ist das Problem tatsächlich, die verlinkte Textdatei (oder den heruntergeladenen und lokal gespeicherten "Kern" davon ab Zeile 10) mit einem (deutschen) Wort pro Zeile zu lesen und in einen Vektor von Wörtern zu verwandeln :? ?

Code: Alles auswählen

SW     <- read.table("XXXXX/stopwords.csv", header=FALSE, stringsAsFactors = FALSE)
Vektor <- SW$V1
Antworten