0

我有一个包含 100 页的 word 文档,并且想要检测重复的句子。有没有办法在 R 中自动执行此操作?

1-转换为 txt 文件 2-读取:

     tx=readLines("C:\\Users\\paper-2013.txt")
4

1 回答 1

4

这是我以前使用过的一个小代码块,它大致基于 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
于 2014-04-17T13:13:08.253 回答