मैं अपने द्वारा बनाए गए कॉर्पस से कुछ शब्दों को निकालने का प्रयास कर रहा हूं लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है। मैं सबसे पहले सब कुछ के माध्यम से चलाता हूं और डेटाफ्रेम बनाता हूं जो मेरी आवृत्ति के क्रम में मेरे शब्दों को सूचीबद्ध करता है। मैं इस सूची का उपयोग उन शब्दों की पहचान करने के लिए करता हूं जिनमें मुझे रूचि नहीं है और फिर हटाए गए शब्दों के साथ एक नई सूची बनाने का प्रयास करें। हालांकि, शब्द मेरे डेटासेट में रहते हैं। मैं सोच रहा हूं कि मैं क्या गलत कर रहा हूं और क्यों शब्दों को हटाया नहीं जा रहा है? मैं पूर्ण नीचे दिए गए कोड को शामिल किया है:आर tm removeWords फ़ंक्शन शब्द को हटाने नहीं
install.packages("rvest")
install.packages("tm")
install.packages("SnowballC")
install.packages("stringr")
library(stringr)
library(tm)
library(SnowballC)
library(rvest)
# Pull in the data I have been using.
paperList <- html("http://journals.plos.org/plosone/search?q=nutrigenomics&sortOrder=RELEVANCE&filterJournals=PLoSONE&resultsPerPage=192")
paperURLs <- paperList %>%
html_nodes(xpath="//*[@class='search-results-title']/a") %>%
html_attr("href")
paperURLs <- paste("http://journals.plos.org", paperURLs, sep = "")
paper_html <- sapply(1:length(paperURLs), function(x) html(paperURLs[x]))
paperText <- sapply(1:length(paper_html), function(x) paper_html[[1]] %>%
html_nodes(xpath="//*[@class='article-content']") %>%
html_text() %>%
str_trim(.))
# Create corpus
paperCorp <- Corpus(VectorSource(paperText))
for(j in seq(paperCorp))
{
paperCorp[[j]] <- gsub(":", " ", paperCorp[[j]])
paperCorp[[j]] <- gsub("\n", " ", paperCorp[[j]])
paperCorp[[j]] <- gsub("-", " ", paperCorp[[j]])
}
paperCorp <- tm_map(paperCorp, removePunctuation)
paperCorp <- tm_map(paperCorp, removeNumbers)
paperCorp <- tm_map(paperCorp, removeWords, stopwords("english"))
paperCorp <- tm_map(paperCorp, stemDocument)
paperCorp <- tm_map(paperCorp, stripWhitespace)
paperCorpPTD <- tm_map(paperCorp, PlainTextDocument)
dtm <- DocumentTermMatrix(paperCorpPTD)
termFreq <- colSums(as.matrix(dtm))
head(termFreq)
tf <- data.frame(term = names(termFreq), freq = termFreq)
tf <- tf[order(-tf[,2]),]
head(tf)
# After having identified words I am not interested in
# create new corpus with these words removed.
paperCorp1 <- tm_map(paperCorp, removeWords, c("also", "article", "Article",
"download", "google", "figure",
"fig", "groups","Google", "however",
"high", "human", "levels",
"larger", "may", "number",
"shown", "study", "studies", "this",
"using", "two", "the", "Scholar",
"pubmedncbi", "PubMedNCBI",
"view", "View", "the", "biol",
"via", "image", "doi", "one",
"analysis"))
paperCorp1 <- tm_map(paperCorp1, stripWhitespace)
paperCorpPTD1 <- tm_map(paperCorp1, PlainTextDocument)
dtm1 <- DocumentTermMatrix(paperCorpPTD1)
termFreq1 <- colSums(as.matrix(dtm1))
tf1 <- data.frame(term = names(termFreq1), freq = termFreq1)
tf1 <- tf1[order(-tf1[,2]),]
head(tf1, 100)
आप tf1
के माध्यम से देखें, तो आप शब्द, जिसे निकाला जाना वास्तव में हटाया नहीं किया गया है निर्दिष्ट किया गया है कि बहुत सारे देखेंगे।
बस सोच रहा है कि मैं क्या गलत कर रहा हूं, और मैं इन शब्दों को अपने डेटा से कैसे हटा सकता हूं?
नोट: removeWords
कुछ कर रहा है क्योंकि head(tm, 100)
और head(tm1, 100)
से आउटपुट बिल्कुल समान नहीं है। तो removeWords
उन शब्दों के कुछ उदाहरणों को हटाने का प्रतीत होता है जिन्हें मैं छुटकारा पाने की कोशिश कर रहा हूं, लेकिन सभी उदाहरण नहीं।
आपके कोड में एक टाइपो है। 'paperCorp1 <- tm_map (paperCorp, removeWords, c ("the")) 'paperCorp1 होना चाहिए <- tm_map (paperCorp1, removeWords, c (" the "))' – phiver
हाय @ फिवर, इसे चुनने के लिए धन्यवाद। मैंने गलती से उस समय से छोड़ा जब मैं समस्या का पता लगाने की कोशिश कर रहा था। कोड की उस पंक्ति को हटाने के बाद भी मुझे एक ही समस्या है। "मैं" सहित कई शब्दों को हटाने का प्रयास कर रहा हूं, अभी भी 'tf1' में हैं। – Adam
यह अपरकेस शब्दों के कारण हो सकता है। आज़माएं: 'paperCorp <- tm_map (paperCorp, tolower) ' – scoa