如何解释 gensim 的 Word2vec 最相似方法的输出并理解它是如何得出输出值的

How to interpret output from gensim's Word2vec most similar method and understand how it's coming up with the output values

我正在尝试在一个问题上实施 word2vec。我将简要说明我的问题陈述:

我正在处理临床数据。我想根据一组症状预测前 N 种疾病。

Patient1: ['fever', 'loss of appetite', 'cold', '#flu#']
Patient2: ['hair loss', 'blood pressure', '#thyroid']
Patient3: ['hair loss', 'blood pressure', '#flu]
..
..
Patient30000: ['vomiting', 'nausea', '#diarrohea']

注意: 1.words #前缀为诊断,其余为症状

  1. 我的语料库没有任何句子或段落。它仅包含患者的症状名称和诊断

在这个语料库上应用 word2vec,我能够在给定一组输入症状的情况下生成前 10 个诊断。现在,我想了解该输出是如何生成的。我知道通过添加输入向量是余弦相似度,但我无法验证此输出。或者了解如何改进这一点。真的很想了解导致这些输出的后台到底发生了什么。

任何人都可以帮我回答这些问题或突出显示这种方法的drawbacks/advantages是什么

Word2vec 将为您提供 n 维向量,这些向量根据它们的共现性来表示每种疾病。这意味着您将每个症状表示为向量。

一行-

X = ['fever', 'loss of appetite']

X_onehot= [[0,0,0,1,0,0,0,0,0,0,0],
           [0,0,0,0,0,0,0,0,1,0,0]]

X_word2vec= [[0.002,0.25,-0.1,0.335,0.7264],
             [0.746,0.6463,0.0032,0.6301,0.223]]

Y = #flu

现在,您可以通过取 word2vec 的平均值来表示数据中的每一行,例如 -

X_avg = [[0.374 ,0.44815, -0.0484, 0.48255, 0.4747]]

现在数据集中的每一行都有一个长度为 5 的特征向量和一个 class。接下来,您可以像对待任何其他机器学习问题一样对待它。

如果你想预测疾病,那么只需在训练-测试拆分后使用 class化模型。这样您就可以验证数据。

对 word2vec 向量使用余弦相似度只会产生相似的症状。它不会让您建立疾病推荐模型,因为那样您将根据其他类似症状推荐症状。