【问题标题】:How to use Word2Vec CBOW in statistical algorithm?如何在统计算法中使用 Word2Vec CBOW?
【发布时间】:2021-06-13 04:13:55
【问题描述】:

我见过几个在神经网络模型中使用 CBOW 的例子(虽然我不明白)

我知道 Word2Vec 与 BOW 或 TFIDF 不同,因为 CBOW 没有单一值

我看到的所有例子都是使用神经网络。

我有 2 个问题

1- 我们可以将向量转换为单个值并将其放入数据框中,以便我们可以在逻辑回归模型中使用它吗?

2- 是否有任何简单的代码用于逻辑回归的 CBOW 使用?

更多解释。

就我而言,我有一个语料库,我想对 BOW 和 CBOW 中的顶级特征进行比较

转为弓之后

我得到了这个数据集

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(我将 null 放在此处表示将被省略的值)

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(我将 null 放在此处表示将被省略的值)

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

【问题讨论】:

  • 您的数据示例令人困惑,因为:(1) BoW 和 TFIDF 向量模型通常具有“空”值 - 缺少术语时实际为零; (2) 不清楚v11v23 等标记的含义。 (3) 没关系“CBOW”——在 word2vec 模型中没有真正有意义的“最高值”:一个词有一个 N 维向量,其中每个暗淡都是不同的非零值,并且任何单独的暗淡值都没有独立意义; (4) 选择的词与真实数据或自然语言不同; (5) 不清楚您要预测/回归的内容。
  • 什么是您开始使用的数据类型的真实、有形的示例,您真正的最终目标是什么?
  • @gojomo 我放了 null 来说明我将删除不在前 3 中的值
  • @gojomo v11, v12, 代表Vector1 Venctor 2.等
  • 但是即使你删除了较低的值,BoW 或 TFIDF 或其他向量模型仍然具有固定宽度的特征表示,在它成为回归输入的水平上。什么是“向量 1”、“向量 2”等?鉴于 word2vec 为每个单词提供了一个向量,它们是哪个 单词 的向量?

标签: nlp logistic-regression word2vec


【解决方案1】:

无论内部训练方法是 CBOW 还是 skip-gram,词向量始终是一个多维向量:它包含许多浮点数。

所以在一个层面上,这是一个“值”——其中“值”是一个向量。但它从来不是一个数字。

词向量,即使具有所有维度,也绝对可以作为下游逻辑回归任务的输入。但确切的细节取决于您正在操作的数据以及您打算实现的目标 - 因此您可能想要扩展您的问题,或者询问更具体的后续行动,并提供有关您正在执行的特定数据/任务的更多信息考虑。

另请注意:这更多地是通过像scikit-learn 这样的库的管道来完成的。将密集的高维词向量本身(或从词向量派生的其他特征)直接放入“数据帧”通常是一个错误,与以更紧凑/原始格式处理如此大的特征向量相比,增加了开销和间接性(比如说)numpy 数组。

【讨论】:

  • 我添加了更多细节。请让我知道我想要实现的目标是否有意义
  • 感谢您提供更多详细信息。根据上面的 cmets,您的抽象/综合示例数据仍然有点混乱,更具体/具体会有所帮助。 (真正的数据是什么,真正的目标是什么?)但最普遍的是:看起来你有一个二进制文本分类问题。有很多方法可以将文本转换为特征向量。其中一些使用词向量来帮助添加功能。但是将词向量放入单个数据框单元格可能是一个错误的转变。
猜你喜欢
  • 2018-03-07
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
  • 2014-03-29
  • 2019-02-23
  • 1970-01-01
  • 2019-11-14
  • 2017-05-28
相关资源
最近更新 更多