鱼C论坛

 找回密码
 立即注册
查看: 1707|回复: 2

计算两个文段相似度所遇到的报错

[复制链接]
发表于 2023-9-25 20:12:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
    def compare_hash(content):
        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)
    compare_hash(t2)


报错是这样的:AttributeError: 'int' object has no attribute 'f'。怎么解决呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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)

希望这个回答对你有帮助!如果你还有其他问题,请随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-25 20:19:36 | 显示全部楼层
根据提供的代码和报错信息,可以推测问题可能出在Simhash函数上。错误信息"AttributeError: 'int' object has no attribute 'f'"提示Simhash对象的一个整数属性没有f属性。

这个错误通常发生在尝试使用未定义或不存在的属性时。在Simhash类的实现中,可能存在某个属性或方法名为'f',但它没有被正确定义或初始化,导致在Simhash(content)的过程中出错。

要解决这个问题,你需要检查Simhash类的定义,确保其中的属性和方法正确定义且正确初始化。请参考Simhash类的文档或源码来确认正确的用法,并确保相关依赖库已正确安装。

如果你无法找到解决方案,请提供Simhash类的相关代码以便更好地理解和诊断问题所在。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 10:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表