我已经用Word2Vec训练了一个模型,并通过完成具有不同相似性函数的类比(使用Google类比测试集)来计算其准确性。这是我正在使用的代码行(来自gensims WordEmbeddingsKeyedVectors类):
analogy_scores = vectors.accuracy(questions,
most_similar=similarity_function,
restrict_vocab=600000,
case_insensitive=True)
我已经成功地使用COSADD和COSMUL相似度函数计算了精度,现在正尝试使用一个烦恼的索引器将欧氏距离用作相似度度量。我已经将索引器做成这样:
indexer = AnnoyIndexer(model, 100)
WordEmbeddingsKeyedVectors中的most_like函数将索引器作为参数。在我的代码中,我重写了此函数,然后将其传递给烦人的索引器,然后尝试运行准确性方法,但所有分数均返回为0。但是,当我运行代码时:
print(most_similar(vectors, positive=['family', 'cars'], negative=['families']))
我得到正确的答案(汽车)。
是否有人在此之前使用烦人的索引器/知道我在做什么错?