第一讲目录
人类语言与单词含义
人类语言
这一部分主要是介绍了人类语言就要什么功能?以及人类语言和写作在人类发展中发挥着重要作用。
单词含义
课程中提到我们人类一般是通过一个词、词组、语言、符号、作品、艺术等来表达自己的观点和思想。 那我们怎么在计算机中来表达我们的想表达的概念、意思。
法一:WordNet
WordNet, 把同义词集和上位词收集在一起的列表
WordNet缺点:
- 忽略了单词之间的细微差别
- 缺少单词的新含义
- 很强的主观意识
- 需要人类劳动来创造和调整
- 无法计算单词相似度
法二: 离散符号代表单词
在传统的NLP中,我们把词语看做离散的符号。单词可以通过独热编码(one-hot)的形式编码。向量维数 = 词汇量
独热编码的缺点:
- 词与词之间没有相关性
- 单词量太大的时候,向量的位数2也是会增加的
法三:使用词的上下文的来表示单词
#####分布式语义(Distributional semantics)
分布式语义是一个单词的词义是用频繁出现在它附近的词决定。
当一个词w出现在一段文本中,它的上下文(context)就是这段文本中在它附近一个固定内出现的词的集合。
所以可以使用词w的多个上下文来建立词w的表示。
词向量
词向量就是把每个单词用一个稠密的向量来表示。(我的理解就是把单词的维度给降下,把单词的表示与上下文表示的向量类似。)
注: 词向量也称为 词嵌入 或者 词表示 ,他们都是分布式表示(分布式表示是啥?分布式表示应该就是向量表示的词,意思相近、相似的词分布都很集中)
Word2vec介绍
Word2vec简述
刚刚介绍了什么是词向量,现在我们学习的Word2vec框架就是自动(我猜的,现在还不确定)学习怎么把一个词表示成词向量。
Word2vec的主要思路
- 需要一个大型的文本语料库
- 在固定词汇表中每个单词都是用一个向量表示
- 遍历每个文本中的每个位置t,都是一个中心词(c)和上下文(o)
- 使用单词向量c和o的相似度来计算P(o|c),
- 不断调整词向量表示,最大化概率值。
窗口与计算P(c|o)实例
目标函数
θ是训练参数,目标就是Maximum Likelihood:
这里可以对1式通过添加log对连乘进行优化,使之在计算机上计算更加方便(连乘会导致精度不够):
所以目标转化为Minimum Average Negative Log Likelihood:
定义P为:
优化目标函数
重新表示2式中的P:
总结
今天的博客写的真的是烂,时间关系,公式还不知道怎么打,现在只能截图,学完之后,再补上。还有很多东西,没有学,现在只能现在这样了,下次写博客要及时写,要不然很赶,博客也是写不好,所以要认真对待这些这个NLP学习,要不然效率是真的低。