7

我正在学习分类。我阅读了有关使用向量的信息。但是我找不到将带有单词的文本翻译成向量的算法。是关于生成单词的散列并将 1 添加到向量中的散列位置吗?

4

2 回答 2

12

当大多数人谈论将文本转换为特征向量时,他们的意思是记录单词(token)的存在。

编码向量的两种主要方法。一个是显式的,其中0每个不存在的单词都有一个(但在您的词汇表中)。另一种方式是隐式的——就像一个稀疏矩阵(但只是一个向量)——你只用一个频率值编码术语>= 1

词袋模型

最能解释这一点的主要文章很可能是词袋模型,它广泛用于自然语言处理应用程序。

显式弓向量示例:

假设你有以下词汇:

{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>

顺序是任意的。

于 2013-06-11T22:09:48.850 回答
1

如果您正在学习分类,我将从更简单、更直观的文本表示词袋开始。

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

于 2013-06-12T18:20:31.347 回答