|
发表于 2023-9-25 20:13:07
|
显示全部楼层
这个错误是因为Simhash库中的某个函数使用了一个名为"f"的属性,但是在这个代码中并没有定义这个属性。要解决这个问题,你需要检查Simhash库的文档,找到正确的使用方法。
此外,还有一些其他问题需要注意:
1. 在函数compare_hash中,你使用了一个名为hash_set的变量,但是没有在函数内部进行定义。你需要将hash_set定义为函数的参数或者使用global关键字将其声明为全局变量。
2. 在函数compare_hash中,你使用了一个名为content的参数,但是在调用compare_hash函数时并没有传入任何参数。你需要将t1和t2作为参数传递给compare_hash函数。
综上所述,你需要做以下几个修改来解决问题:
1. 检查Simhash库的文档,找到正确的使用方法。
2. 将hash_set定义为函数的参数或者使用global关键字将其声明为全局变量。
3. 将t1和t2作为参数传递给compare_hash函数。
以下是修改后的代码示例:
- def compare_hash(content, hash_set):
- new_hash = Simhash(content)
- if len(hash_set) == 0:
- hash_set.add(new_hash.value)
- return True
- for pre_hash in hash_set:
- distance = new_hash.distance(pre_hash)
- similarity = 1 - distance / 64
- if similarity > 0.85:
- return False
- hash_set.add(new_hash.value)
- return True
- hash_set = set()
- t1 = "你好中国!"
- t2 = "你好China!"
- compare_hash(t1, hash_set)
- compare_hash(t2, hash_set)
复制代码
希望这个回答对你有帮助!如果你还有其他问题,请随时提问。 |
|