我正在检查 Simhash 模块(https://github.com/leonsim/simhash)。
我认为 Simhash("String").distance(Simhash("Another string")) 是两个字符串之间的汉明距离。现在,我不确定我是否完全理解这个“get_features(string) 方法,如 ( https://leons.im/posts/a-python-implementation-of-simhash-algorithm/ ) 中所示。
def get_features(s):
width = 2
s = s.lower()
s = re.sub(r'[^\w]+', '', s)
return [s[i:i + width] for i in range(max(len(s) - width + 1, 1))]
现在,当我尝试使用宽度 2 计算“aaaa”和“aaas”之间的距离时,它给出的距离为 0。
from simhash import Simhash
Simhash(get_features("aaas")).distance(Simhash(get_features("aaaa")))
我不确定我在这里错过了什么。