赞
踩
- python 工具包:
- gensim -------- word2vec、docvec ...
- BoW 模型因为其简单有效的优点而得到了广泛的应用。其基本原理可以用以下例子来给予描述。给定两句简单的文档:
- 文档 1:“我喜欢跳舞,小明也喜欢。”
- 文档 2:“我也喜欢唱歌。”
- 基于以上这两个文档,便可以构造一个由文档中的关键词组成的词典:
- 词典={1:“我”,2:“喜欢”,3:“跳舞”,4:“小明”,5:“也”,6:“唱歌”}
- 这个词典一共包含6个不同的词语,利用词典的索引号,上面两个文档每一个都可以用一个6维向量表示(用整数数字0~n(n为正整数)
- 表示某个单词在文档中出现的 次数。
-
- 总结:用词频作为特征值
- 缺点:类似‘的’‘你’在模型中没有决策作用,却有着较大的特征值。
TF-IDF目的:解决BOW ‘的’‘你’特征值过大的问题
TF-IDF API :文本预处理:TF-IDF API
- onehot词向量化目的:
- 机器学习模型每一个词的特征值使用一个数值来代替,而神经网络输入词是一个向量的结构。
- onehot词向量化的两个缺点:
- ① 维度较高
- ② 没有考虑到词与词的相似性
- word2vec的两个目的:
- ① 解决 onehot编码 维度过大问题
- ② 保证了词嵌入的向量具有词相似性的信息(余弦相似度)
- 1.word2vec 是 利用 N-gram窗口的模型进行滑动,所以它是一个 局部预测 的过程,这一点要区别 fasttext
- 2.Skip-gram 和 CBOW 模型
- 上面我们提到了语言模型
- 如果是用一个词语作为输入,来预测它周围的上下文,那这个模型叫做『Skip-gram 模型』
- 而如果是拿一个词语的上下文作为输入,来预测这个词语本身,则是 『CBOW 模型』
- word2vec 保证了 近似词向量 余弦相似度较近。 ----- 无监督学习
- word2vec 词向量 是否相似的 评判指标:
- 两个向量夹角余弦相似度,向量夹角余弦值越大,相似度越高
- 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 相似,需要加上平滑项(拉普拉斯平滑等..)
- 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 结构
CBOW
huffman树 可以最少搜索次数。
- 1、huffman树的缺点:
- 当CBOW中间词太过生僻(VC表中出现频率很低)时,huffman树可能会很深。
- softmax Loss 总结为一句话:
- 模型迭代趋向于:将softmax正例的概率尽可能接近 1,其他负例更新尽可能接近 0
- 1、负采样softmax的原因:
- 由于此汇表中词的个数通常是较大的,FC softmax Loss的正例只有一个,而负例却有 VC表 - 1 个:
- ① 首先,如果不进行负采样,CBOW的最后一层就要用到FC,参数量较大
- ② 假设不考虑FC参数量的问题,FC 层的softmax 考虑的负例样本数是 VC表 - 1 个,计算量太大了。
- 负采样的实现:
- 1. tf.nn.nce_loss --> _compute_sampled_logits-->candidate_sampling_ops.log_uniform_candidate_sampler
pass
- 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
- 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是新的embe
- dding向 量,那么文章的隐层表示为:
1、中文embeding,利用的是FastText的思想
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。