自然语言处理——学习笔记(2) 语言模型+词向量
语言模型 + 词向量
重点:建模方法、CNN、DNN、RNN优势与不足
统计语言模型
基本概念:用数学的方法描述语言规律(语言模型)
基本思想:用 S = w 1 , w 2 , w 3 , . . . w n S = w_1, w_2, w_3,...w_n S=w1,w2,w3,...wn 的概率 P ( S ) P(S) P(S)刻画句子的合理性——统计自然语言处理的基础模型
规则法和统计法:前者通过判断句子是否合乎语法和语义;后者通过可能性大小(概率)定量计算公式: P ( S ) = ∏ i = 1 n p ( w i ∣ w 1 , . . . . , w i − 1 ) P(S) = \prod_{i = 1}^{n} p(w_i | w_1,....,w_{i-1}) P(S)=∏i=1np(wi∣w1,....,wi−1)
输入:句子S
输出:句子的概率 P ( S ) P(S) P(S)
参数: p ( w i ∣ w 1 , . . . . , w i − 1 ) p(w_i | w_1,....,w_{i-1}) p(wi∣w1,....,wi−1)
函数关系: P ( S ) = ∏ i = 1 n p ( w i ∣ w 1 , . . . . , w i − 1 ) P(S) = \prod_{i = 1}^{n} p(w_i | w_1,....,w_{i-1}) P(S)=∏i=1np(wi∣w1,....,wi−1)
说明: w i w_i wi统计基元/词; w 1 , . . . . , w i − 1 w_1,....,w_{i-1} w1,....,wi−1 为 w i w_i wi的历史马尔可夫方法:假设任意一个词 w i w_i wi出现的概率只与它前面的 w i − 1 w_{i-1} wi−1有关(二次模型);
n-gram:一个词出现的概率只与它前面n-1个词相关,距离大于等于n的上文词会被忽略
参数估计
- 训练语料:尽量与应用领域一致;语料尽量足够大;训练前应预训练
- 学习方法:极大似然估计
- 存在问题:数据匮乏(稀疏)引起零概率问题
- 解决:数据平滑——加一法(每种情况出现次数加1)
- 神经网络语言模型不需要数据平滑
- 性能评价
- 实用方法:看模型在实际中的表现
- 理论方法:困惑度——越小越好
- 应用:不同序列判断最可能序列;已知若干词预测下一个词
神经语言模型
- 统计语言模型:用概率统计法学习参数
- 神经语言模型:用神经网络学习参数
- 使用DNN:NNLM模型
- 使用RNN:RNNLM模型
NNLM模型
2-gram:
n-gram:
RNNLM模型:
优点:RNNLM模型可以保留每个词的全部历史信息,不需要简化成n-gram;引入词向量作为输入不需要数据平滑
词向量(浅层)
基于预测的词表示:
NNLM、CBOW模型、Skip-gram、C&W模型符号表示
离散表示:
- one-hot:稀疏方式存储简洁;词汇鸿沟、维数灾难
- 词袋模型:每个数表示该词在文档中出现的次数
- TF_IDF:每个数代表该词在整个文档中的占比
分布式表示:用一个词附近的其他词来表示该词
NNLM:
RNNLM:
C&W模型:
特点:C&W目标函数是求目标词W与其上下文c的联合打分,而其他模型均为根据上下文c,预测目标词w
CBOW/Skip-gram模型
词向量特性
- 语义相似的词,其词向量空间距离更相近
- 优点:降维,消除词汇鸿沟,其语言模型自带平滑功能;
- 应用:同义词检测、单词类比
深度学习中语言模型常用“RNN语言模型+词向量” 模式
自然语言处理——学习笔记(2) 语言模型+词向量相关推荐
- 自然语言处理入门学习笔记3:词向量
词向量 为什么需要词向量 1.词向量可以大量的预料中拿到一些对知识表达的方式 2.无法直接对文本进行计算,文本是标记性语言,计算机对数字比较敏感,词向量吧文字转成了数值向量 词编码方式 从onehot ...
- 自然语言处理学习笔记4:空间向量模型
向量空间模型(VSM:Vector Space Model)由Salton等人于20世纪70年代提出,并成功地应用于著名的SMART文本检索系统.把对文本内容的处理简化为向量空间中的向量运算,并且它以 ...
- 深度学习与自然语言处理教程(2) - GloVe及词向量的训练与评估(NLP通关指南·完结)
作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/36 本文地址:https://www.showmeai.tech/article-d ...
- 【深度学习】NLP基础--词向量(从One-hot到Word2Vec)
1.什么是词向量 在自然语言处理中,面临的首要问题是如何让模型认识我们的文本信息,比如向模型中输入'我爱北京天安门',那模型是如何认识文本的?词,是自然语言处理中基本单位,将数据输入到模型中,尽可能的 ...
- NLP自然语言处理学习笔记(二)Word2Vec
NLP自然语言处理学习笔记(二)Word2Vec 一.Word2Vec 二.负采样 本文是根据吴恩达教授的教学视频来整理的学习笔记,部分图片来源于视频的截图.原教学视频连接 https://mooc. ...
- 对python的评价语_Python自然语言处理学习笔记之评价(evaluationd)
对模型的评价是在test set上进行的,本文首先介绍测试集应该满足的特征,然后介绍四种评价方法. 一.测试集的选择 1.首先,测试集必须是严格独立于训练集的,否则评价结果一定很高,但是虚高,不适用于 ...
- 自然语言处理学习笔记(1)——词典分词
自然语言处理学习笔记(1)--词典分词 一.相关定义(P32) 中文分词:将一段文本拆分为一系列单词的过程,这些单词顺序拼接后等于源文本. 词典分词:一个确定的查词与输出的规则系统,仅需要一部词典和一 ...
- 数据结构学习笔记:变位词侦测案例
数据结构学习笔记:变位词侦测案例 通过字符串变位词侦测问题可以很好地了解具有不同数量级的算法.变位词,就是两个字符串构成要素完全相同,但是要素的排列顺序不同.比如,heart与earth.python ...
- elasticSearch学习笔记04-同义词,停用词,拼音,高亮,拼写纠错
由于elasticSearch版本更新频繁,此笔记适用ES版本为 7.10.2 此笔记摘录自<Elasticsearch搜索引擎构建入门与实战>第一版 文中涉及代码适用于kibana开发工 ...
最新文章
- Java学习总结(二十)——JSON解析:官方解析,GSON解析,FastJSON解析,
- 在StackBlitz上setup SAP Spartacus
- python 查看当前目录_「Python」打包分发工具setuptools学习
- pythonclass全局变量_Python的变量(全局变量、局部变量、类变量和实例变量)
- JQuery控制div外点击隐藏,div内点击不会隐藏
- 深度学习剖根问底:SGD算法的优化和变种
- Activiti7的用法和简述
- windows无法开启网络发现问题解决办法(详细)
- 未来无生经超级计算机,第三十二章 有些鸡肋的未来无生经
- 【JavaEE】网络编程基础之Socket套接字
- 数据结构-二叉树-详解
- 信道容量的迭代算法实现
- JS如何手写new(一看就懂)
- 一小时搞定计算机网络面试
- 计算机二级模板文档,计算机二级教案模板.doc
- vulnhub之hacksudo:Thor
- 前端知识点总结(三)
- 从mimikatz抓取密码学习攻防
- Power BI——切片器
- 基于B/S架构、可替代付费商业软件的一站式量化交易平台