我有一个包含 100 页的 word 文档,并且想要检测重复的句子。有没有办法在 R 中自动执行此操作?
1-转换为 txt 文件 2-读取:
tx=readLines("C:\\Users\\paper-2013.txt")
我有一个包含 100 页的 word 文档,并且想要检测重复的句子。有没有办法在 R 中自动执行此操作?
1-转换为 txt 文件 2-读取:
tx=readLines("C:\\Users\\paper-2013.txt")
这是我以前使用过的一个小代码块,它大致基于 Matloff 的 The Art of R Programming,他在那里使用了 sth。类似的例子:
sent <- "This is a sentence. Here comes another sentence. This is a sentence. This is a sentence. Sentence after sentence. This is two sentences."
当有句号时,您可以使用以下方法拆分每个句子strsplit
:
out <- strsplit(sent, ".", fixed=T)
library(gdata)
out <- trim(out) # trims leading white spaces.
现在,这可能看起来很笨拙,但请耐心等待:
outlist <- list()
for(i in 1:length(unlist(out))){
outlist[[out[[1]][i]]] <- c(outlist[[out[[1]][i] ]],i)
}
现在您有一个列表,其中每个条目都是句子本身(作为名称)和句子出现的位置。您现在可以使用length
-arguments 查看重复的句子数量。但是您也可以查看是否存在直接重复,这有助于区分错误地写了两次同一个句子(例如“我的名字是 R。我的名字是 R。”),或者在非常不同的位置巧合地重复同一个句子。没有问题的文本(例如“这是一个示例”之类的句子,它可能在您的文本中多次出现而没有问题)。
> outlist
$`This is a sentence`
[1] 1 3 4
$`Here comes another sentence`
[1] 2
$`Sentence after sentence`
[1] 5
$`This is two sentences`
[1] 6