我有一个单词文档包含100页,并希望检测重复的句子。 有没有办法在R中自动执行此操作?
1-转换为txt文件 2-读:
tx=readLines("C:\\Users\\paper-2013.txt")
答案 0 :(得分:3)
这是我之前使用过的一个小代码块,它基于Matloff的“R编程艺术”,在那里他使用了某些代码块。类似的例子:
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
- 参数来查看重复的句子数。但你也可以看看是否有直接重复有助于区分错误地写两次相同的句子(例如&#34;我的名字是R.我的名字是R。&#34;),或者重复地重复相同的句子在文本中的非常不同的位置没有它是一个问题(例如像&#34这样的句子;这是一个例子。&#34;它可能存在于你的文本中好几次,而不是一个问题)。
> 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