首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在我自己的数据基础上重新训练手套向量?

如何在我自己的数据基础上重新训练手套向量?
EN

Data Science用户
提问于 2018-06-29 07:30:01
回答 2查看 7.6K关注 0票数 2

我在我的项目中使用GloVe和gensim。我有一个数据集(比方说mydata.txt),其中有一些新单词不在现有的手套中。那么,我如何再培训手套,使现有的预先训练手套现在必须包括我的语料库mydata.txt上的新词?我一直在苦苦挣扎,两周来一直未能找到解决方案。我发现的唯一类似的帖子就是这个对现有手套模型的改进

EN

回答 2

Data Science用户

发布于 2018-08-22 07:50:06

我不知道这是否是最好的方法,但我就是这样做的。您不能称之为再培训,但这是您可以添加到您的数据手套向量的方式之一。

代码语言:javascript
复制
from gensim.models import Word2Vec

glove_6b = "glove.6B.100d.txt"

#loading the glove vectors 

with open(glove_6b, "rb") as lines:
     wvec = {
        line.split()[0].decode(encoding): np.array(line.split()[1:], 
                                                         dtype=np.float32)
                                                         for line in lines}

#my data vectors

em_model = Word2Vec(text_data2, size=100, window=5, min_count=1, workers=2)
w2v = {w: vec for w, vec in zip(em_model.wv.index2word, em_model.wv.vectors)}

a = list(w2v.keys())

#mixing them both 
for i in a:
    if i in wvec:
       continue
    else:
       wvec.update({ i  : w2v[i]})

len(list(wvec.keys()))

当然,可以改进。希望这能有所帮助。

票数 1
EN

Data Science用户

发布于 2019-05-30 18:28:36

我不认为问题中的联系,或者把向量相加的想法是可行的。

我相信GloVe (Global )并不意味着要附加,因为它是基于语料库的单词共现统计数据,这些统计数据只在最初的训练时才知道。

您可以做的是使用gensim.scripts.glove2word2vec api将GloVe向量转换为word2vec,但我不认为您可以继续进行培训,因为它加载在KeyedVector中而不是一个完整的模型

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/33792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档