基于word2vec的多组词语相似度计算

1. 前言

之前写过一篇类似的文章,基于预训练词向量的文本相似度计算-word2vec, paddle,讲的计算一个词汇和一组词汇的相似度计算。
本文主要讲,多组词语之间的相似度比较。

语料为:

A = ['轿车', '宝石', '旅游', '男孩子',... ]
B = ['汽车', '宝物', '游历', '小伙子', ...]

2. 找到对应词汇id

def getVocab(path="vocab.txt"):
    # 读取文件并得到dict
    vocab_dict = {
   } #"unk":0
    id = 0
    with open(path, "r", encoding="utf-8") as f:
        for line in f.readlines():
            word = line.strip()
            vocab_dict[word] = id
            id += 1
    return vocab_dict

vocab_dict = getVocab()

def getIdByWords(mylist):
    #根据mylist找到对应的id
    myid = []
    for word in mylist:
        myid.append(vocab_dict.get(word,0))
    return myid

MC30_A = ['轿车', '宝石', '旅游', '男孩子', '海岸', '庇护所', '魔术师', '中午', '火炉', '食物', '鸟', '鸟', '工具', '兄弟', '起重机', '小伙子',
            '旅行', '和尚', '墓地', '食物', '海岸', '森林', '岸边', '和尚', '海岸', '小伙子', '琴弦', '玻璃', '中午', '公鸡']
id_a = getIdByWords(MC30_A)
print(id_a)

得到结果:

[8808, 6546, 608, 21590, 5701, 109972, 15229, 11022, 39583, 1362, 3004, 3004, 1067, 1733, 23391, 
  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值