【机器学习】Word2Vec模型
模型归属:
- 领域:机器学习
- 方向:自然语言处理
- 作用:将字词转换为向量,通过文章内容学习到字词的相关性,从而将相似词聚合
模型使用:
- 准备一篇文章(中文或英文)
- 用python编写Word2Vec模型(或使用机器学习框架,直接调用word2vec这个包)
- 将准备好的文章作为输入,input进Word2Vec.py这个程序
- 结果模型会将这片文章相关性强的词聚合在一起
- Word2Vec模型训练好的结果可通过可视化的图的方式显示出来
模型的作用:
生活例子:比如【网络舆情监测】我们爬取了某个论坛的网页,想要看看大家交流内容都是什么,有没有什么联系,我们准备好爬取得内容后,就可以使用这个模型,得到大家交流内容的相关性分析,从而知道大家在交流内容的大概。
模型实际应用:
这里有一个语义分析系统链接,在这个系统中继承了很多自然语言处理的应用,它将程序做成可视化界面供大家使用,非常方便直观,界面也非常友好!
Word2Vec模型有两种实现,模型的分类:
1.Skip-Gram模型 给出input预测上下文
2.CBOW模型 给出给定的上下文来预测input
模型的实现步骤:
- 对训练文档构建得到词汇表
- 对词汇进行one-hot编码
- 根据数据构建神经网络,训练得到模型(涉及大量数学计算)
- 获取训练数据过程中的参数(权重矩阵)即word vectors,即模型中的隐层
- 最终的目标就是学习这个隐层的权重矩阵
- 矩阵之间的运算,得到隐层的输出,即每个输入单词的“嵌入词向量”
- 最终的输出层是一个softmax回归分类器,输出一个0-1之间的值(概率)
- 所有输出层神经元结点的概率之和为1
训练代码会用到的包:
jieba中文结巴分词,Matplotlib可视化包,scikit-learn机器学习库
之前有跑过这样的代码,得到的结果:
训练的次数越多,模型的学习效果越好,预测值和真实值之间的差别(损失值)就越小!从可视化的结果就能看出来!