如何在统计算法中使用Word2Vec CBOW?
How to use Word2Vec CBOW in statistical algorithm?
我看过几个在神经网络模型中使用 CBOW 的例子(虽然我没看懂)
我知道 Word2Vec 与 BOW 或 TFIDF 不相似,因为 CBOW 没有单一值
我看到的所有示例都使用神经网络。
我有 2 个问题
1- 我们能否将向量转换为单个值并将其放入数据框中,以便我们可以在逻辑回归模型中使用它?
2- 是否有 CBOW 逻辑回归的简单代码?
更多说明。
就我而言,我有一个语料库,我想比较 BOW 和 CBOW 的主要特征
转换为 BOW 后
我得到了这个数据集
RepID Label Cat Dog Snake Rabbit Apple Orange ...
1 1 5 3 8 2 0
2 0 1 0 0 6 9
3 1 4 1 5 1 7
转换为 TFIDF 后
我得到了这个数据集
RepID Label Cat Dog Snake Rabbit Apple Orange ...
1 1 0.38 0.42 0.02 0.22 0.00 0.19
2 0 0.75 0.20 0.08 0.12 0.37 0.21
3 1 0.17 0.84 0.88 0.11 0.07 0.44
我正在观察每个模型中前 3 个特征的结果
所以我的数据集变成了这样
BOW(我在这里为将要省略的值放空)
RepID Label Cat Dog Snake Rabbit Apple Orange ...
1 1 5 null 8 null null 7
2 0 null null null 6 9 2
3 1 4 null 5 null 7 null
TFIDF(我在这里为将要省略的值放空)
RepID Label Cat Dog Snake Rabbit Apple Orange ...
1 1 0.38 0.42 null 0.22 null null
2 0 0.75 null null null 0.37 0.21
3 1 null 0.84 0.88 null null 0.44
我现在想对 Word2Ven CBOW 做同样的事情
我想取CBOW模型中的最高值
RepID Label Cat Dog Snake Rabbit Apple Orange ...
1 1 v11 v12 v13 v14 v15 v16
2 0 v21 v22 v23 v24 v25 v26
3 1 v31 v32 v33 v34 v35 v36
变成这样
RepID Label Cat Dog Snake Rabbit Apple Orange ...
1 1 v11 null v13 null v15 null
2 0 null null v23 null v25 v26
3 1 v31 null v33 v34 null null
无论内部训练方法,CBOW还是skip-gram,词向量都是多维向量:它包含许多浮点数。
所以在一个层面上,这是一个“值”——其中“值”是一个向量。但它从来都不是一个数字。
词向量,即使具有所有维度,也绝对可以作为下游逻辑回归任务的输入。但确切的细节取决于您正在操作的数据以及您打算实现的目标 - 因此您可能想要扩展您的问题,或者询问更具体的后续行动,并提供有关特定 data/task 您的更多信息正在考虑。
另请注意:这在 scikit-learn
等库的管道中更常见。将密集的高维词向量本身(或从词向量派生的其他特征)直接放入“数据帧”通常是一个错误,与在更多 compact/raw 中使用如此大的特征向量相比,增加了开销和间接性(比如)numpy
数组的格式。
我看过几个在神经网络模型中使用 CBOW 的例子(虽然我没看懂)
我知道 Word2Vec 与 BOW 或 TFIDF 不相似,因为 CBOW 没有单一值
我看到的所有示例都使用神经网络。
我有 2 个问题
1- 我们能否将向量转换为单个值并将其放入数据框中,以便我们可以在逻辑回归模型中使用它?
2- 是否有 CBOW 逻辑回归的简单代码?
更多说明。
就我而言,我有一个语料库,我想比较 BOW 和 CBOW 的主要特征
转换为 BOW 后
我得到了这个数据集
RepID Label Cat Dog Snake Rabbit Apple Orange ...
1 1 5 3 8 2 0
2 0 1 0 0 6 9
3 1 4 1 5 1 7
转换为 TFIDF 后
我得到了这个数据集
RepID Label Cat Dog Snake Rabbit Apple Orange ...
1 1 0.38 0.42 0.02 0.22 0.00 0.19
2 0 0.75 0.20 0.08 0.12 0.37 0.21
3 1 0.17 0.84 0.88 0.11 0.07 0.44
我正在观察每个模型中前 3 个特征的结果
所以我的数据集变成了这样
BOW(我在这里为将要省略的值放空)
RepID Label Cat Dog Snake Rabbit Apple Orange ...
1 1 5 null 8 null null 7
2 0 null null null 6 9 2
3 1 4 null 5 null 7 null
TFIDF(我在这里为将要省略的值放空)
RepID Label Cat Dog Snake Rabbit Apple Orange ...
1 1 0.38 0.42 null 0.22 null null
2 0 0.75 null null null 0.37 0.21
3 1 null 0.84 0.88 null null 0.44
我现在想对 Word2Ven CBOW 做同样的事情
我想取CBOW模型中的最高值
RepID Label Cat Dog Snake Rabbit Apple Orange ...
1 1 v11 v12 v13 v14 v15 v16
2 0 v21 v22 v23 v24 v25 v26
3 1 v31 v32 v33 v34 v35 v36
变成这样
RepID Label Cat Dog Snake Rabbit Apple Orange ...
1 1 v11 null v13 null v15 null
2 0 null null v23 null v25 v26
3 1 v31 null v33 v34 null null
无论内部训练方法,CBOW还是skip-gram,词向量都是多维向量:它包含许多浮点数。
所以在一个层面上,这是一个“值”——其中“值”是一个向量。但它从来都不是一个数字。
词向量,即使具有所有维度,也绝对可以作为下游逻辑回归任务的输入。但确切的细节取决于您正在操作的数据以及您打算实现的目标 - 因此您可能想要扩展您的问题,或者询问更具体的后续行动,并提供有关特定 data/task 您的更多信息正在考虑。
另请注意:这在 scikit-learn
等库的管道中更常见。将密集的高维词向量本身(或从词向量派生的其他特征)直接放入“数据帧”通常是一个错误,与在更多 compact/raw 中使用如此大的特征向量相比,增加了开销和间接性(比如)numpy
数组的格式。