繁体   English   中英

tm_map 的问题(removeWords,停用词(“英语”)

[英]Problem with tm_map(removeWords, stopwords("english")

我试图搞乱一些 R 分析。 我已经下载了 10 个 TED 演讲文件并将它们保存为文本。 我正在努力使用 removeWords 停用词

source("Project_Functions.R")
getwd()
# ==== 
# Load the PDF data
# pdf.loc <- file.path("data") # folder "PDF Files" with PDFs
# myFiles <- normalizePath(list.files(path = pdf.loc, pattern = "pdf",  full.names = TRUE)) # Get the path (chr-vector) of PDF file names
# # Extract content from PDF files
# Docs.corpus <- Corpus(URISource(myFiles), readerControl = list(reader = readPDF(engine = "xpdf")))

# ==== 
# Load TED Talks Data
myFiles <- normalizePath(list.files(pattern = "txt",  full.names = TRUE))
Docs.corpus <- Corpus(URISource(myFiles), readerControl=list(reader=readPlain))
length(Docs.corpus)
#Docs.corpus <-tm_map(Docs.corpus, tolower)
Docs.corpus <-tm_map(Docs.corpus, removeWords, stopwords("english"))
Docs.corpus <-tm_map(Docs.corpus, removePunctuation)
Docs.corpus <-tm_map(Docs.corpus, removeNumbers)
Docs.corpus <-tm_map(Docs.corpus, stripWhitespace)

但是,当我运行时:

dtm <-DocumentTermMatrix(Docs.corpus)
dtm$dimnames$Terms
freq <- colSums(as.matrix(dtm))
freq <- subset(freq, freq > 10)

它仍然显示一些我不想要的词,比如“和”、“只是”……等等。

我尝试研究和使用 [[:punct:]] 和其他方法,但它们不起作用。

请帮助,谢谢

我找到了原因,所以 tm_map 的顺序很重要,例如,如果你运行 tolower 然后运行下一行 removeNumbers,它不知何故不再执行 tolower,而是切换到 removeNumbers,我修复了它,它可能不是最有效的方法,但它有效

Docs.corpus.temp <-tm_map(Docs.corpus, removePunctuation)
Docs.corpus.temp1 <-tm_map(Docs.corpus.temp, removeNumbers)
Docs.corpus.temp2 <-tm_map(Docs.corpus.temp1, tolower)
Docs.corpus.temp3 <-tm_map(Docs.corpus.temp2,PlainTextDocument)
Docs.corpus.temp4 <-tm_map(Docs.corpus.temp3, stripWhitespace)
Docs.corpus.temp5 <-tm_map(Docs.corpus.temp4, removeWords, stopwords("english"))

#frequency
dtm <-DocumentTermMatrix(Docs.corpus.temp5)
dtm$dimnames$Terms
freq <- colSums(as.matrix(dtm))
freq <- subset(freq, freq > 10)
ord<- order(freq)
freq

这解决了我的问题,现在所有 tm_map 预处理代码都可以工作。 如果谁有更好的主意,请告诉我,谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM