使用Python实现文本向量化(一)——腾讯词向量

Docs向量化(Embedding)

Embedding 也是文本语义含义的信息密集表示,每个嵌入都是一个浮点数向量,使得向量空间中两个嵌入之间的距离与原始格式中两个输入之间的语义相似性相关联。例如,如果两个文本相似,则它们的向量表示也应该相似,这一组向量空间内的数组表示描述了文本之间的细微特征差异。
简单来说,Embedding 帮助计算机来理解如人类信息所代表的“含义”,Embedding 可以用来获取文本、图像、视频、或其他信息的特征“相关性”,这种相关性在应用层面常用于搜索、推荐、分类、聚类。

1 腾讯词向量

腾讯词向量主页: 腾讯词向量主页
词向量下载地址:词向量下载地址

腾讯词向量提供 800 多万中文词条,每个词条展开成200维向量,解压后16G。它使用 Directionalskip-Gram(skip-Gram 的改进版)训练而成,可使用 Ginsim 调用。它提供的是通常意义上的词义但对于具体任务不是很完美。
具体来说,有超过 1200 万个中文单词和短语以及 650 万个英语单词和短语,这些单词和短语是在大规模高质量数据上进行预训练的。 这些向量捕获单词和短语的语义意义,可以广泛应用于许多下游任务(例如,命名实体识别和文本分类)和进一步的研究中。

from gensim.models import KeyedVectors
# gensim == 4.3.3
# 一定要注意版本,不同版本的gensim调用方法不一样!!!
file = r'\tencent-ailab-embedding-zh-d200-v0.2.0-s\tencent-ailab-embedding-zh-d200-v0.2.0-s.txt'
wv_from_text = KeyedVectors.load_word2vec_format(file, binary=False)
# wv_from_text.init_sims(replace=True)
wv_from_text.fill_norms(force=False)
word = '膝关节置换手术'
if word in wv_from_text.key_to_index.keys():
    vec = wv_from_text[word]
    print(wv_from_text.most_similar(positive=[vec],topn=20))
else:
    print('没找到')

在这里插入图片描述

# 查询词向量
wv_from_text.word_vec('地球')

使用Python实现文本向量化(一)——腾讯词向量_第1张图片

# 查询与郭靖最接近的词
wv_from_text.most_similar('郭靖')

使用Python实现文本向量化(一)——腾讯词向量_第2张图片

# 计算词距
print(wv_from_text.distance("喜欢","讨厌"))
print(wv_from_text.distance("喜欢","爱"))
print(wv_from_text.distance("喜欢","西瓜"))

在这里插入图片描述

# 计算字串距离
print(wv_from_text.n_similarity(["风景","怡人"],["山美","水美"]))
print(wv_from_text.n_similarity(["风景","怡人"],["上","厕所"]))

在这里插入图片描述

你可能感兴趣的:(Python使用技巧,深度学习,python,人工智能)