赞
踩
自然语言处理的应用
- 拼写检查、关键词检索......
- 文本挖掘(产品价格、日期、时间、地点、人名、公司名)
- 文本分类
- 机器翻译
- 客服系统
- 复杂对话系统
one-hot vector
假设词库总共有n个词,那我们打开一个1*n的高维向量,而每个词都会在某个索引index下取到1,其余位置全部都取值为0。
Word Embedding 词嵌入
最简单粗劣的理解就是:将词进行向量化表示,实体的抽象成了数学描述,就可以进行建模,应用到很多任务中,例如比较词语词之间的相似性,可以直接通过向量之间的余弦距离度量来确定。
例如一个词:“苹果”,将其表示成 [0.4, 0.5, 0.9, ...], “香蕉”:[0.3, 0.8, 0.1, ...]。如下图所示,相似的单词就会被投影成相似的角度。对应与one-hot的向量表示,如此表示方式,1.避免大量词汇的数据稀疏性,2.同时对数据进行了降维。3.句子级上的表示,加入了词与词之间的相互关系。
其实word嵌入是一种分布式的特征表述,向量的不同维度用来表征不同特征,不同维度上就代表着不同的语义。例如苹果和红旗都是红色的,苹果和香蕉都是水果。所以编码中编入的信息包含颜色和属性信息的话,则实质上往不同空间维度上投影,则语义相似性度量的结果是不一样的。
语言模型
语言模型就是说一句话的概率是多少
一句话的翻译有很多种可能性,最终会选择概率最高的那个
我今天下午打篮球——还要先做分词任务——我 今天 下午 打 篮球
怎样变得简单一点
n-gram模型
n-gram=1表示他只跟前面的一个词相关,n-gram=2表示跟前面的2个词相关
词向量
把每个词转换成一个向量,而不是字
越接近的词的向量之间的余弦夹角越小
我们构造出来的词向量是跟这个词的拼写是无关系的,是基于上下文环境建模的。英文说“我今天买了4个苹果5个梨”,到西班牙语中依然是“我今天买了4个苹果5个梨”,4和5出现的位置是类似的,这是符合人类正常说话的逻辑的
无论是英语还是西语,他们的向量空间都是类似的
神经网络模型当中的2个基础模型:CBOW和Skip-gram
CBOW做的是基于上下文能不能预测出来当前的词
Skip-gram恰好是CBOW的颠倒,基于当前的词来预测上下文
把最大似然估计转换成对数似然估计
哈夫曼树,词频越高的放在越靠近根节点
词向量其实是神经网络的一个副产品
CBOW还用到了逻辑斯蒂回归,能把任意一个数的值都投影到0~1范围内,并且越大的越大。哈夫曼树的左右节点,往左走还是往右走就可以根据逻辑斯蒂回归的大于0.5还是小于0.5
skip-gram就是CBOW类似了,就不详细说了
negative sampling 负采样模型
如果样本空间太大太大,例如有十万个词
线段长度根据词频来分配,词频越高,长度越长;词频越小,长度越短
影评情感分类数据
基于词袋模型训练分类器
准备word2vec输入数据
使用gensim构建word2
blog-code/word2vec.ipynb at master · skyerhxx/blog-code · GitHub
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。