def lookup(self, transaction): #check originality for prev_block in self.chain: if transaction['genre'] == prev_block.transaction['genre']: try: if transaction['genre'] == 'Audio': score = ac.calc_accuracy('./tmp/' + transaction['media'], './uploads/' + prev_block.transaction['media']) print(score) if score > 0.9: return prev_block if transaction['genre'] == 'Text': score = tc.check_text_similarity('./tmp/' + transaction['media'], './uploads/'+prev_block.transaction['media']) print(score) if score < 100: return prev_block if transaction['genre'] == "Image": score = ic.calc_accuracy('./tmp/' + transaction['media'], './uploads/' + prev_block.transaction['media']) print(score) if score < 0.4: return prev_block except: print("exception") return prev_block return None
时间: 2024-02-10 16:34:12 浏览: 165
这段代码看起来像是一个区块链节点中的交易查重函数,可以判断交易是否重复,并返回已存在的交易(即已经被记录在区块链中的交易)。其中,交易的类型有音频、文本和图片,分别使用了不同的计算方法进行比较。对于音频和图片,使用了ac.calc_accuracy和ic.calc_accuracy计算相似度,而对于文本,则使用了tc.check_text_similarity计算相似度。如果相似度高于一定阈值,则认为交易重复,返回已存在的交易。如果没有找到已存在的交易,则返回None。
阅读全文