正在阅读《第三节 词向量》
第(2/2)页


为了解决通过向量描述词的含义的问题,分布式表示需要根据大量的文本统计不同词在上下文中的关系。例如,通过统计出现的频率,发现在“中国”这个词的前后,经常会出现“北京”这个词,那就认为这两者有比较密切的关系。在词向量的分布式表示中,经常采用的模型有两种,分别是CBOW(连续式词袋模型)和SKIP-GRAM。其中CBOW是根据某个词前面的k个词和后面k个词,来计算某个词出现的概率,也就是通过上下文来预测词。例如,有一句话“我很困”,那这句话后面出现“睡觉”这个词的概率就比较大。SKIP-GRAM与此相反,是通过词来预测它的上下文,也就是计算某个词前面和后面出现其他词的概率。例如,出现了“睡觉”,那么它的上下文中出现“困”“床”的概率就会比较大。通过建立这种联系,就解决了独热表示方法注意不到词与词之间关系的问题。

使用神经网络进行词表示的另一个优点在于,通过搭建合适的网络结构、制订合适的训练方法,在一定程度上保留词的含义的前提下,可以压缩表示词的向量的维数。这个过程可以理解为,通过训练,自动抽取词的含义的主要特征,从而把词以较小维数的向量展示出来。本教材不详细解释这种训练方式的细节。

采用这种表示方式,2013年Google首先推出了用于获取词的向量表示的工具包,称为word2vec。现在基于类似想法的工具包还有很多,利用gensim实现词向量训练非常简单,本教材将采用gensim提供的工具包实现词向量的训练任务。

训练词向量首先需要准备一个语料库,从这个语料库学习词与词之间的联系以及词的含义。语料库其实是训练数据。从这个角度来说,语料库越大,训练出的向量的准确程度就越高。作为案例,本教材使用金庸先生的武侠小说《笑傲江湖》作为语料库。相关数据“”可从教材资源平台下载,需要说明的是,资源平台提供的文本数据仅为该小说的部分内容,并且已经进行了分词和其他必要的处理。

首先安装gensim模块。在命令行窗口输入如下命令即可。

pipinstallgensim

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

In[1]:importcodecs

In[2]:fromgensim.modelsimportWord2Vec

In[3]:.word2vecimportLineSentence

打开语料库文件,这里的语料库文件已经经过必要地处理,可以直接使用。

In[4]:inp=('','r','utf-8')

使用gensim的词向量训练工具进行训练。参数size表示训练好的词向量的维数,window表示需要考虑的上下文的长度,min_count表示所考虑的词出现的最低次数,低于此数的词将被忽略。训练完成后把模型和向量保存起来,以备将来使用。

In[5]:model=Word2Vec(LineSentence(inp),size=300,window=7,

min_count=5)

In[5]:('')

In[6]:.save_word2vec_format('',binary=False)

训练完成后,可通过调用相应的模型使用训练完成的词向量。

In[7]:importgensim

In[8]:model=("")

查看与“盈盈”关联密切的词汇,输出结果如下。

In[9]:model.most_similar("盈盈")

Out[9]:

[('岳灵珊',0.9394630193710327),

('林平之',0.9115134477615356),

('举杯',0.8917326927185059),

('田伯光',0.8862934112548828),

('摇',0.8862836956977844),

('曲非烟',0.8856724500656128),

('忙',0.8839414119720459),

('走',0.8811073303222656),

('一眼',0.8792630434036255),

('曲非',0.8775876760482788)]

这里的输出结果是根据词向量计算出的与“盈盈”关系最密切的词的前十名。可以看到有一定的道理,但是也有些不准确或者奇怪的输出。这跟训练语料的大小、语料的处理过程、网络参数的设置等因素都有关系,读者可以尝试进行进一步的改进,通常能够得到更精确的结果。

相关小说

宠妻狂魔:爹地,妈咪是我的 青春 / 完结
宠妻狂魔:爹地,妈咪是我的
一笔旧梦
惨遭妹妹陷害,她和陌生男人有了一夜情,五年后回归,却被腹黑又软萌的小娃娃被缠上。介绍一下,这是我爸,我觉得你们非常般配。总裁一脸冷酷将结婚证丢到了她面前,你已经是我的合法妻子了。什么情况?捡娃娃还带买一送一的?
27.59万字 4 年前
至尊魔妃,废柴大小姐 青春 / 完结
至尊魔妃,废柴大小姐
玖阑夜大人
她,是濮氏家族的濮四爷,打架找场子样样齐活。 她,潘家的废柴小姐,寄人篱下,受尽欺凌,样样占尽。 当她变成了她,功法仙器在手,宝贝丹药齐活。 敢算计她? 阴谋诡计,勾心斗角,全是她当年玩剩下的! 她定要让那些欺负她的人百倍偿还! 他,冷面仙君,修为超群,九重天门仙君之首,天帝都得给上几分薄面。 世人皆道他无心,偏偏他却认准了她,宠她入骨。 为渡她成仙,甘愿散去半生修为……
68.91万字 3 年前
顾先生,离婚吧! 青春 / 完结
顾先生,离婚吧!
冬菇家的猫
五年前,她被自己的丈夫陷害失身,家破人亡;为了报仇,她一人流落异国他乡,尝尽辛酸;四年后,她华丽回归,当名扬全城的美女设计师,碰上昔日里的前夫,又会擦出什么样的火花?
67.01万字 3 年前
嫡女重生,朕的皇后总想逃 都市 / 完结
嫡女重生,朕的皇后总想逃
涅凰
一朝眼瞎,一生凄苦,重活一世的沈姝誓要擦亮眼,防火防盗防渣男!渣男贱女,断她手脚筋,杀她长子,害她长女,毁她幼女!呵,这一桩桩,她都要同他们清算!渣男妄想攀附权贵?那就让他身败名裂!贱女阴毒?那就撕了她的美人皮!一心只有仇恨的她却无意间招惹到了一个了...
98.25万字 10 天前
农门冲喜小娘子 玄幻 / 完结
农门冲喜小娘子
笑猫嫣然
农门冲喜小娘子,相亲对像是初恋?呆了! 一口茶水没顺下去,嗝屁了。 再睁眼,床上躺着病歪歪的相公,她成冲喜娘子了? 屋子是借的,米缸是空的,地里长满荒草!!这到底是个什么情况?!! 床,只有一张?!被子,只有一条?! 白天伺候相公吃喝,晚上伺...
140.12万字 10 天前
星铁:重生成猫被符玄偷听心声 穿越 / 完结
星铁:重生成猫被符玄偷听心声
小太阳mt
++++琉光穿越到了的世界,但是本体却是一只流浪猫,并且还觉醒了一个好感度系统。该系统的作用是,让靠近琉光的人,都会对琉光产生好感。于是,第一个遇到琉光的符玄,一眼就喜欢上了这只圆滚滚、可爱的小猫,并将其带回了太卜司。但之后,符玄便发现,自己居然可以听见这小猫心里所想?!琉光:哎嘿嘿!符玄老婆今天又用她香香的、滑滑
158.16万字 7 天前