one hot encoder(词袋模型)
每个词表示为一个向量,向量长度为语料库中词的个数,每个向量值只有一个编码为1其余是0
杭州 [0,0,0,0,0,0,0,1,0,……,0,0,0,0,0,0,0]
上海 [0,0,0,0,1,0,0,0,0,……,0,0,0,0,0,0,0]
宁波 [0,0,0,1,0,0,0,0,0,……,0,0,0,0,0,0,0]
北京 [0,0,0,0,0,0,0,0,0,……,1,0,0,0,0,0,0]
缺点:
- 这种方式编码比较随机,向量之间是相互独立的,很难看出向量之间的语义关系。
- 存在数据稀疏问题。向量维度过大,容易造成维度灾难。
word embedding(词向量)
将词转化成一种分布式表示,又称词向量。分布式表示将词表示成一个定长的连续的稠密向量。
- 分布式表示优点:
1、词之间存在相似关系: 是词之间存在“距离”概念,这对很多自然语言处理的任务非常有帮助。
2、包含更多信息: 词向量能够包含更多信息,并且每一维都有特定的含义。在采用one-hot特征时,可以对特征向量进行删减,词向量则不能
- 较著名的采用neural network language
model生成词向量的方法有:Skip-gram、CBOW、LBL、NNLM、C&W、GloVe等。
word2vec
通过单词和上下文彼此预测。