1.句子的表示 —boolean方法
句子都是用 0/1 表示的,出现的为1, 没出现则为 0
例子:假设词典库为
[我们, 又,去,爬山,今天,你们,昨天,跑步]
- 我们 | 今天 | 去 | 爬山
(1, 0, 1, 1, 1, 0, 0, 0) - 你们 | 又 | 去| 爬山| 又 | 去| 跑步
(0, 1 ,1, 1, 0, 1, 0, 1 )
注意:虽然 “又” 和"去" 出现了两次, 但是boolean表达的时候仍然为1
2.句子的表示 —基于count的表达
例子:假设词典库为
[我们, 又,去,爬山,今天,你们,昨天,跑步]
- 我们 | 今天 | 去 | 爬山
(1, 0, 1, 1, 1, 0, 0, 0) - 你们 | 又 | 去| 爬山| 又 | 去| 跑步
(0, 2 ,2, 1, 0, 1, 0, 1 )
注意:“又” 和"去" 出现了两次, 所以基于count的表达时为出现的次数2
3.基于count的句表达有什么缺点
比如有几个句表达为:
存在的问题是:衡量句子中单词的重要性时,并不是出现的次数越多就越重要,出现的越少就越不重要。
一种解决方案是: tf-idf方法
4.tf - idf 方法
官方定义:
说明:
- 当不考虑式子右边的 idf (w) 时, tf (d, w) 其实求得是基于count的句子表示
- 加了 idf (w) 一项就是表示单词的重要性。通常我们会觉得句子中某个词出现的次数越多越不重要,如 “the”, “he”。出现频率越小的单词反而越重要。---- 这就是 idf(w) 的思想。
- 在 idf (w) 项中,log 主要限制 N / N(w) 的大小。N(w) 出现在分母中,表示: w 出现在越少的文档中,单词越重要
- tf-idf (w) 是针对一个单词的,对于句子而言,就要计算多个tf-idf(wi)
例子:
5.总结
基于one-hot 词或句向量表达最常见的就是上述3种:
- boolean句子向量表示
- 基于count的句子向量表示
- tf-idf(w) 的词向量表示