我对R比较陌生,目前主要用于文本分析。在下面的代码中,我试图在某些单词中找到重复。
tableinter <- intersect(innsong, Inncorpus[[1]])
inntable <- table(innsong)
repwords <- list()
notrepwords <- list()
for(i in length(tableinter)){
if(inntable[tableinter[i]] > 1){
repwords[[i]] <- tableinter[[i]]
return(repwords)
} else{
notrepwords[[i]] <- tableinter[[i]]
}
}
我的最终目标是从innsong
和inncorpus[[1]]
相交的单词中有两个列表。一个列表,repwords
,将有来自inncorpus[[1]]
的单词,它们都与innsong
相交并且频率> 1。另一个列表是那些在文本中只出现一个的单词。
分析文档中单词出现的一种更通用的方法是通过文档特征矩阵(或文档 - 术语矩阵)。
我推荐包quanteda
。
require("quanteda")
require("magrittr")
df_matrix <- c(innsong, Inncorpus[[1]]) %>%
dfm(tolower = TRUE, stem = FALSE, remove_numbers = TRUE,
remove_punct = TRUE, remove_symbols = TRUE)
这将生成一个矩阵,其中每行是一个文档,每列是一个不同的单词。每个值表示每个文档中每个单词的出现次数。你将有两排到达。然后,您可以评估矩阵以找到答案。
在我看来,这是一种更通用的方法。如果您愿意,它可以为您提供词干和删除停用词的选项。