zoukankan      html  css  js  c++  java
  • 使用gensim之KeyedVectors操作词向量模型

    本文介绍如何使用gensim.models.KeyedVectors类来加载和操作词向量模型(gensim的版本是4.0.0)

    我们可以从 Tencent AI Lab Embedding Corpus for Chinese Words and Phrases 下载一个训练好的词向量模型——Tencent_AILab_ChineseEmbedding.tar.gz,解压得到Tencent_AILab_ChineseEmbedding.txt,接着我们用KeyedVectors读取这个txt文件,并进行各种操作。

    首先先查看一下这个文件,由于文件巨大,无法直接用记事本打开,于是我们使用python进行读取

    f = open(r'./Tencent_AILab_ChineseEmbedding.txt', 'r', encoding='UTF-8')
    for i in range(10):
        a = f.readline()
        print(a)
    f.close()
    

    文件的第一行表示该文件中共包含8824330个词向量,每个词向量是200维的,接下来的每一行就是词以及对应的向量

    接着我们来读取模型

    from gensim.models import KeyedVectors
    
    # 读取词向量模型
    tc_wv_model = KeyedVectors.load_word2vec_format(r'./Tencent_AILab_ChineseEmbedding.txt', binary=False)
    

    上面所示的方式是将模型中的全部数据读入,由于模型中包含的词的数量十分庞大,因此这种方式非常耗费时间和内存空间,可以通过设置参数limit来限制读入的词向量,这样就会按序从头读取规定数量的词向量,一般而言,在这个词模型中,使用越频繁的词就会越靠前。

    # 读取词向量模型(限定前10000个词)
    tc_wv_model = KeyedVectors.load_word2vec_format(r'./Tencent_AILab_ChineseEmbedding.txt', binary=False, limit=10000)
    
    # 获取“词-索引”字典
    tc_wv_model.key_to_index
    

    # 查询词语“地球”对应的词向量
    tc_wv_model.word_vec('地球')
    

    # 查询与“郭靖”最相近的词
    tc_wv_model.most_similar('郭靖')
    

    参考文献:
    腾讯词向量介绍

  • 相关阅读:
    日期时间工具(dayjs)的使用
    Apache JMeter下载使用
    webpack 干货总结
    常见设计模式——模板方法
    常见设计模式——代理模式
    Codeforces Round #340 (Div. 2)E
    HDU 4547
    HDU 2586
    LCA算法的介绍与模板
    1073. 负二进制数相加
  • 原文地址:https://www.cnblogs.com/bill-h/p/14655224.html
Copyright © 2011-2022 走看看