我需要比较大量类似于50358c591cef4d76的字符串。我有一个可以使用的汉明距离函数(使用pHash)。如何高效地完成这项工作?我的伪代码如下:
For each string
currentstring= string
For each string other than currentstring
Calculate Hamming distance
我希望将结果输出为矩阵,并能够检索值。我还希望通过Hadoop Streaming运行它!非常感谢您的指点。
这是我尝试过的,但速度很慢:
import glob
path = lotsdir + '*.*'
files = glob.glob(path)
files.sort()
setOfFiles = set(files)
print len(setOfFiles)
i=0
j=0
for fname in files:
print 'fname',fname, 'setOfFiles', len(setOfFiles)
oneLessSetOfFiles=setOfFiles
oneLessSetOfFiles.remove(fname)
i+=1
for compareFile in oneLessSetOfFiles:
j+=1
hash1 = pHash.imagehash( fname )
hash2 = pHash.imagehash( compareFile)
print ...