词袋模型(bag of words,BOW)

前言

词袋模型是自然语言处理中在建模文本时常用的文本表示方法。

简单例子

维基百科上的给出如下的例子:
John likes to watch movies. Mary likes too.
John also likes to watch football games.
将上面的两句话中看作一个文档集,列出文档中出现的所有单词(忽略大小写与标点符号):
“John” “likes” "to “watch” “movies” “also” “football” "games "Mary“ “too”
将其构建为如下一个词典 (dictionary):
{“John”: 1, “likes”: 2,“to”: 3, “watch”: 4, “movies”: 5,“also”: 6, “football”: 7, “games”: 8,“Mary”: 9, “too”: 10}
这是一个包含15个单词预料库中10个单词的词汇。
因为我们知道词汇表有10个单词,所以我们可以使用10的固定长度文档表示,在向量中有一个位置来对每个单词进行评分。最简单的评分方法是将单词的存在标记为布尔值,0表示缺席,1表示存在。使用我们词汇表中上面列出的单词的任意排序,我们浏览第一个文档(John likes to watch movies. Mary likes too.)并将其转换为二进制向量。
转换如下:
“John”: 1
“likes”: 2
“to”: 1
“watch”: 1
“movies”: 1
“also”: 0
“football”: 0
“games”:0
“Mary”: 1
“too”: 1
那么这个二进制向量,就是这样:
1,2,1,1,1,0,0,0,1,1
这个向量共包含10个元素, 其中第i个元素表示字典中第i个单词在句子中出现的次数。
另外一个文本可以表示为:1, 1, 1, 1, 0, 1, 1, 1, 0, 0

你可能感兴趣的:(NLP)