thunlp / SE-WRL

Improved Word Representation Learning with Sememes
MIT License
195 stars 56 forks source link

vectors.bin #14

Closed Mariobai closed 4 years ago

Mariobai commented 6 years ago

生成了这个文件请问一下怎么调用。我用传统的gensim模型调用不了这个训练好的词向量。

heyLinsir commented 6 years ago

该文件最后一行是词向量信息,一共有vocab_size * embedding_size个浮点数,按照顺序每embedding个浮点数是一个单词的词向量,顺序按照Vocab文件中的单词顺序。所以需要你手动处理一下。

Qinxiaohui1 commented 6 years ago

我想用训练完的SAT的结果去产生词向量,有几个问题想请教您 1,训练结束产生的vector.bin文件中没有具体的word embedding,只有对应的sense embedding,所以说这个vector.bin文件可以直接用来产生词向量么? 2,看到您之前的回复,说SAT.c 的893行对应着word embedding,这是训练完更新结束后的最终的词向量么?这个可以直接保存用来使用么? 3,如何有demo可以演示一下具体的词向量的是怎么获取和用起来的就更好了。

heyLinsir commented 6 years ago

@Qinxiaohui1

  1. 训练完的vector.bin文件中包含了具体的word embedding,在最后一行,您可以观察一下,该文件最后一行有vocab_size * embedding_size个浮点数。
  2. 893行对应的是最终的词向量,可以直接保存用来使用,并且这一部分被存储在了vector.bin中的最后一行。
  3. 谢谢您的建议,之后会补充一些说明或者demo。
Qinxiaohui1 commented 6 years ago

还有几个问题想向您请教一下 1,最终产生的word embedding是不是唯一的?要是唯一的话,在接下来用的时候有两个句子“有一种水果是苹果”与“苹果公司新推出了一款新的苹果笔记本电脑”,中的“苹果”的向量不就一样了么? 2,因为在vector.bin 文件中也保存了sense的sememe向量,我们可以仿照SAT的思路,结合上下文信息重新产生word embediding ,这样虽然消歧了,但会不会过程太过繁琐? 3,能否介绍一下你们在应用(Wordsim,Word analogy)过程中的消歧思路,非常感谢。

heyLinsir commented 6 years ago

@Qinxiaohui1

  1. 是唯一的,在我们的方法中,计算词向量有两种方式,一种是唯一确定的词向量。还有一种是文中描述的根据上下文确定的词向量,在训练过程中,这两种向量同时存在,有着不同的作用。但是在测试的时候,因为没有上下文信息,所以只使用了唯一确定的那个词向量进行测试。
  2. 可以这么进行消歧,我觉得和现有方法比起来也不算繁琐,只是有时候缺少上下文,所以没办法这样消歧。
  3. 在这两个应用中没有使用消歧,因为缺少上下文信息。我们想要表明的是,通过带有软消歧的训练过程,我们的方法可以得到更准确的词向量。也就是说,重点在于训练过程的消歧,而不是测试过程,如果有合适的测试语料,是可以进行消歧测试的。