Я хотел бы создать список слов, которые появляются не менее двух раз на основе определенной веб-страницы. Мне удалось получить данные и получить список со счетом за каждое слово, но Мне нужно сохранить слова, которые имеют верхний регистр, чтобы оставаться таким образом. Теперь код создает список слов только с нижним регистром. Например, слово «Майами» превращается в «майами», в то время как оно мне нужно как «Майами».Как сохранить исходную структуру слова при текстовой обработке
Как я могу получить слова в их первоначальной структуре?
прилагается код:
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)
Та же проблема возникает, когда я использую эти строки кода, чтобы получить три слова Ngram:
library(RWeka)
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 3, max = 3))
tdm <- TermDocumentMatrix(oz, control = list(tokenize = BigramTokenizer))
inspect(tdm)
Большое спасибо @Ken Benoit. package quanteda кажется отличным. – mql4beginner