node2vec 是否支持负边权重?

Does node2vec support negative edge weights?

node2vec 是否支持负权重边?我有一个边缘列表,其中有几个边缘是负值,但我奇怪地在 运行 代码上得到 ZeroDivisionError。但是,我检查过,没有零边。

编辑:被要求分享代码。我没有对原始存储库进行任何更改,因此我将引发错误的确切行粘贴到此处。

unnormalized_probs = []
    for dst_nbr in sorted(G.neighbors(dst)):
        if dst_nbr == src:
            unnormalized_probs.append(G[dst][dst_nbr]['weight']/p)
        elif G.has_edge(dst_nbr, src):
            unnormalized_probs.append(G[dst][dst_nbr]['weight'])
        else:
            unnormalized_probs.append(G[dst][dst_nbr]['weight']/q)
    norm_const = sum(unnormalized_probs)
    normalized_probs =  [float(u_prob)/norm_const for u_prob in unnormalized_probs]

最后一行出现 ZeroDivisionError 错误。 作为输入的我的边缘列表如下:

0 0 1
234 11 -2
12 0 -1

零值节点不是问题,在我运行正节点值的代码之前它们不是问题。

我想通了。将权重值(存储在非标准化概率中)相加以获得一个名为 'norm_const' 的值,然后将其除以非标准化概率。所以由于它们被添加,出现零发生的可能性,因此零除法错误。