我被指派编写一个捕捉抄袭者的程序。给定一个文件夹,我将如何逐个文件地遍历它们,构建每个文件中所有6个单词短语的列表。一个例子是
现在是所有好人来帮助他们国家的时候了。
包含6个字的短语: 现在是时候了, 是所有好的时间, 所有好人的时间, 所有好人的时间, ......等等。
ExampleFile=F.read('File')
index1=0
index2=5
List1=[]
while True:
index1+=1
index2+=1
List1+= Examplefile[index1:index2]
到目前为止我是否创建了6个单词短语的列表。那么我将如何为每个文件执行此操作,然后比较这些结果以查看是否有任何两个文件有超过200个相同的短语?我在使用Python中的文件方面做得很少,所以尽可能地减少所有内容。谢谢!
答案 0 :(得分:3)
由于这是家庭作业,我认为有几个链接可以帮助你完成代码。
查看列出文件夹中所有文件的os.listdir
和遍历目录树的os.walk
。
然后你可以列出每个项目是短语容器的列表。我建议为每个文件使用set
个短语,以及此类集的列表,或者set
frozenset
个。{/ p>
然后,您可以将这些集合的所有成对组合与itertools.combinations
一起使用,并为每对计算intersection。如果任何交叉点的大小高于阈值,您就找到了抄袭者。
对您当前代码的评论:有一个命名约定,变量名称应以小写字母开头,大写名称用于类。