从 DocumentTermMatrix 中删除单词

Removing words from a DocumentTermMatrix

我和我的朋友正在努力将我们收集的一些推文转换为 dtm,以便能够 运行 使用 R 中的机器学习进行情感分析。任务必须在 R 中执行,因为它我们大学的考试,要求用R作为工具。

最初我们收集了一个较小的样本,以便在我们开始编写更大的数据集之前测试我们的代码是否正常工作。我们的问题是我们似乎无法弄清楚如何从 dtm 中删除自定义单词。到目前为止,我们的代码看起来像这样(我们主要使用 tm 包):

 file <- read.csv("Tmix.csv",
           row.names = NULL, sep=";", header=TRUE) #just for loading the dataset

tweetsCorpus <- Corpus(VectorSource(file[,1]))

tweetsDTM <- DocumentTermMatrix(tweetsCorpus,
                                control = list(verbose = TRUE,
                                               asPlain = TRUE,
                                               stopwords = TRUE,
                                               tolower = TRUE,
                                               removeNumbers = TRUE,
                                               stemWords = FALSE,
                                               removePunctuation = TRUE,
                                               removeSeparators = TRUE,
                                               removeTwitter = TRUE,
                                               stem = TRUE,
                                               stripWhitespace = TRUE, 
                                               removeWords = c("customword1", "customword2", "customword3")))

我们还尝试在转换为 dtm 之前删除单词,使用 removeWords 命令以及 tm 包中的所有 "removeXXX" 命令,然后将其转换为 dtm,但它好像不行。

重要的是我们不要简单地删除所有观察值不超过 5 个的单词。我们需要所有观察结果,除了我们想要删除的那些,例如 https-addresses 之类的。

有人知道我们是怎么做到的吗?

第二个问题:有没有更简单的方法来删除所有以 https 开头的单词,而不必将所有地址单独写入代码。例如,现在我们正在将 "httpstcokozcejeg", "httpstcolskjnyjyn", "httpstcolwwsxuem" 写为要从数据中删除的单个自定义词。

注意:我们知道 RemoveWords 对我们的问题来说是一个糟糕的解决方案,但我们想不出还有什么办法可以做到。

您可以使用正则表达式,例如:

gsub("http[a-z]*","","httpstcolwwsxuem here")
[1] " here"

假设你删除了 tweetsCorpus 中的 punctuation/digits,你可以使用以下内容:

1-直接gsub

tweetsCorpus <- gsub("http[a-z]*","",tweetsCorpus[[1]][[1]])

2- tm::tm_map, content_transformer

library(tm)

RemoveURL <- function(x){
        gsub("http[a-z]*","",x)
}

tweetsCorpus <- tm_map(tweetsCorpus, content_transformer(RemoveURL))