ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

NLP学习笔记7--review/词向量的训练以及使用

2021-11-11 21:34:12  阅读:171  来源: 互联网

标签:NLP join bert -- review 向量 path model dir


静态的词向量word2vec glove

动态的词向量bert elmo

文本表示的方法

词向量的训练

使用glove

使用bert句子向量



文本表示的方法

基于one hot 、tf-idf的bag-of-words

主题模型:LSA(SVD)、pLSA、LDA  就是词并不是文档的最基本组成单位 还有一层主题意思

LSA:把之前得到的词和文档的矩阵 进行svd操作 svd:奇异值分解 就是降维

分成三个矩阵 词到主题的矩阵 对角线矩阵 主题到文档的矩阵  可以适当去掉文档的噪音



词向量训练

word2vec  cbow 和 skip-gram

 1.获得一个语料库 

 2.预处理 (中英文预处理有差别 中文一定要先分词)

 3. 转为one-hot之后分别乘以共享的输入权重矩阵w 权重矩阵对于每一个one-hot向量都是一样的

 4.所得的向量相加求平均作为隐层向量,size为1*N

 5.得到向量{1*V}激活函数处理得到V-dim概率分布,概率最大的index所指示的单词为预测出的中间词

 6.与true label的onehot作比较,误差越小越好

word2vec就是一个浅层的神经网络



glove的使用

静态词向量没办法解决一词多义问题

 GPT只能做生成 不能做文本分类 结构只能看到当前时刻以前的部分

而BERT可以看到完整句子



使用BERT生成句子向量

传统都是通过word embedding 加权取平均获得句向量

没办法理解上下文的语义

bert的优点在于 可以理解语义且排除词向量加权引起的误差

bert两种 12层的transformer官方只提供了12层和24层的transformer

默认取倒数第二层的输出值作为句向量(前面几层还没有学到充分的语义信息,最后一层太接近于实际目标)

gpu_memory_fraction = 0.8

layer_indexes = [-2]

model_dir = os.path.join(file_path,'chinese_L-12_H-768_A-12/')

下载官方预训练好的中文的bert模型

config_name = os.path.join(model_dir, 'bert_config.json')

原生bert的config参数 config参数有什么用?

ckpt_name = os.path.join(model_dir, 'bert_model.ckpt')

checkpoints 训练中间的结果

output_dir = os.path.join(model_dir,'../tmp/result/')

把我们下载训练好的模型和结果保存在这个路径

vocab_file = os.path.join(model_dir,'vocab.txt')

把语料信息来源于

data_dir = os.path.join(model_dir, '../data/')

需要生成句向量的数据来源

gpu使用率 gpu_memory_fraction = 0.8

讲的好垃圾 绝望了 看后面bert还会不会讲吧

标签:NLP,join,bert,--,review,向量,path,model,dir
来源: https://blog.csdn.net/m0_53292725/article/details/121256873

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有