词编码

1、词集模型

词集模型:将语料库的所有不相同的词,列出一个有顺序的列表,然后根据该顺序形成一个列表长度的向量,然后根据词列表的顺序,搜索句子里是否包含该词,包含的话向量的该位置置为1,否则置为0。

缺点:向量的顺序完全根据前面形成的词的列表的顺序而来,与句子的词的顺序无关,忽略了文本的词序,以及没有词语的权重信息

2、词袋模型

在词集模型的基础上,把置1改为词出现的频率信息或者tf-idf权重

缺点:还是没有次序信息

 

3、词向量

详细见: https://www.cnblogs.com/peghoty/p/3857839.html

(1)、 One hot representation

词向量维度大小为整个词汇表的大小,对于每个具体的词汇表中的词,将对应的位置置为1。比如我们有5个词组成的词汇表,词”Queen”在词汇表中的序号为2, 那么它的词向量就是(0,1,0,0,0)

缺点:无法表示出在语义层面上词语词之间的相关信息

          维数灾难

 

(2)、 Dristributed representation

得到Dristributed representation的方法包括 word2vec(本质就是一个产生词向量的工具)方法,word2vec中又包含两种不同的训练模型

(a) CBOW

(b)Skip-gram

对于训练方法的优化方法又分两种  (1)negative sampling  (2)、Hierarchical Softmax

 

最初的训练方法可以在这个知乎链接看到: https://www.zhihu.com/question/44832436

输入输出都是 one hot 编码最终得到的词向量是中间的权重参数

但是这种方法计算复杂度过大

因此有了(1)negative sampling  (2)、Hierarchical Softmax这两种优化训练方法

 

Hierarchical Softmax

输入是随机初始化的定义好长度的词向量

输出是一颗哈夫曼树

 

negative sampling

不再计算哈夫曼树了,而是采取采样出一些正负样本对来进行训练,正常的预测的单词是正样本,然后选取一定数量的其他单词作为负样本

设计到一个负采样的问题

4、附录

现在比较综合的任务,比如文本分类,是没有显式构建词向量的过程的,都是end to end 

比如输入一个能够表述一段文本的向量(比如向量的元素未每个词在数据集的词汇表中的次序作为一个数),然后神经网络里边会有一个embedding层,自动构建词向量(权重),然后输出定义为我们任务相关就可以了,比如情感分析的 1:正向情感 0 负向情感。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值