Embedding / Chinese-Word-Vectors

100+ Chinese Word Vectors 上百种预训练中文词向量
Apache License 2.0
11.76k stars 2.31k forks source link

不同语料库训练的词向量是否可以通用? #144

Open Xiaqiannbu opened 3 years ago

Xiaqiannbu commented 3 years ago

如果可以通用,则这个词向量语料库没有的可以去别的词向量语料库找。不过不可以通用则不行。

Xiaqiannbu commented 3 years ago

稀疏词向量应该不可以,密集词向量不知道可不可以?

Xiaqiannbu commented 3 years ago

以及同一语料库的词、词+ n-gram、词+字等等是否可以通用?

shenshen-hungry commented 3 years ago

同一个文件里面的向量是同一次训练的结果,不同文件是不同的训练结果,因此不同文件不建议混合使用,最好单独使用。

Xiaqiannbu commented 3 years ago

您好,可否研究得更深入些。 我认为如果用的同一个词汇表,那么不同语料库训练的差异仅限语料库的差异,这个问题不是很大我认为。 如果用的不同词汇表,按照Mikolov的连续词袋法和跳字法,词向量的作用仅为从one-hot向量映射到300维空间,后面才是300维空间的转化和映射回one-hot向量。从这个意义上来说,同一个词的300维词向量应该是差异不大的,即在一个范围附近? 这是我的看法,作者认为如何呢?

------------------ 原始邮件 ------------------ 发件人: "Shen @.>; 发送时间: 2021年6月29日(星期二) 下午4:14 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [Embedding/Chinese-Word-Vectors] 不同语料库训练的词向量是否可以通用? (#144)

同一个文件里面的向量是同一次训练的结果,不同文件是不同的训练结果,因此不同文件不建议混合使用,最好单独使用。

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

shenshen-hungry commented 3 years ago

在训练的时候一开始需要对向量随机初始化,这样会导致不同的训练开始的位置不一样。相同语料下每次训练后的结果可以看作是同构的,但是数字肯定不一样,所以没法合起来用。对于不同语料下的训练,即不开始于同一个起点,同时也不同构,所以更没法一起用。

Xiaqiannbu commented 3 years ago

好的,明白。感谢您的答复!

------------------ 原始邮件 ------------------ 发件人: "Shen @.>; 发送时间: 2021年6月29日(星期二) 下午4:34 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [Embedding/Chinese-Word-Vectors] 不同语料库训练的词向量是否可以通用? (#144)

在训练的时候一开始需要对向量随机初始化,这样会导致不同的训练开始的位置不一样。相同语料下每次训练后的结果可以看作是同构的,但是数字肯定不一样,所以没法合起来用。对于不同语料下的训练,即不开始于同一个起点,同时也不同构,所以更没法一起用。

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

Xiaqiannbu commented 3 years ago

我现在想用您的词向量来求两个句子的相似度,计划用gensim加载词向量,然后用gensim内置的WMD的函数wmdistance计算。但是第一步需要加载,我看到有gensim.models.Word2Vec.load函数直接加载,但是不知道应该以怎样的格式把数据喂给它。我用gensim.models.Word2Vec.save保存后打开是乱码。gensim手册(https://radimrehurek.com/gensim/models/word2vec.html )里没有说该以怎样的方式喂数据。我担心无法用gensim加载您训练的词向量,如果怎样就没法使用gensim的功能了。

BeHappyForMe commented 3 years ago

我现在想用您的词向量来求两个句子的相似度,计划用gensim加载词向量,然后用gensim内置的WMD的函数wmdistance计算。但是第一步需要加载,我看到有gensim.models.Word2Vec.load函数直接加载,但是不知道应该以怎样的格式把数据喂给它。我用gensim.models.Word2Vec.save保存后打开是乱码。gensim手册(https://radimrehurek.com/gensim/models/word2vec.html )里没有说该以怎样的方式喂数据。我担心无法用gensim加载您训练的词向量,如果怎样就没法使用gensim的功能了。

问一下,同学有找到用gensim加载的方式了吗,同求

BeHappyForMe commented 3 years ago

我现在想用您的词向量来求两个句子的相似度,计划用gensim加载词向量,然后用gensim内置的WMD的函数wmdistance计算。但是第一步需要加载,我看到有gensim.models.Word2Vec.load函数直接加载,但是不知道应该以怎样的格式把数据喂给它。我用gensim.models.Word2Vec.save保存后打开是乱码。gensim手册(https://radimrehurek.com/gensim/models/word2vec.html )里没有说该以怎样的方式喂数据。我担心无法用gensim加载您训练的词向量,如果怎样就没法使用gensim的功能了。

model = models.KeyedVectors.load_word2vec_format('./sgns.weibo.bigram-char.bz2', ); 这样可以加载