我想计算两个字符串出现在设定距离内的文档,彼此相距不超过 10 个单词。让我们说“德国*”和“战争”。我不想计算它们总共出现的次数,而只想计算该集合出现的文档数(如果出现一次,则计为一个)。
我知道如何计算包含单词的文档。但我不确定是否需要提取 10-grams 并查看这两个单词是否出现然后对每个文档进行计数,或者是否有更有效的方法。
我想计算两个字符串出现在设定距离内的文档,彼此相距不超过 10 个单词。让我们说“德国*”和“战争”。我不想计算它们总共出现的次数,而只想计算该集合出现的文档数(如果出现一次,则计为一个)。
我知道如何计算包含单词的文档。但我不确定是否需要提取 10-grams 并查看这两个单词是否出现然后对每个文档进行计数,或者是否有更有效的方法。
此后是一个小函数,用于测试文本中两个单词是否接近 100 个字符。
isclose = function(text){
test <- FALSE
limit <- 100 # Interval in char counts
match1 <- gregexpr('war', text)[[1]]
match2 <- gregexpr('German', text)[[1]]
for(i in 1:length(match1)){
for(j in 1:length(match2)){
if(abs(match1[i]-match2[j]) < limit) test <- TRUE
}
}
return(test)
}
它工作正常,但应该改进以计算字数而不是字符数。