我正在学习分类。我读到了使用矢量。但我找不到一种算法来将带有单词的文本翻译成矢量。是关于生成单词的哈希值并在向量中的哈希位置添加1?
答案 0 :(得分:11)
当大多数人谈论将文本转换为feature vector时,他们所说的只是记录单词(令牌)的存在。
编码矢量的两种主要方法。一个是明确的,你对每个不存在的单词都有一个0
(但在你的词汇表中)。另一种方式是隐含的 - 就像一个sparse matrix(但只是一个向量)---你只需要用频率值>= 1
编码术语。
最能解释这一点的主要文章很可能是bag of words model,它广泛用于自然语言处理应用程序。
假设你有词汇:
{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描述在文本表示和分类中使用散列。