一、词的表示方法
独热编码、词袋模型、词向量
1.独热编码(One-Hot Encoding)
1.1 定义
方法是把每个词表示为一个长向量,该这个向量的维度是词表大小,向量中只有一个维度的值为1,其余维度为0,这个维度就代表了当前的词。
例如:苹果 [0,0,0,1,0,0,0,0,···]
1.2 特点:
(1)不能展示词与词之间的关系:
词向量间两两正交
(2)稀疏性非常强,当词典非常大时,编码出的向量维度也会很大
1.3 适用:
2.词袋模型 (Bog-of-Words,BoW)
2.1 定义
该方法将文本想象成一个装词的袋子,不考虑词之间的上下文关系,不关心词在袋子中存放的顺序,仅记录每个词在该文本(词袋)中出现的次数。该向量的每一个维度的数字表示该维度所指代的词在该文本中出现的次数。如图所示,在文本doc_1中,Rome出现32次,Paris出现14次,France出现0次。
3. 词向量
词的分布式表示,也就是基于上下文的稠密向量表示法,通常称为词向量或词嵌入(Word Embedding)。
3.1 产生词向量的手段主要有三种:
●Count-based,基于计数的方法,简单说就是记录文本中词的出现次数。
●Predictive,基于预测的方法,既可以通过上下文预测中心词,也可以通过中心词预测上下文。
开源工具word2vec,包括CBOW和Skip-gram两个模块
- CBOW:通过上下文的词向量推理中心词。
- Skip-gram:根据中心词推理上下文。
●Task-based。基于任务的,也就是通过任务驱动的方法。通过对词向量在具体任务上的表现效果对词向量进行学习。
3.2 预训练词向量
word2vec之后,涌现了更多word embedding方式,如Glove、fasttext、ElMo等。如今,已有很多预训练完成的词向量,可直接调用使用,用来初始化,可提升简单网络的收敛速度、精度。
3.3 分布式表示优点:
(1)词之间存在相似关系:是词之间存在“距离”概念,这对很多自然语言处理的任务非常有帮助。
(2)包含更多信息:词向量能够包含更多信息,并且每一维都有特定的含义。在采用one-hot特征时,可以对特征向量进行删减,词向量则不能
来源:
1.飞桨AI Studio - 人工智能学习与实训社区
2. 《知识图谱:方法、实践与应用》王昊奋,漆桂林等