使用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('郭靖')

參考文獻:
騰訊詞向量介紹


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM