自然语言处理
如何让机器了解到词语的含义
机器了解词语的目标
计算词语之间的相似度
推断词语之间的关系
如何帮助机器了解自然语言
使用同义词与上位词来表述当前词语
这样做会存在一些问题
- 同义词之间会存在细微的差别
![同义词之间会存在细微的差别](https://i-blog.csdnimg.cn/direct/f33265796aaf487a808ca318325992ca.png)
- 会缺失词语表达的新的意思
![会缺失词语表达的新的意思](https://i-blog.csdnimg.cn/direct/ca53329b3de14bb28554e93fec6d232c.png)
- 主观性的问题(大多数的人为标注的)
- 数据稀疏问题
- 需要大量人力标注适配
利用向量的方式来表示词(词在字典中的位置)
用于表示特征之间距(个人理解用来分类的,相同类别的不同坐标之间距离是一样的即相似)
具体可以查看链接
问题
1. 词语词之间的正交的所以任意两个词都是同一个意思
2. 没有相似性的概念
利用词语的上下文的词来表示该词(one-hot 编码)
- 一个词的意思可以使用上下文来表述
该方法的构建过程
- 构建单词表
- 单词组合后查看其在语料库中的出现次数
I like deep learing. I like NLP I enjoy flying 构建词汇表:I like deep learing NLP love flying
- 将一行或列看作该单词的向量表示
根据稠密成度计算出单词的相似性。
存在的问题
- 由于是n*n的表格,词汇增加存储压力过大
- 出现较少的词语信息量少
word embedding
分布式表示
利用低维向量表示出所有的词语
常用方法 Word2Vec
语言模型(Language Model)
计算机利用模型来对语言进行预测
计算下一个词语的概率
词序列中联合的概率以及根据已经说过的话下一个词的概率。
下一个词语出现的概率仅仅跟前面一个词出现的概率相关。
得出条件概率
下一个词出现的概率是前面词语出现概率值积
只考虑相邻的四个词语(4-gram)之间的概率,利用统计之后的频率来确定下一个词。
- Markov假设
不用考虑全部的词语只需要考虑前后k个词汇的出现的概率
N-gram出现的问题(一般为2/3-gram)
- n较大时考虑的数据量过大
- 存储空间较大
- 词与词之间没有相似性利用类似one-hot统计
神经网络模型(Neural Language Model)
利用分布式的表示构建前文与当前词语出现的概率
将每一个词表示成相似的向量
例子
拥有词汇w1,w2,w3,w4(四个单词的独热编码)
w1*Q=c1
w2*Q=c2
w3*Q=c3
w4*Q=c4
c=[c1,c2,c3,c4]
Q是一个随机矩阵
本文通过观看总结该视频得出
https://www.bilibili.com/video/BV1rS411F735/?p=5&spm_id_from=pageDriver&vd_source=35faaa186479298a87a9cbfb5d9b73fe