畅想小说网

第三节 词向量(第2页)

天才一秒记住【畅想小说网】地址:http://www.cxtra.net

为了解决通过向量描述词的含义的问题,分布式表示需要根据大量的文本统计不同词在上下文中的关系。

例如,通过统计出现的频率,发现在“中国”

这个词的前后,经常会出现“北京”

这个词,那就认为这两者有比较密切的关系。

在词向量的分布式表示中,经常采用的模型有两种,分别是CBOW(连续式词袋模型)和SKIP-GRAM。

其中CBOW是根据某个词前面的k个词和后面k个词,来计算某个词出现的概率,也就是通过上下文来预测词。

例如,有一句话“我很困”

,那这句话后面出现“睡觉”

这个词的概率就比较大。

SKIP-GRAM与此相反,是通过词来预测它的上下文,也就是计算某个词前面和后面出现其他词的概率。

例如,出现了“睡觉”

,那么它的上下文中出现“困”

“床”

的概率就会比较大。

通过建立这种联系,就解决了独热表示方法注意不到词与词之间关系的问题。

使用神经网络进行词表示的另一个优点在于,通过搭建合适的网络结构、制订合适的训练方法,在一定程度上保留词的含义的前提下,可以压缩表示词的向量的维数。

这个过程可以理解为,通过训练,自动抽取词的含义的主要特征,从而把词以较小维数的向量展示出来。

本教材不详细解释这种训练方式的细节。

采用这种表示方式,2013年Google首先推出了用于获取词的向量表示的工具包,称为word2vec。

现在基于类似想法的工具包还有很多,利用gensim实现词向量训练非常简单,本教材将采用gensim提供的工具包实现词向量的训练任务。

训练词向量首先需要准备一个语料库,从这个语料库学习词与词之间的联系以及词的含义。

语料库其实是训练数据。

从这个角度来说,语料库越大,训练出的向量的准确程度就越高。

作为案例,本教材使用金庸先生的武侠小说《笑傲江湖》作为语料库。

相关数据“xiaoao.txt”

可从教材资源平台下载,需要说明的是,资源平台提供的文本数据仅为该小说的部分内容,并且已经进行了分词和其他必要的处理。

首先安装gensim模块。

在命令行窗口输入如下命令即可。

pipinstallgensim

在IPython控制台导入需要使用的模块,包括编码转换模块codecs以及与词向量相关的模块。

In[1]:importcodecs

本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!

如遇章节错误,请点击报错(无需登陆)

新书推荐

明日之劫从斗破开始当大佬我以武道斩鬼神光明纪元步步生莲兰言之约至尊箭神晚唐浮生武道长生从内丹术开始荒火战争特种兵之二次入伍最弱功德系统怪谈作者拖更日记仙道邪君全球迷雾求生我们的家族没落了炮灰攻略我在末日文字游戏里救世遮天:成帝的我回到地球当保安四合院:香江首富从路边摊开始女明星的贴身保镖深渊主宰修仙从星际开始猎魔手记掌门人不高兴