Word2Vec与Doc2Vec--中文词向量

1.one-hot vector:基于规则或基于统计的自然语言处理。通过将单词看做一个原子符号,用向量索引进行表示。
例如:一篇文档有10个词(x=[1:10]),每个词使用一维向量进行表示,没有重复词。
星巴克
[1 0 0 0 0(总共9个0)]
哈士奇
[0 0 1 0 0(总共9个0)]
问题:
(1)体现不了词与词之间的关系:计算词相似。,余弦相似度 cos(A*B)/|A||B|由于正交,计算为零。
(2)高维空间–与文档词的数量相关 词的数量很大。
2.word embedding:(词嵌入)词向量,将词转换为一种分布式表示。表示成一个连续的稠密向量。(维数小于词的数量。)
优点:
(1)解决词与词之间的关系,可以计算距离。
(2)可以计算词的特征向量。包含的信息更多。
(3)通过共现矩阵实现,缓解了 one-hot向量相似度为0的问题,但维度还是很大,不稠密(数据稀疏)
例如:
我喜欢大数据
我爱运动
我爱摄影
我 喜欢 大数据 爱 运动 摄影
我 0 1 0 2 0 0
喜欢 1 0 1 0 0 0
大数据 0 1 0 0 0 0
爱 2 0 0 0 1 1
运动 0 0 0 1 0 0
摄影 0 0 0 1 0 0
(4)SVD–奇异值分解。
可以实现矩阵的降维。
UsigmaV=A(U的维数 mxm mxn nxn) A 是 nxn的矩阵 m<=n
3.word2vec
(1)word2vec:将 one-hot-vector 映射(embedding)低密度 连续的稠密向量。
神经网络(3层)
输入层:One-hot-vector
隐含层:线性单元(输入层计算)
输出层:softmax函数:可以将数值归一化到 0-1之间。每个分类被取到的概率,最大概率值即所分的类别。
(2)有两种模型:CBOW(Continuous Bag of Words)和Skip-Gram
(3)a、安装 Gensim
pip install gensim(没有做 cextension扩展)
conda install -c conda-forge gensim(建议 -c 指channels)
b、直接调用
from gensim.models import Word2Vec
model=Word2Vec(sentences,sg=0,size=,window,min_count,workers)
sentences—预处理完之后的语料。(分句 分词)
sg–0:CBOW 1:SKip-gram
size:特征向量的维度,默认为100,推荐值为 几十-几百。
window:当前词与预测词在一个句子中的最大距离。
alpha:学习速率 0-1之间。
min_count:词频的限制,最小出现次数。
workers:线程数
(4)处理步骤
a、数据预处理(分词、去除停用词和不必要的字符等)
b、word2vec模型声明–转为词向量
c、机器学习–特征工程、深度学习–不需要声明网络的结构和参数
d、训练和测试(评价指标 准确度、召回值、精确度、F1-Score)
5、doc2vec
(1)2014年提出的,word2vec扩展。用于句、 段落和文章之间的相似性。
(2)DM:对应word2vec的CBOW,增加了文档的向量。主要是根据上下文预测上下文的其他单词。
DBOW:对应于 word2vec的 skip-gram,通过段落的向量 预测其他单词。
通过使用Huffman树 ,可以提高计算速率。huffman编码。
(3)Doc2vec=(dm=0,size,window,min_count,workers)
dm=0 表示 DBOW dm=1表示DM算法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值