代码之家  ›  专栏  ›  技术社区  ›  J. Taylor

组合/添加来自不同word2vec模型的向量

  •  0
  • J. Taylor  · 技术社区  · 7 年前

    我正在使用gensim创建以大文本语料库为基础的word2vec模型。我有一些基于StackExchange数据转储的模型。我也有一个从英语维基百科派生的语料库上训练的模型。

    假设两个模型中都有词汇术语,并且模型是用与word2vec相同的参数创建的。是否有任何方法可以组合或添加来自两个独立模型的向量,以创建一个新模型,该模型具有相同的词向量,如果我最初组合了语料库并对这些数据进行了培训,那么将产生相同的词向量?

    我之所以要这样做,是因为我希望能够生成一个具有特定语料库的模型,然后如果我稍后处理一个新的语料库,我希望能够将此信息添加到现有的模型中,而不是必须从头开始组合语料库和重新编译所有内容(即,我希望避免每次添加语料库时都重新处理每个语料库)模型信息)。

    在gensim或其他地方是否有内置函数允许我组合类似的模型,向现有模型添加信息而不是重新培训?

    1 回复  |  直到 7 年前
        1
  •  1
  •   gojomo    7 年前

    一般来说,只有一起训练的词向量才有意义地具有可比性。(这是训练过程中交错的拔河运动,将他们转移到有意义的相对方向,而且过程中有足够的随机性,即使是在相同语料库上训练的模型,也会在放置单个单词的位置上有所不同。)

    使用来自两个微粒的词作为路标,可以学习从一个空间A到另一个空间B的转换,试图将这些已知的共享词移动到另一个空间中相应的位置。然后,将相同的转换应用于 不是 在b中,您可以找到这些单词的b坐标,使它们与其他原生b单词具有可比性。

    这种技术在word2vec驱动的语言翻译(其中,导航柱对是已知的翻译)中取得了一定的成功,或者作为一种使用其他地方的词向量生成有限词向量集的方法。我不知道它是否适合你的目的。我想它可能会误入歧途,特别是当两个训练的小体使用不同感官的共享令牌时。

    有个班级, TranslationMatrix ,这可能会为您在 gensim 图书馆。见:

    https://radimrehurek.com/gensim/models/translation_matrix.html

    有一个演示笔记本,它的用途是:

    https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/translation_matrix.ipynb

    (如果可行,对混合在一起的语料库以及所有单词示例进行完整的培训可能会更好。)

    推荐文章