使用词向量进行文档分类
Document classification using word vectors
当我对用自然语言编写的文档进行分类和聚类时,我想到了一个问题......
由于word2vec和glove, and or等对分布式空间中的词进行向量化,不知有没有推荐或常用的文档向量化方法USING word vectors
例如,
Document1: "If you chase two rabbits, you will lose them both."
可以矢量化为,
[0.1425, 0.2718, 0.8187, .... , 0.1011]
我知道一个也称为 doc2vec 的文档,该文档与 word2vec 一样具有 n 维。但这是 1 x n 维度,我一直在测试以找出使用 doc2vec 的限制。
所以,我想知道其他人如何将词向量应用于大小稳定的应用程序。
只需将m个单词的向量堆叠起来,就会形成m x n维的向量。在这种情况下,向量维度 将不会统一,因为维度 m 将取决于文档 中的单词数。
If: [0.1018, ... , 0.8717]
you: [0.5182, ... , 0.8981]
..: [...]
m th word: [...]
并且这种形式不适合 运行 一些机器学习算法,例如 CNN。使用词向量以稳定形式生成文档向量的建议方法是什么?
要是再配论文就好了
谢谢!
从文本中获取固定大小向量的最简单方法,当您只有词向量时,将所有词向量平均在一起。 (向量可以被加权,但如果它们没有被单位长度归一化,它们来自训练的原始量级是有点它们单一意义强度的指标 – polysemous/ambiguous 单词往往具有较小幅度的向量。)它适用于许多用途。
如果训练文本已经与已知的 类 相关联,则可以专门训练词向量以更好地进行这样的组合。 Facebook 的 'classification' 模式下的 FastText 就是这样做的;词向量被优化得尽可能多或更多,以预测它们出现的文本的输出 类,就像它们预测它们的上下文-window 邻居(经典 word2vec)一样。
'Paragraph Vector' 技术,通常称为 'doc2vec',为每个训练文本提供一种浮动的伪词,它有助于每个预测,因此以类似词向量的位置结束可能代表该全文,而不是个人 words/contexts。
还有许多其他变体,包括一些基于更深层次预测网络的变体(例如 'Skip-thought Vectors'),或略有不同的预测目标(例如 'fastSent' 中的相邻句子),或其他泛化甚至可以在训练期间包括符号和数字的混合 inputs/targets(Facebook 的 StarSpace 中的一个选项,它探索与词向量和 FastText 类分类需求相关的其他实体向量化可能性)。
如果您不需要将文本折叠成固定大小的向量,而只是比较文本,也有像 "Word Mover's Distance" 这样的技术,它对一个文本采用 "bag of word-vectors",对另一个文本采用 "bag of word-vectors" , 并给出相似度分数。
当我对用自然语言编写的文档进行分类和聚类时,我想到了一个问题......
由于word2vec和glove, and or等对分布式空间中的词进行向量化,不知有没有推荐或常用的文档向量化方法USING word vectors
例如,
Document1: "If you chase two rabbits, you will lose them both."
可以矢量化为,
[0.1425, 0.2718, 0.8187, .... , 0.1011]
我知道一个也称为 doc2vec 的文档,该文档与 word2vec 一样具有 n 维。但这是 1 x n 维度,我一直在测试以找出使用 doc2vec 的限制。
所以,我想知道其他人如何将词向量应用于大小稳定的应用程序。
只需将m个单词的向量堆叠起来,就会形成m x n维的向量。在这种情况下,向量维度 将不会统一,因为维度 m 将取决于文档 中的单词数。
If: [0.1018, ... , 0.8717]
you: [0.5182, ... , 0.8981]
..: [...]
m th word: [...]
并且这种形式不适合 运行 一些机器学习算法,例如 CNN。使用词向量以稳定形式生成文档向量的建议方法是什么?
要是再配论文就好了
谢谢!
从文本中获取固定大小向量的最简单方法,当您只有词向量时,将所有词向量平均在一起。 (向量可以被加权,但如果它们没有被单位长度归一化,它们来自训练的原始量级是有点它们单一意义强度的指标 – polysemous/ambiguous 单词往往具有较小幅度的向量。)它适用于许多用途。
如果训练文本已经与已知的 类 相关联,则可以专门训练词向量以更好地进行这样的组合。 Facebook 的 'classification' 模式下的 FastText 就是这样做的;词向量被优化得尽可能多或更多,以预测它们出现的文本的输出 类,就像它们预测它们的上下文-window 邻居(经典 word2vec)一样。
'Paragraph Vector' 技术,通常称为 'doc2vec',为每个训练文本提供一种浮动的伪词,它有助于每个预测,因此以类似词向量的位置结束可能代表该全文,而不是个人 words/contexts。
还有许多其他变体,包括一些基于更深层次预测网络的变体(例如 'Skip-thought Vectors'),或略有不同的预测目标(例如 'fastSent' 中的相邻句子),或其他泛化甚至可以在训练期间包括符号和数字的混合 inputs/targets(Facebook 的 StarSpace 中的一个选项,它探索与词向量和 FastText 类分类需求相关的其他实体向量化可能性)。
如果您不需要将文本折叠成固定大小的向量,而只是比较文本,也有像 "Word Mover's Distance" 这样的技术,它对一个文本采用 "bag of word-vectors",对另一个文本采用 "bag of word-vectors" , 并给出相似度分数。