使用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('郭靖')
参考文献:
腾讯词向量介绍
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术