如何将文本转换为矢量

时间:2013-06-11 20:43:57

标签: machine-learning classification

我正在学习分类。我读到了使用矢量。但我找不到一种算法来将带有单词的文本翻译成矢量。是关于生成单词的哈希值并在向量中的哈希位置添加1?

2 个答案:

答案 0 :(得分:11)

当大多数人谈论将文本转换为feature vector时,他们所说的只是记录单词(令牌)的存在。

编码矢量的两种主要方法。一个是明确的,你对每个不存在的单词都有一个0(但在你的词汇表中)。另一种方式是隐含的 - 就像一个sparse matrix(但只是一个向量)---你只需要用频率值>= 1编码术语。

包字模型

最能解释这一点的主要文章很可能是bag of words model,它广泛用于自然语言处理应用程序。

显式BoW矢量示例:

假设你有词汇:

{brown, dog, fox, jumped, lazy, over, quick, the, zebra}

句子"the quick brown fox jumped over the lazy dog"可以编码为:

<1, 1, 1, 1, 1, 1, 1, 2, 0>

记住,位置很重要。

句子"the zebra jumped" ---即使篇幅较短 - 然后编码为:

<0, 0, 0, 1, 0, 0, 0, 1, 1>

明确方法的问题在于,如果你有数十万个词汇术语,每个文档也会有数十万个术语(大多数为零值)。

隐含的博客矢量示例:

在这种情况下,句子"the zebra jumped"可以编码为:

<'jumped': 1, 'the': 1, 'zebra': 1>

订单是任意的。

答案 1 :(得分:1)

如果您正在学习分类,我会从更简单,更直观的文字表示开始。

如果您对使用特征散列方法感兴趣,特别是如果您有大量数据,我建议this article描述在文本表示和分类中使用散列。