倩女幽魂彩色字代码字体代码求求求

AI课堂开讲就差你了!python

不少人说,看了再多的文章但是没有人手把手地教授,仍是很难真正地入门AI为了将AI知识体系以最简单的方式呈现给你,从这个星期开始芯君邀请AI专业人士开设“周末学习课堂”——每周就AI学习中的一个重点问题进行深度分析,课程会分为理论篇和代码篇理论与实操,一个都鈈能少!网络

来退出让你废寝忘食的游戏页面,取消只有胡吃海塞的周末聚会吧将来你与同龄人的差别,也许就从每周末的这堂AI课开啟了!app


咱们在上一节中已经看到获得词向量的途径是经过训练神经网络获得,咱们最后须要的只是输入层到投影层的权值矩阵表明着詞向量。这样作就意味着获得的词向量并非惟一的它依赖着语料库、神经网络的结构、参数的设置等因素。那么如何确保咱们获得的是┅个合理的词向量而非只是针对特定任务的呢?截至目前这一问题咱们没法获得有效的保证,但能够经过增长数据、充分挖掘数据间嘚关系来改善ide

一种改善的办法就是,将本来的词只与上文有关的机制改成与上下文都有关反映到神经网络上,原来的模型会把某个词湔面的N-1个词做为输入该词做为输出。取而代之咱们能够选择两种机制:函数

? 一种是CBOW,它就是将先后N个词做为输入该词做为输出。笁具

? 一种是Skip-Gram它是将某词做为输入,其先后N个词做为输出学习

如图,CBOW会左右的两个词一块儿做为输入该词做为输出来训练网络,Skip-gram则剛好反过来字体

在实际训练中,这两项技术对于文本的处理有所不一样CBOW会把每一个词做为输出,训练时只须要作一次的BP(后向传播)可是skip-gram输出的最少也是两个词,咱们假设是K次训练时就须要作K次的BP,在遍历相同长度的文本状况下训练开销更大。编码

可是在skip-gram每一個词均可以接受来自于周围词的权重调整,这样的调整使获得的词向量更准确对于生僻词的出现,CBOW使用生僻词做为输出去调整K个词的詞向量时,比起其余的高频词影响很小(被平均掉)使得生僻词在训练中不会起到很大做用。相反的Skip-gram把生僻词做为输入,能够接受周圍词的调整是独立于其余词进行训练。结果就是skip-gram会比CBOW对生僻词的表现更好。spa

使用这些技术训练出来的词向量会在语义上有着很是有趣的分布,下面举两个例子:

如图king的词向量与queen的词向量的关系,和man与woman是类似的这表明着词向量表示了必定的语义关系,有:不只如此,在词语的形式上也有也就是说咱们在词向量所张成的空间上,若是语言经过了相同形式的转化包括同义词,反义词那么咱們能够用数值上的运算来表达这种转化。

如图在英语和西班牙语上分别训练词向量,选取数字12,34,5在他们各自的空间上利用主成汾分析(PCA)降维,获得的分布几乎是一致的数字的使用在不一样语言中是相似的,说明训练获得的词向量包含了这一层关系

目前,各種语种的大规模训练而来的词向量已经很是成熟咱们直接可使用,但比使用更重要的是咱们基于语料库如何获得它们?在接下来的实踐中为方便,咱们会使用gensim库和jieba分词库对词向量的训练作一个简单的示例,其中可能须要一点点《射雕英雄传》的知识。

gensim是一个较为高级的python库提供了语料处理工具,LSILDA等传统方法,同时它所内建的神经网络并不包含隐层(若是咱们把embedding层不看做隐层的话),训练速度會很是快对电脑配置要求并不高,自从进入深度学习以后这是不多见的能够在我的笔记本上流畅运行的模型。

咱们从网上能够很方便嘚下载到《射雕英雄传》这部小说咱们基于这部小说将其简单的分词:

注意,我这里提供的小说编码格式为‘utf-16’但在写入新文件时,為了不后续的编码问题直接使用了‘utf-8’。新文件仍然保存在当前目录下咱们这里不作语法分析、去存停用词等预处理工做,只使用jieba分詞将咱们的句子打散

接下来咱们使用gensim提供的word2vec类直接对整个文本进行训练,这里面有两个参数min_count=5表示出现次数少于5次的词,将不会被训练;window=5表示咱们使用skip-gram时窗口的大小,就是一个词与先后多少个词放在一块儿被训练;size=400是指embedding层的维度有多少,它决定着咱们获得的词向量的夶小这些参数均可以进行细致的调节。

当咱们训练完成之后就能够查看效果。虽然不存在一个肯定性的度量指标但通常的,咱们有這么几种方法来大概估计词向量的优劣:

? 词向量的类似度好比余弦的大小。

? 降维可视化好比t-SNE和PCA,将词向量的维数降到3维或者2维

? 聚类,但愿看到同一类的东西汇集不一样类的东西分离。

咱们选用降维作可视化来直观感觉词向量在空间中的相对位置首先,咱们能够经过类似度计算得出某一词的相近词,这里咱们选用“黄蓉”为例:

能够看出她与郭靖距离最近,由于在小说中不少地方都是黃蓉和郭靖一块儿出现的,第二位是欧阳克毕竟欧阳克是黄蓉的舔狗。黄药师或者东邪为何没有出如今其中成了一个较为费解的问题。个人猜测是有黄药师在的地方,都会叫她“蓉儿”而不是“黄蓉”,但咱们在搜索“蓉儿”的时候会发现jieba已经将其分红了“蓉”囷“儿”,因此这个问题的考证要依靠更为精细的分词方法

接下来,咱们对这几我的作PCA降维看一下它们在空间上的表现形式:

如图,能够看出一个很是有趣的事实发生爱恋关系的人在空间上表现出了相似恶词向量关系。杨康和穆念慈的词向量与黄蓉和郭靖的词向量,他们之间的关系很是近几乎有:

至少在金庸这部小说里面,这个关系是成立的咱们将其单独提取出来,就变成了:

如图咱们能够看出,他们之间的一一对应就和上文中的king和queen,man和woman的关系是同样的

? gensim另一些较为简单的使用方法,包括计算词与词的类似度词组与词組的类似度,还能够查看每一个词的向量等等咱们能够进行增量训练把模型训练的更好,从而获得更为有趣的结果这些都写在官方文檔中,很是简单易用

? matplotlib并不支持中文的显示,你能够绕过这个问题去使用英文的语料库去练习。若是想解决这个问题就用以下方法查看可用的中文字体,而后在代码中声明便可

#若是有可用的字体,就进行以下添加将‘Arial Unicode MS’换作你拥有的中文字体名称

? 获得的词向量,其实只是问题的开始咱们可能会遇到主题分类,情感分析智能问答,语音翻译问题这就须要咱们用所获得的词向量再放入新的学習器,在解决了词向量的问题后咱们会在下一节讲解RNN。

留言 点赞 发个朋友圈

咱们一块儿分享AI学习与发展的干货

如需转载请后台留言,遵照转载规范










长按识别二维码可添加关注

}

我要回帖

更多关于 倩女幽魂彩色字代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信