自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)

自然语言处理的应用

  • 拼写检查、关键词检索......
  • 文本挖掘(产品价格、日期、时间、地点、人名、公司名)
  • 文本分类
  • 机器翻译
  • 客服系统
  • 复杂对话系统

one-hot vector

        假设词库总共有n个词,那我们打开一个1*n的高维向量,而每个词都会在某个索引index下取到1,其余位置全部都取值为0。

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第1张图片

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第2张图片

Word Embedding  词嵌入

       最简单粗劣的理解就是:将词进行向量化表示,实体的抽象成了数学描述,就可以进行建模,应用到很多任务中,例如比较词语词之间的相似性,可以直接通过向量之间的余弦距离度量来确定。

       例如一个词:“苹果”,将其表示成 [0.4, 0.5, 0.9, ...], “香蕉”:[0.3, 0.8, 0.1, ...]。如下图所示,相似的单词就会被投影成相似的角度。对应与one-hot的向量表示,如此表示方式,1.避免大量词汇的数据稀疏性,2.同时对数据进行了降维。3.句子级上的表示,加入了词与词之间的相互关系。

       其实word嵌入是一种分布式的特征表述,向量的不同维度用来表征不同特征,不同维度上就代表着不同的语义。例如苹果和红旗都是红色的,苹果和香蕉都是水果。所以编码中编入的信息包含颜色和属性信息的话,则实质上往不同空间维度上投影,则语义相似性度量的结果是不一样的。


 

语言模型

语言模型就是说一句话的概率是多少

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第3张图片

一句话的翻译有很多种可能性,最终会选择概率最高的那个

我今天下午打篮球——还要先做分词任务——我 今天 下午 打 篮球

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第4张图片

怎样变得简单一点

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第5张图片

n-gram模型

n-gram=1表示他只跟前面的一个词相关,n-gram=2表示跟前面的2个词相关

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第6张图片

词向量

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第7张图片

把每个词转换成一个向量,而不是字

越接近的词的向量之间的余弦夹角越小

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第8张图片

我们构造出来的词向量是跟这个词的拼写是无关系的,是基于上下文环境建模的。英文说“我今天买了4个苹果5个梨”,到西班牙语中依然是“我今天买了4个苹果5个梨”,4和5出现的位置是类似的,这是符合人类正常说话的逻辑的

无论是英语还是西语,他们的向量空间都是类似的

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第9张图片

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第10张图片

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第11张图片

神经网络模型当中的2个基础模型:CBOW和Skip-gram

CBOW做的是基于上下文能不能预测出来当前的词

Skip-gram恰好是CBOW的颠倒,基于当前的词来预测上下文

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第12张图片

把最大似然估计转换成对数似然估计

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第13张图片

哈夫曼树,词频越高的放在越靠近根节点

词向量其实是神经网络的一个副产品

CBOW还用到了逻辑斯蒂回归,能把任意一个数的值都投影到0~1范围内,并且越大的越大。哈夫曼树的左右节点,往左走还是往右走就可以根据逻辑斯蒂回归的大于0.5还是小于0.5

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第14张图片

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第15张图片

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第16张图片

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第17张图片

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第18张图片

skip-gram就是CBOW类似了,就不详细说了

negative  sampling 负采样模型

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第19张图片

如果样本空间太大太大,例如有十万个词

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第20张图片

线段长度根据词频来分配,词频越高,长度越长;词频越小,长度越短

自然语言处理(NLP)(one-hot vector&Word Embedding词嵌入&语言模型&词向量&CBOW&skip-gram&negative sampling负采样模型)_第21张图片

影评情感分类数据

基于词袋模型训练分类器

准备word2vec输入数据

使用gensim构建word2

blog-code/word2vec.ipynb at master · skyerhxx/blog-code · GitHub

你可能感兴趣的:(自然语言处理,人工智能)