NLP深度学习 —— CS224学习笔记 1
来源:互联网 发布:薄膜蒸发器js xlhg 编辑:程序博客网 时间:2024/06/05 23:56
关键词: 自然语言处理, 词向量, 奇异值分解, Skip-gram, 连续词袋(CBOW), 负抽样
一、简介
自然语言处理任务
简单: 拼写检查, 关键词搜索, 找同义词
中度: 从网页、文件解析信息
困难: 机器翻译, 语义解析, 指代, 问题回答
使用词向量可以把词编码成向量然后通过计算距离来判断相似性,可使用Jaccard, Cosine, Euclidean等
二、词向量
英语有1300万个标志
把标志编码成向量代表词空间中的一个点
存在N维空间N远远小于1300万并能编码所有语义
语义维度可代表时态,单复数,性别等。
one-hot vector
三、基于SVD方法
找到词嵌入
首先遍历大量数据并累加词同时出现数量,以矩阵X的形式,然后对X执行奇异值分解得到USV_T分解,然后使用U的行作为词嵌入。X的选择方式有
1、词-文本矩阵
我们首先大胆猜测相关的词大多出现在同一文本中
遍历数十亿文本,每次词i在文本j中出现时,我们对X _ij加1
这个矩阵会非常巨大,并随文本数量增长
2、基于窗口的同时出现矩阵
逻辑与之前相同,但这里只计算一定规模窗口内围绕特定词出现词数的统计,用这种方法计算语料集中的所有词。
举例,语料集有3个句子,窗口规模为1
得到矩阵
然后对X进行SVD,根据需要取k个奇异值
得到的子矩阵就是我们的词嵌入矩阵,这样我们得到每个词的k维表征。
上述两种方法给出的词向量足以编码语义和语法信息,但存在许多问题:
矩阵维度频繁改变(新词的加入和语料规模改变)
矩阵非常稀疏,大多数词不同时出现
矩阵维度很高,大约10的6次方×10的6次方
平方训练成本高,执行SVD
对X需要进行处理以解决词频率的极度不平衡
解决方法有:
忽略功能词如the he has等
ramp window, 根据文本中词间距离,给同时出现计数赋权重
使用pearson相关性,设置负计数而不是简单计数
基于迭代的方法能更好的解决上述许多问题。
- NLP深度学习 —— CS224学习笔记 1
- NLP深度学习 —— CS224学习笔记2
- NLP深度学习 —— CS224学习笔记3
- NLP深度学习 —— CS224学习笔记4
- NLP深度学习 —— CS224学习笔记5
- NLP深度学习 —— CS224学习笔记6
- NLP深度学习 —— CS224学习笔记7
- NLP深度学习 —— CS224学习笔记8
- NLP深度学习 —— CS224学习笔记9
- NLP深度学习 —— CS224学习笔记10
- NLP深度学习 —— CS224学习笔记12
- CS224 LectureNote4学习笔记
- NLP深度学习 —— CS 224学习笔记 11
- CS224 LectureNotes2的学习笔记
- NLP学习笔记1
- NLP深度学习资源
- 深度学习笔记——理论与推导之Structured Learning【NLP】(十二)
- Stanford深度学习与自然语言处理讲义下载(CS224)
- Thinkphp如何实现无限级分类?
- Friend-Graph
- 输入挂
- MYsql的备份脚本
- [模板] 树堆
- NLP深度学习 —— CS224学习笔记 1
- css常用样式
- Cafee 安装时编译错误的解决及Makefile配置文件参考
- Xampp中怎么修改Apache服务器的端口号
- AI开发实战1-App Inventor的编译
- 1811: Tree Intersection
- 用telnet测试通过pop3读取163邮箱邮件
- Friend-Graph
- HDU 6156 Palindrome Function