1 是什么?

词袋模型是信息检索领域的一种常用的文档表示方法。

词袋直观理解就是装词语的袋子,词袋模型就是将相同的词语放进一个词袋,然后统计出词频得到的一个向量。

让我们看个例子,现在有两个句子:

句子1: 通往人工智能之路没有捷径

句子2: 我要认真学习人工智能

1.1 构建词典

先对这两个句子进行分词(如果是英文则不需要):

句子1: 通往 / 人工智能 / 之路 / 没有 / 捷径

句子2: 我 / 要 / 认真 / 学习 / 人工智能

基于句子1和句子2的所有词语,构建词典(类似于哈希表),即:

[通往, 人工智能, 之路, 没有, 捷径, 我, 要, 认真, 学习]

1.2 计算向量

这个词典的长度为9。接下来,我们分别将两个句子表示成长度为9的向量,向量的索引内容对应词典中词出现的次数。

句子1: [1, 1, 1, 1, 1, 0, 0, 0, 0]

句子2: [0, 1, 0, 0, 0, 1, 1, 1, 1]

2 有什么用?

  1. 通过计算不同句子的向量之间的夹角,来判断两个句子的相似度。
  2. 以词袋模型作为文档的特征,对文档进行分类。

3 有什么问题?

词袋模型没有考虑词序、语法等,也就是说「我 / 喜欢 / 你」和「你 / 喜欢 / 我」在词袋模型中的表达是完全一样的,很明显这两句话并不是一个意思。

4 参考资料