Java 如何组合两个预先培训过的Word2Vec模型?

Java 如何组合两个预先培训过的Word2Vec模型?,java,nlp,emoji,word2vec,deeplearning4j,Java,Nlp,Emoji,Word2vec,Deeplearning4j,我成功地遵循了关于Word2Vec的deeplearning4j.org教程,因此我能够加载已经训练过的模型或基于一些原始文本训练新模型(更具体地说,我使用的是GoogleNews-vectors-negative300和Emoji2Vec预先训练过的模型) 然而,出于以下原因,我想结合上述两种模式:有一个句子(例如,Instagram或Twitter的评论,其中包含表情符号),我想识别句子中的表情符号,然后将其映射到与之相关的单词。为了做到这一点,我计划对句子中的所有单词进行迭代,并计算相似度

我成功地遵循了关于Word2Vec的deeplearning4j.org教程,因此我能够加载已经训练过的模型或基于一些原始文本训练新模型(更具体地说,我使用的是
GoogleNews-vectors-negative300
Emoji2Vec
预先训练过的模型)

然而,出于以下原因,我想结合上述两种模式:有一个句子(例如,Instagram或Twitter的评论,其中包含表情符号),我想识别句子中的表情符号,然后将其映射到与之相关的单词。为了做到这一点,我计划对句子中的所有单词进行迭代,并计算相似度(表情符号和单词在向量空间中的位置有多近)

我知道如何提升现有的模型。然而,有人提到,在这种情况下不会添加新词,并且只会根据新的文本语料库更新现有词的权重


我将非常感谢任何对我的问题的帮助或想法。提前谢谢

在我最熟悉的word2vec库中,将从不同小体训练的两个模型结合起来并不是一个简单、受支持的操作

特别是,即使相同的单词出现在两个小体中,甚至在相似的上下文中,该算法在初始化和训练期间使用的随机化,以及多线程训练注入的额外随机化,意味着单词可能出现在完全不同的位置。只有相对于其他单词的相对距离/方向应该大致相似,而不是具体的坐标/旋转


因此,合并两个模型需要将一个模型的坐标转换为另一个模型。这本身通常涉及从一个空间到另一个空间的学习投影,然后将独特的单词从源空间移动到幸存空间。我不知道DL4J是否有用于此的内置例程;Python
gensim
库在最新版本中有一个
TranslationMatrix
示例类,它可以做到这一点,因为语言到语言的翻译使用了单词向量

欢迎加入gitter上的DL4J开发支持社区:谢谢!我加入了Gitter的社区,然而,还没有人能回答我的问题。也许我需要重组它,有道理。谢谢取决于向量已经有多大。如果它们仍然足够兼容,就可以很容易地从两个空间中为每个单词连接向量,并基于连接向量执行相似性或操作,即,如果模型1的单词嵌入大小为300,而模型2的嵌入大小为200,然后,组合模型将只是每个字的串联,每个字的嵌入大小为300+200。