文章目录
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,