我正在尝试进行情感分析。为了将单词转换为单词向量,我正在使用Word2Vec模型。假设我在名为“句子”的列表中有所有句子,我将这些句子传递给Word2Vec如下:

model = word2vec.Word2Vec(sentences, workers=4 , min_count=40, size=300,   window=5, sample=1e-3)

由于我对单词矢量是菜鸟,所以我有两个疑问。
1-将功能数量设置为300定义单词向量的功能。但是这些功能意味着什么?如果此模型中的每个单词由1x300 numpy数组表示,那么这300个功能表示该单词的含义是什么?

2-上述模型中以“样本”参数表示的下降采样在实际中是什么?

提前致谢。

有帮助吗?

解决方案

1-特征数:在神经网络模型方面,它表示投影(隐藏)层中神经元的数量。当投影层建立在分布假设的基础上时,每个单词的数值向量表示其与上下文单词的关系。

这些特征是由神经网络学到的,因为这是无监督的方法。每个向量都有几套语义特征。例如,让我们以经典示例为例 V(King) -V(man) + V(Women) ~ V(Queen) 每个单词以300-D矢量表示。 V(King) 将具有皇家性,王国,男性气质,人类的语义特征,以一定顺序。 V(man) 将具有男性气质,人类,以一定的顺序工作。因此 V(King)-V(Man) 完成,男性气质,人类特征将被无效,并在加入时 V(Women) 具有女性气质,将添加人类特征,从而导致向量与 V(Queen). 。有趣的是,这些特征按一定顺序编码在矢量中,以便诸如加法,减法等数值计算完美地工作。这是由于神经网络中无监督学习方法的性质。

2-有两种近似算法。 Hierarchical softmaxnegative sampling. 。当给出样品参数时,它需要负采样。在层次软件的情况下,对于每个单词矢量,其上下文单词都会给出正输出,并且词汇中的所有其他单词都会给出负输出。时间复杂性问题通过负抽样解决。就像在阴性采样中,而不是整个词汇一样,只给出了词汇的采样部分,给出了负输出,并且对向量进行了训练,该载体比以前的方法快得多。

其他提示

  1. 根据分布假设,单词矢量中的个体维度并不表示现实世界中的单词。您需要担心各个维度。如果您的问题是这样我应该如何选择Dimesions的数量,它纯粹基于您的数据实验,并且可以从100到1000。对于许多实验,在Wiki文本上进行培训的许多实验,300维度主要提供最好的。结果。
  2. 样品参数是用于修剪具有高频的单词的参数。例如““”是“”,这些停止词在窗口中没有考虑在窗口中,同时预测内部单词,并且默认值可以很好地识别频率更高的这些停止单词。
许可以下: CC-BY-SA归因
scroll top