我成功地关注了关于Word2Vec的deeplearning4j.org教程,因此我可以加载已经训练过的模型或基于一些原始文本训练一个新模型(更具体地说,我使用GoogleNews-vectors-negative300
和Emoji2Vec
预先训练的模型)。
但是,我想将上述两个模型结合起来,原因如下:有一个句子(例如,来自Instagram或Twitter的评论,由表情符号组成),我想在句子中识别表情符号,然后将它映射到与之相关的单词。为了做到这一点,我计划迭代句子中的所有单词并计算接近程度(表情符号和单词在矢量空间中的位置)。
我found the code如何上传现有模型。但是,提到在这种情况下不添加新单词,并且仅基于新的文本语料库更新现有单词的权重。
我很感激我对这个问题的任何帮助或想法。提前谢谢!
答案 0 :(得分:1)
结合使用不同语料库训练的两个模型并不是我最熟悉的word2vec库中的简单支持操作。
特别是,即使在两个语料库中出现相同的单词,甚至在类似的上下文中,此算法在初始化和训练期间使用的随机化以及多线程训练注入的额外随机化意味着单词可能出现在完全不同的地方。它只是相对距离/方向相对于应该大致相似的其他词 - 而不是特定的坐标/旋转。
因此合并两个模型需要将一个坐标转换为另一个坐标。这本身通常涉及从一个空间到另一个空间的学习 - 投射,然后将独特的单词从源空间移动到幸存的空间。我不知道DL4J是否有内置的例程; Python gensim
库在最近的版本中有一个TranslationMatrix
示例类,可以做到这一点,因为使用单词向量进行语言到语言的翻译。