如何解决gensim TranslationMatrix .translate 与点积
我有两个嵌入空间,我正在对其应用翻译矩阵,以便从嵌入空间 V_i 转换到嵌入空间 V_j。
source_model = Word2Vec.load('word2vec_1967')
target_model = Word2Vec.load('word2vec_1990')
我创建了一组词对,在每一对中,第一个条目是来自源模型的词,第二个条目是来自目标模型的等效词,如下(将它们视为标准停用词列表因为我的目标不是学习两种不同语言的嵌入空间之间的映射,而是在不同时间嵌入同一语言的空间):
word_pairs = [
("w11","w12"),("w21","w22"),("w31","w32"),etc
]
现在我接下来要做的是根据上面的训练词学习翻译矩阵:
trans_model = TranslationMatrix(source_model,target_model,word_pairs=word_pairs)
我的问题是,在学习了映射之后,当我们想从嵌入空间V_i(本例中为1967)中的嵌入空间V_j(本例中为1990)中获取单词w_i的代表向量时,我应该这样做:
trans_model.translate(w_i,topn=1)
或者我应该做矩阵向量乘法(这将产生一个向量;例如,平移矩阵是 300 x 300,向量是 300 x 1 导致一个新的 300 x 1):
trans_model.dot(source_model.wv[w_i])
这两种方法有什么区别,我应该使用哪一种?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。