把文字转换成向量

把文字转换成词向量有多种编码方式:大致分为两类,离散表示和分布式表示。

离散表示即 无法衡量词与词之间的关系,即在编码过程中并不考虑词的顺序,

分布式表示 即用一个词附近的其他词来表示这个词。

离散: one-hot ,词袋模型(bag of words),N-gram

分布式:共现矩阵,NNLM 神经网络语言模型,CBOW(continue bag of  words)

one-hot:把语料中的所有词列在一个词典中,每个词都有唯一的索引,在词典中的顺序与在语料中的顺序无关,如果词典 里有十个词,那么这个词典就是1*10维的,对于语料中的每一个词,都构造一个1*10维的向量,其中语料中的词出现过一次或者多次,多记为1,没出现过则记为0.

缺点: 

词矩阵太稀疏,并且没有考虑词出现的频率。

Bag Of Words: 词袋模型,会统计词在语料中出现的次数

 是one hot词向量的加和。用元素的频率表示文本的特征。

N-gram,N代表是几元分词,(比如 如果是bi-gram就是二元分词, 用每两个相邻的词作为一个词作  构建向量)

 

离散表示具有的缺点:

1 词表维度随着语料库增长膨胀

2 n-gram词序列随着语料库膨胀更快

3 数据稀疏的问题

共现矩阵: 主要用于发现主题,(n个词共同出现的次数),使用一个对称的局域窗,窗口的大小表示词左右的几个词,将共现矩阵的行 或者 列作为词向量, 

缺点: 向量维数随词典大小线性增长   解决方法:降维  PCA  SVD 

        存储整个词典所需空间消耗巨大

      矩阵稀疏

 

NNLM:  神经网络语言模型   用前N个词去推测最后一个词

 

 CBOW :用左右附近的词去推测中间的词,相比NNLM 去掉了隐层,用求和代替拼接。

 

word2vec:skip-gram与CBOW完全相反的思路 ,是通过 当前这个词去预测其之前之后的词。 

 缺点:对多义词无法很好的表示。 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值