0

100 ページを含む 1 つの単語文書があり、重複した文を検出したいと考えています。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 を使用して、重複しているセンテンスの数を確認できるようになりました。しかし、同じ文を誤って 2 回書いた場合 (例: 「私の名前は 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 に答える