NLP基础学习
论文一:NLP-baseline-word2vec
1、词的表示方法
ONE-hot表示形式
一个向量只有一个地方是1,其他全是0
通过共现次数先构造共现矩阵,但是此时如果词数过多,构造的共现矩阵就会过大,所以这个时候需要进行降维度。
SVD:
继续向下演进,本文采用word2vec的是分布式表示方法。
此时向量里的内容都是一个浮点数而不是0或者1,而这些数是通过训练而得到的。
每个词都表示成一个D维的向量,但是这个D远小于词表的大小V。
这时候可以通过余弦夹角来表示词与词之间的相似度。
发展历史:
本文的研究成果:
- 提出了新的模型结构
- 提出优化训练的方法,是的训练速度加快
- 给出训练代码word2vec,使得单机训练称为了可能
- 成果:训练的词向量,又快又好,并且能够在大规模语料上进行词向量的训练。
研究意义:
1、对词的相似度进行评判
2、对词对的类比进行评判
3、能够作为预训练的模型提升NLP任务
论文的泛读
介绍:
- 传统的NLP把词当成最小的单元处理,并且能够在大语料上得到很好的结果,其中一个例子就是N-grams模型
- 然而很多的自然语言处理任务只能提供小语料的,如语音识别、机器翻译,所以简单地扩大数据规模来提升简单模型的表现在这些任务中不再适用,所以我们必须寻找更加先进的模型。
- 分布式表示可以在大语料上训练得到很好的语言模型,并且能够超过N-grams模型,这是一个很好的可以作为改进的技术。
论文学习
Efficient Estimation of Word Representations in Vector Space
基于向量空间中词表示的有效估计
前期知识储备
学习目标
学习目标
语言模型的概念
概念:语言模型是计算一个句子是句子的概率的模型。
比如:
老师的课讲得真好! 0.8 (语义+语法)
老师的课真的很一般! 0.01 (老师的课不好不符合语义)
课的老师很真好的! 0.0001(语义与语法都不符合)
运用于输入法中,比如输入zi ran yu yan chu li
自然语言处理 0.9
孜然寓言处里 0.1
谘髯语嫣除礼 0.0001
基于专家语法规则的语言模型
语言学家试图总结出一套通用的语法规则,比如形容词后面接名词等。
这样做的问题是语言是千变万化的,再高明的语言学家也没有办法总结出一套通用的规则。并且随着时代变化也会有很多新词出现,这些词很难分析词性变化。
随之出现的就是统计语言模型
统计语言模型
通过概率计算来刻画语言模型
P(w1)求解方法:用语料的频率代替概率(频率学派)
P(w2|w1)条件概率求法
**语言模型 **
P(张三 很 帅)= P(张三)*P(很|张三)*P(帅|张三,很) //此时的概率为P1
P(张很帅 很 帅)=P(张很帅)P(很|张很帅)P(帅|张很帅,很)//张很帅 这个人名没有被起过,所以在词表中没有出现过,所以P(张很帅)= 0 ,即此时总的概率为0(有一些词没有出现过)
P(张三 很 漂亮)=P(张三)*P(很|张三)*P(漂亮|张三,很) //因为张三是个男生名字,所以没有和漂亮同时出现过,即此时的总概率为0(短语没有同时出现过)
统计语言模型中的平滑操作
有一些词或者词组在语料中没有出现过,但是不代表它永远不会出现。
平滑操作就是给那些从来没有出现过的词一个较小的概率。
Laplace smoothing也称为加一平滑:即在每一个词的出现次数上加1
平滑操作的问题:
假设语料中只有一句张三 很 美
这时候(张三 很 帅) 和(张三 很 桌子)出现的概率就是一样的
形成这样问题的原因:
参数空间过大 1000个参数最长20个词就要1000的20次方
数据稀疏严重 只有很少的数值不为0,大部分的短语值为0
马尔科夫假设
下一个词的出现仅依赖于前面的一个词或者几个词
语言模型的评价:
语言模型实际上是一种多分类问题。
可以理解为以下模型
input label
NONE W1
W1 W2
W1|W2 W3
… …
语言模型评价指标:困惑度
如上图中所示的,句子概率越大,语言模型越好,困惑度越小。