美文网首页自然语言处理
如何gensim加载glove训练的词向量

如何gensim加载glove训练的词向量

作者: Evermemo | 来源:发表于2018-11-09 21:58 被阅读184次

    如何gensim加载glove训练的词向量

    一、前言

    glove和word2vec是目前最常用的两个训练词向量的模型,两者训练出来的文件都以文本格式呈现,区别在于word2vec包含向量的数量及其维度
    下面举个例子:
    glove词向量的格式如下:

    word1 0.123 0.134 0.532 0.152
    word2 0.934 0.412 0.532 0.159
    word3 0.334 0.241 0.324 0.18
    ...
    word9 0.334 0.241 0.324 0.188
    

    word2vec词向量的格式:

    9 4   # 这一行包含向量的数量及其维度
    word1 0.123 0.134 0.532 0.152
    word2 0.934 0.412 0.532 0.159
    word3 0.334 0.241 0.324 0.188
    ...
    word9 0.334 0.241 0.324 0.188
    

    二、gensim加载glove训练的词向量

    由于glove模型目前只有一个C的版本,而且也未添加到其他库中。
    glove官方链接
    gensim库添加了一个模块,可以用来将glove格式的词向量转为word2vec的词向量,具体操作如下:

    from gensim.test.utils import datapath, get_tmpfile
    from gensim.models 
    import KeyedVectors
    # 输入文件
    glove_file = datapath('test_glove.txt')
    # 输出文件
    tmp_file = get_tmpfile("test_word2vec.txt")
    
    # call glove2word2vec script
    # default way (through CLI): python -m gensim.scripts.glove2word2vec --input <glove_file> --output <w2v_file>
    
    # 开始转换
    from gensim.scripts.glove2word2vec import glove2word2vec
    glove2word2vec(glove_file, tmp_file)
    
    # 加载转化后的文件
    model = KeyedVectors.load_word2vec_format(tmp_file)
    

    至此,我们就可以完美的用gensim加载glove训练的词向量了。

    三、参考链接

    此教程来自于gensim的官方文档

    相关文章

      网友评论

        本文标题:如何gensim加载glove训练的词向量

        本文链接:https://www.haomeiwen.com/subject/koraxqtx.html