0

剽窃者を捕まえるプログラムを書くように割り当てられています。ファイルのフォルダーが与えられた場合、各ファイル内の 6 語句すべてのリストを作成して、ファイルごとに反復処理する方法を教えてください。これの例は

今こそ、すべての善良な人々が国を助けに来る時です。

6 語のフレーズが含まれています: Now is the time for all, is the time for all good, the time for all good men, time for all good men to, ... など。

ExampleFile=F.read('File')
index1=0
index2=5
List1=[]
while True:
     index1+=1
     index2+=1
     List1+= Examplefile[index1:index2]

これまでのところ、6 つの語句のリストを作成するために持っているものです。では、各ファイルに対してこれを実行し、それらの結果を比較して、2 つのファイルに 200 を超える同じフレーズがあるかどうかを確認するにはどうすればよいでしょうか? 私は、Python でファイルを使用することについてほとんど何もしていないので、可能な限りすべてを馬鹿にしています。ありがとう!

4

1 に答える 1

3

これは宿題なので、コードを完成させるだけでなく、いくつかのリンクが役立つと思います。

os.listdirフォルダー内のすべてのファイルを一覧表示しos.walk、ディレクトリ ツリーをトラバースする を見てください。

次に、各項目がフレーズのコンテナであるリストを作成できます。set各ファイルに of 句を使用し、そのようなセットのリスト、または of をset使用することをお勧めしますfrozenset

次に、これらのセットのすべてのペアごとの組み合わせを取り、各ペアの交点itertools.combinationsを計算できます。交差点のサイズがしきい値を超えている場合は、盗作者が見つかりました。


現在のコードに関するコメント: 変数名は小文字で始めるという命名規則があり、クラスには大文字の名前が使用されます。

于 2013-04-22T21:34:01.037 に答える