如何解释gensim的Word2vec最相似方法的输出,并了解它是如何产生输出值的

2024-05-19 00:23:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在一个问题上实现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.前缀为#的词为诊断,其余为症状

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

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

有谁能帮我回答这些问题或强调这种方法的缺点/优点吗


Tags: of数据症状word2vecfever疾病语料库loss
1条回答
网友
1楼 · 发布于 2024-05-19 00:23:35

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长度的特征向量和一个类。接下来,您可以将其视为任何其他机器学习问题

如果你想预测疾病,那么只需在列车测试分割后使用分类模型。这样您就可以验证数据

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

相关问题 更多 >

    热门问题