Ich möchte eine Liste von Wörtern erstellen, die mindestens zwei Mal basierend auf einer bestimmten Webseite angezeigt werden. Es ist mir gelungen, die Daten zu bekommen und eine Liste mit Anzahl pro Wort zu bekommen, aber Ich muss die Wörter behalten, die einen Großbuchstaben haben, um so zu bleiben. Jetzt erzeugt der Code die Wörterliste nur in Kleinbuchstaben. Zum Beispiel wird das Wort "Miami" zu "Miami", während ich es als "Miami" brauche.So bewahren Sie die ursprüngliche Struktur eines Worts während Textmining
Wie kann ich die Wörter in ihrer ursprünglichen Struktur erhalten?
Beigefügt ist der Code:
library(XML)
web_page <- htmlTreeParse("http://www.larryslist.com/artmarket/the-talks/dennis-scholls-multiple-roles-from-collecting-art-to-winning-emmy-awards/"
,useInternal = TRUE)
doctext = unlist(xpathApply(web_page, '//p', xmlValue))
doctext = gsub('\\n', ' ', doctext)
doctext = paste(doctext, collapse = ' ')
library(tm)
SampCrps<- Corpus(VectorSource(doctext))
corp <- tm_map(SampCrps, PlainTextDocument)
oz <- tm_map(corp, removePunctuation, preserve_intra_word_dashes = FALSE) # remove punctuation
oz <- tm_map(corp, removeWords, stopwords("english")) # remove stopwords
dtm <-DocumentTermMatrix(oz)
findFreqTerms(dtm,2) # words that apear at least 2 times
dtmMatrix <- as.matrix(dtm)
wordsFreq <- colSums(dtmMatrix)
wordsFreq <- sort(wordsFreq, decreasing=TRUE)
head(wordsFreq)
wordsFreq <- as.data.frame(wordsFreq)
wordsFreq <- data.frame(word = rownames(wordsFreq), count = wordsFreq, row.names = NULL)
head(wordsFreq,50)
Das gleiche Problem tritt auf, wenn ich diese Zeilen Code verwenden, um ein Drei-Wort-Grame zu erhalten:
library(RWeka)
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 3, max = 3))
tdm <- TermDocumentMatrix(oz, control = list(tokenize = BigramTokenizer))
inspect(tdm)
Vielen Dank @Ken Benoit. Paket Quanteda scheint großartig. – mql4beginner