0

我被分配编写一个捕捉抄袭者的程序。给定一个文件文件夹,我将如何逐个文件地遍历它们,构建每个文件中所有 6 词短语的列表。这方面的一个例子是

现在是所有好人来援助他们国家的时候了。

包含 6 个单词的短语:现在是所有人的时间,是所有人的时间,是所有人的时间,所有人的时间,所有人的时间,......等等。

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

到目前为止,我已经创建了 6 个单词短语的列表。那么我将如何对每个文件执行此操作,然后比较这些结果以查看是否有任何两个文件有超过 200 个相同的短语?我在 Python 中使用文件方面做得很少,所以尽可能地把所有东西都简化了。谢谢!

4

1 回答 1

3

由于这是家庭作业,我认为几个链接对您的帮助不仅仅是完整的代码。

查看os.listdir列出文件夹中所有文件并os.walk遍历目录树的列表。

然后,您可以制作一个列表,其中每个项目都是短语的容器。我建议set对每个文件使用 a of 短语,以及此类集合的列表,或者可能是 a setof frozensets。

然后,您可以采用这些集合的所有成对组合,itertools.combinations并计算每对的交集。如果任何交叉点的大小超过阈值,您就找到了抄袭者。


对您当前代码的评论:有一个命名约定,变量名称应以小写字母开头,大写名称用于类。

于 2013-04-22T21:34:01.037 回答