一、word embeding 传统方式

python 工具包:gensim                                 --------  word2vec、docvec ...

0、BOW ——> TF-IDF

  • BOW:词袋法(词的频数)    ---------   机器学习
BoW 模型因为其简单有效的优点而得到了广泛的应用。其基本原理可以用以下例子来给予描述。给定两句简单的文档:
文档 1:“我喜欢跳舞,小明也喜欢。”
文档 2:“我也喜欢唱歌。”
基于以上这两个文档,便可以构造一个由文档中的关键词组成的词典:
词典={1:“我”,2:“喜欢”,3:“跳舞”,4:“小明”,5:“也”,6:“唱歌”}
这个词典一共包含6个不同的词语,利用词典的索引号,上面两个文档每一个都可以用一个6维向量表示(用整数数字0~n(n为正整数)表示某个单词在文档中出现的   次数。 总结:用词频作为特征值
缺点:类似‘的’‘你’在模型中没有决策作用,却有着较大的特征值。
  • TF-IDF:词频逆向频率           ---------   机器学习
TF-IDF目的:解决BOW ‘的’‘你’特征值过大的问题

TF-IDF API :文本预处理:TF-IDF API

1、onehot 向量化

onehot词向量化目的:机器学习模型每一个词的特征值使用一个数值来代替,而神经网络输入词是一个向量的结构。
onehot词向量化的两个缺点:① 维度较高② 没有考虑到词与词的相似性

2、word2vec  ----- 向量保存词语的近似性   ------ 语义分析、文字向量化

word2vec的两个目的:① 解决 onehot编码 维度过大问题② 保证了词嵌入的向量具有词相似性的信息(余弦相似度)
1.word2vec 是 利用 N-gram窗口的模型进行滑动,所以它是一个  局部预测  的过程,这一点要区别 fasttext
2.Skip-gram 和 CBOW 模型
上面我们提到了语言模型
如果是用一个词语作为输入,来预测它周围的上下文,那这个模型叫做『Skip-gram 模型』
而如果是拿一个词语的上下文作为输入,来预测这个词语本身,则是 『CBOW 模型』
word2vec 保证了 近似词向量 余弦相似度较近。    ----- 无监督学习
word2vec 词向量 是否相似的 评判指标:两个向量夹角余弦相似度,向量夹角余弦值越大,相似度越高

3、语言模型   ------ 由已知词语序列 推测当前序列的下一个单词的概率

1、语言模型有什么用?语言模型在自然语言处理中占有重要的地位,在语音识别,机器翻译,汉语自动分词和句法分析等都有应用。        因为这些模型都会有噪声,都会有几种不同的结果等着我们去选择,这时候就需要知道每种结果的概率,来帮助我们选择。
2、为什么叫“语言模型”?因为这是统计学意义上的模型,又跟语言相关,所以叫语言模型。统计模型指一系列分布,参数模型指一系列可用有限个参数表示的模型。word2vec就是一种参数模型,它的参数是矩阵的所有cell。
3、n-gram的应用场景:① n-gram 是一种基于马尔科夫的文本处理思想,在很多模型中都用到这种思想,不是单独存在。例:CBOW、char2vec、text-CNN..② n-gram 可以解决 中文语义消岐、中文分词消岐(原理:利用分词词典双向匹配、统计模型HMM等多种分词手段 获取多种分词结果,这时就可以用N-gram计算最大概率的分词方式)分词方法、分词问题讲解查看链接: https://blog.csdn.net/qq_16555103/article/details/95625946③ 句法纠错,即 文本相关性判断(指的是同一句话中前后是否连贯)。 例:相关:我  出生 在 中国 ;  不相关(语序不通):我 出生 在 看书④ 多序列输出模型 中 确定最佳概率的输出序列

语言模型:语言模型的质量评估是基于它们对词语用概率分布的表征能力。攻坚的任务就是已有一串词语序列,预测下一个出现的词语将会是什么。n-gram、bert ....
1、n-gram:马尔科夫假设,模型输出多个序列时,计算出概率最大的序列。用途很多,常常用于中文词义消歧。
2、实际 n-gram 统计训练的过程与 tf-idf 相似,需要加上平滑项(拉普拉斯平滑等..)

二、 word2vec  ------ 词  > 向量、语义分析

0、word2vec 是 利用 N-gram窗口的模型进行滑动。
1、word2vec的作用(比较传统onehot的两个优点):单词数值化为词向量,该词向量相比于 onehot 有两个优点:① word2vec 词向量的维度不是很高,而onehot词向量的维度 == 去重单词的个数。总结:相比于onehot word2vec 具有降维的作用② word2vec 词向量 因为用到 n-gram 的思想,根据上下文预测中间词的方式,词向量之间保留了 近义词 的相似度(余弦相似度较大)。而onehot的词向量没有保存近义词相似的信息。例如:  seq1:中国的魔都很繁华seq2:中国的上海很繁华         >>>>>>>>>> word2vec 词汇表中 上海与魔都 词向量的相似度应该很近
2、word2vec 保证了 近似词向量 余弦相似度较近。    ----- 无监督学习word2vec 词向量 是否相似的 评判指标:两个向量夹角余弦相似度,向量夹角余弦值越大,相似度越高
3、word2vec 有两种结构:如果是用一个词语作为输入,来预测它周围的上下文,那这个模型叫做『Skip-gram 模型』而如果是拿一个词语的上下文作为输入,来预测这个词语本身,则是 『CBOW 模型』注:下面只介绍 CBOW 结构

1、word2vec 工作过程,即浅层神经网络

CBOW

2、word2vec 上述浅层神经网络优化,即使用'one-hot 索引' 查词向量

3、word2vec针对FC层的两种优化手段

(1)哈夫曼树 --- 二叉树

  •     构建 Huffman树的过程
huffman树 可以最少搜索次数。

  •     CBOW中 huffman树 的softmax 更新词嵌入表的参数

1、huffman树的缺点:当CBOW中间词太过生僻(VC表中出现频率很低)时,huffman树可能会很深。

(2)负采样    ------- 对负例进行下采样

  •           softmax Loss 构建

softmax Loss 总结为一句话:模型迭代趋向于:将softmax正例的概率尽可能接近 1,其他负例更新尽可能接近 0
  •         负采样的softmax损失函数Loss
1、负采样softmax的原因:由于此汇表中词的个数通常是较大的,FC softmax Loss的正例只有一个,而负例却有 VC表 - 1 个:① 首先,如果不进行负采样,CBOW的最后一层就要用到FC,参数量较大② 假设不考虑FC参数量的问题,FC 层的softmax 考虑的负例样本数是 VC表 - 1 个,计算量太大了。

(3)负采样TensorFlow代码API

负采样的实现:
1. tf.nn.nce_loss --> _compute_sampled_logits-->candidate_sampling_ops.log_uniform_candidate_sampler

三、char2vec  ----- 字符  > 向量

pass

四、doc2vec    ------  语义分析、文本分类/聚类

doc2vec 词向量 是否相似的 评判指标:两个doc向量夹角余弦相似度,doc向量夹角余弦值越大,相似度越高 
1、doc2vec 的构建过程理解:doc2vec 构建过程与 word2vec构建过程极其相似,仅仅 多了 最后将句子每个embeding词向量合并为一个 句子的embeding向量。doc2vec 是在 word2vec 的结构上进行的延伸,因此和word2vec一样,doc2vec也有两种结构(DM,DBOW),doc2vec是模型中间的产物,它是无监督学习;将 sentence/doc 转化为向量后 可以进行 有监督学习(分类),也可以进行无监督学习(聚类)。2、doc2vec 的作用:提取句子特征相似性向量,这个向量需要满足:如果两个句子语义越接近,那么他们向量的夹角余弦值越大。利用这个提取出来的向量可以用于以下场景:① 做语义分析(或者叫语义理解)。 原因:因为doc2vec模型每个相近句子向量的夹角余弦值较小,可以跟据这个特点来判断 待测试句子序列 与 历史句子序列 的相似性大小。② 做分类问题(有监督的模型训练)。原因: KNN、SVM、LR XGboost 等等 原本使用 句子 TF-IDF 的值作为特征,但是该方式没有考虑到词与词相关性的信息,同样也没考虑到句子与句子之间的相关性信息;现在用 句子embeding 作为样本,可以使得样本的F1值提升。③ 做聚类问题(无监督学习)。原因:Kmeans、密度聚类 等 使用的还是 TF-IDF特征,换做 doc2vec 向量 可以使得模型的效果提升。3、什么是语义分析理解?语义分析是问答系统中 对 用户 输入的序列 进行分析理解,寻找问答库中 与其相似的问答对进行回答。因此对于语义理解做问答系统需要知道以下几点:① 对用户 输入的序列 ‘理解’ 后,搜索 数据库中最适合的 QA进行回答,所以语义理解的答案并非类似 seq2seq + attention 模型 现在编译的,而是与答案直接匹配的。

1

五、fasttext、cw2vec

1、FastText

1、FastText 与word2vec中CBOW的结构非常相似,不同的是:① FastText 中的 embeding词(英文)是 由单词 与 该单词的n-gram向量融合而成的,融合的方式为 求和取平均② FastText 使用的是全局 n-gram③ FastText 训练过程是有监督学习,针对label进行训练,Word2vec训练为无监督学习,CBOW预测的是中间的词。
2、中文词汇不可拆解,因此FastText只适合英文 embeding
• 在词向量的训练过程中,增加了subwords特性,其实就是一个词 的character-level的n-gram,比如单词”hello”,长度至少为3的 character-level的ngram的'hel', 'ell', 'llo', 'hell', 'ello'以及'hello',每个 ngram都可以使用一个dense的向量zg表示,故最终一个单词可以 表示为: 

• FastText在分类中也增加了N-gram的特征,主要是为了通过增加 N-Gram的特征信息来保留词序信息(因为隐层是通过简单的求和 平均得到的),比如:某篇文档有3个词,w1、w2、w3,N-gram 取N为2,w1、w2、w3以及bigram w12、w23是新的embedding向 量,那么文章的隐层表示为:

2、cw2vec

1、中文embeding,利用的是FastText的思想

分词 数值化(词嵌入 word embeding)相关推荐

  1. 什么是词嵌入| Word Embedding

    本文参考:词嵌入 维基百科解释 In natural language processing (NLP), word embedding is a term used for the represen ...

  2. [DeeplearningAI笔记]序列模型2.1-2.2词嵌入word embedding

    5.2自然语言处理 觉得有用的话,欢迎一起讨论相互学习~ 吴恩达老师课程原地址 2.1词汇表征 Word representation 原先都是使用词汇表来表示词汇,并且使用1-hot编码的方式来表示 ...

  3. 词嵌入 word embedding

    原文链接:https://blog.csdn.net/ch1209498273/article/details/78323478 词嵌入(word embedding)是一种词的类型表示,具有相似意义 ...

  4. 自然语言处理之词嵌入(Word Embedding)

    关于词嵌入    对于计算机来说,要想理解自然语言,需要把自然语言以一定的形式转化为数值,这一步解决的是"将现实问题转化为数学问题",是人工智能非常关键的一步.词嵌入就是将自然语言 ...

  5. 词嵌入(Word Embedding)

    目录 为什么需要词向量嵌入? 表征的对象是什么? 如何表征? 词向量嵌入矩阵 Skip-Gram CBoW 负采样 结语 Reference 为什么需要词向量嵌入? 在自然语言相关的任务中,我们将句子 ...

  6. 关于词嵌入(Word Embedding)的一些总结

    看了课程半天没搞懂词嵌入是啥,梳理一下相关知识.参考: https://www.jianshu.com/p/2fbd0dde8804 https://blog.csdn.net/m0_37565948 ...

  7. 【2015】CWE:字符嵌入和词嵌入的联合学习(Joint Learning of Character and Word Embeddings)

    文章目录 摘要 引言 模型 CBOW 字符增强的词嵌入 多原型字符嵌入 基于位置的字符嵌入 基于集群的字符嵌入 基于非参数集群的字符嵌入 2.5 初始化和优化 单词选择 3 实验和分析 结论 论文链接 ...

  8. 词嵌入 网络嵌入_词嵌入深入实践

    词嵌入 网络嵌入 介绍 (Introduction) I'm sure most of you would stumble sooner or later on the term "Word ...

  9. 吴恩达老师深度学习视频课笔记:自然语言处理与词嵌入

    Word representation:词嵌入(word embedding),是语言表示的一种方式,可以让算法自动理解一些类似的词比如男人.女人,国王.王后等.通过词嵌入的概念,即使你的模型标记的训 ...

最新文章

  1. 软件项目技术方案_榆林化学公司项目工艺包关键技术创新方案审查顺利完成
  2. 精通python爬虫框架-精通Python爬虫框架Scrapy.pdf
  3. android 8 esp8266,ESP8266 WIFI模块学习之路(8)——自写Android手机APP控制直流电机正反转...
  4. 离散事件模拟-银行管理
  5. 强制ul中li不换行
  6. 单通道图像保存_3D图像展示篇结构更清晰
  7. mac废纸篓清空的心得、mac设置不睡眠不待机不锁屏、如何快速锁屏待机睡眠、mac重启、mac学习的必备软件-城...
  8. python内置对象的实现_Python面向对象——内置对象的功能扩展
  9. 论文阅读笔记——拥塞控制算法PCC
  10. linux malloc内存申请相关参数设置
  11. SLAM学习入门(1)针孔相机模型公式推导
  12. c语言菜鸟编译器,C语言菜鸟基础教程之Hello World
  13. 【Java】如何优雅的使用HttpClient
  14. Xadmin文档(二)
  15. C++ 对象模型 第二章 构造函数语意学
  16. 用JS描述的数据结构及算法表示——栈和队列(基础版)
  17. 故宫真相关于长高在青春期显露了一个老临
  18. 手把手带你了解一块电路板,从设计到制作(干货)
  19. 不可注册为ActiveX控件
  20. 搜索引擎---solr

热门文章

  1. 番外篇---如何添加论文中的文献引用右上角小标
  2. 《TCP/IP详解卷1:协议》第5章 RARP:逆地址解析协议---读书笔记
  3. UiPath如何保存outlook中的特定附件
  4. 英特尔实感摄像头r200_INTEL感知计算– 2014年实感挑战
  5. realsense r200模块在ros-indigo版本下的使用
  6. 【操作系统】:操作系统概述
  7. IMPOSSIBLE FOODS登陆香港酒店
  8. 亲测好用的音频控制软件:SoundSource for Mac
  9. JavaScript系列学习笔记 —— DOM模型之Document对象
  10. 享受互联网电视随着Android电视盒及数码多媒体播放器设备