假设您有一个(wikipedia)预先训练的word2vec模型,并在另一个语料库(非常小,有1000种气味)上对其进行了训练。
您能想象一种将向量搜索限制为仅“经过训练的”语料库的方法吗?
例如
model.wv.similar_by_vector()
将简单地找到给定向量的最接近词,无论它是Wikipedia语料库的一部分还是重新训练的词汇表。
另一方面,对于“单词”搜索,存在以下概念:
most_similar_to_given('house',['garden','boat'])
我曾尝试从头开始基于小型语料库进行训练,并且它按预期工作。但是,如果分配的向量来自预先训练的集合,当然可以更强大。
答案 0 :(得分:0)
分享一种有效的手动方法:
scipy.spatial.KDTree.query()
这只会在给定语料库中找到最接近的单词,并按预期工作。
答案 1 :(得分:0)
与建议在新KeyedVectors
实例中创建文档向量子集的方法类似,建议here,假设small_vocab
是新语料库中单词的列表,则可以尝试:
subset_vectors = WordEmbeddingsKeyedVectors(vector_size)
subset_vectors.add(small_vocab, w2v_model.wv[small_vocab])
然后subset_vectors
仅包含您选择的单词,但支持熟悉的操作,例如most_similar()
。