传统的基于规则或基于统计的自然语义处理方法将单词看作一个原子符号,被称为独热表示法(one-hot representation)。独热表示法把每个词表示为一个长向量。这个向量的维度是词表大小,向量中只有一个维度的值为1,其余维度为0。以“The dog barked at the mailman”这一句子为例,忽略大小写和标点符号,可构建一个大小为5的词汇表(“the”,“dog”,“barked”,“at”,“mailman”),并对该词汇表的单词以0~4进行编号,则“dog”可被表示为一个5维向量[0,1,0,0,0]。
独热码有着以下优点:一是可快速计算,表示之间可以采用矩阵操作来快速计算得到结果;二是具有很好的可解释性,有利于人工归纳与总结特征,并通过特征组合进行高效的特征工程;三是通过多种特征组合得到的表示向量通常是稀疏的二值向量,当用于线性模型时计算效率非常高。然而它的缺点也是显而易见的。若一个文本有10万个词,那么将建立一个10万维的词表,每个词向量的大小便是10万维。这种表示方式在词数大的文本中运用时,在存储上会造成大量浪费,容易造成维数灾难。同时在独热码表示方式中,不同词之间总是正交的,因此无法衡量不同词之间的相似度,词与词之间的关系难以被展示。通过独热码表示方式形成的文本矩阵也只能反映每个词是否出现,但无法突出词之间的重要性区别。
词袋表示法又称计数向量表示法,是在独热表示法的基础上,对词表中的每一个词在该文本出现的频次进行记录,以表示当前词在该文本的重要程度。文本的向量可以直接由单词的向量求和得到。例如,Bob likes to play basketball,Jim likes too.根据词典Dict={1.Bob,2.like,3.to,4.play,5.basketball,6.also,7.Jim,8.too},以上句子利用词袋表示法可表示为[1,2,1,1,1,0,1,1]。
向量中的数字表示该词出现了多少次。这种表示方法的优点是作为一种基于统计的文本表示方法,它继承了独热表示法计算方便的优点,可以在大规模数据上进行快速处理。而词袋表示法的缺点是忽略了文本字词之间的顺序,容易造成信息的丢失或混淆。