达观杯文本智能处理(三)——Word2vec原理与实践

本文介绍了Word2vec在NLP中的重要性,详细阐述了Word2vec的理论,包括CBOW和Skip-Gram模式,以及训练过程中的注意事项。通过Python实践展示了如何使用gensim库实现词向量的训练,并详细解释了word2vec的主要参数。
摘要由CSDN通过智能技术生成

一、Word Embedding背景介绍

在NLP(自然语言处理)里面,最细粒度的是词语,词语组成句子,句子再组成段落、篇章、文档。所以要处理 NLP 的问题,首先就要拿词语开刀。

举个简单例子,判断一个词语的情感,是积极还是消极。用机器学习的思路,我们有一系列样本(x,y),这里 x 是词语,y 是它们的情感类别,我们要构建 f(x)->y 的映射,但这里的数学模型 f(比如神经网络、SVM)只接受数值型输入,而 NLP 里的词语,是人类的抽象总结,是符号形式的(比如中文、英文、拉丁文等等),所以需要把他们转换成数值形式,或者说——嵌入到一个数学空间里,这种嵌入方式,就叫词嵌入(word embedding),而 Word2vec ,就是词嵌入( word embedding) 的一种。

也就是说,我们要怎么把一堆计算机不认识的词语表示成它认识的,从而继续为我们人类服务,达到人类的目的?这个途径就是词嵌入(word embedding):把人类理解的词语表示成在数学空间里的“词语”,这个数学空间里的“词语”能够帮助计算机去理解我们人类的语义,也就是说,知道哪些词的意思是相近的,等等,这体现在数学空间里的距离和概率等的概念上。

以上我们理解了在NLP领域word embedding的理由和重要性。

二、Word2vec

1.Word2vec理论

word2vec也叫word embeddings,中文名“词向量”,作用就是将自然语言中的字词转为计算机可以理解的稠密向量(Dense Vector)。在word2vec出现之前,自然语言处理经常把字词转为离散的单独的符号,也就是One-Hot Encoder。

杭州 [0,0,0,0,0,0,0,1,0,……,0,0,0,0,0,0,0]
上海 [0,0,0,0,1,0,0,0,0,……,0,0,0,0,0,0,0]
宁波 [0,0,0,1,0,0,0,0,0,……,0,0,0,0,0,0,0]
北京 [0,0,0,0,0,0,0,0,0,……,1,0,0,0,0,0,0]

比如上面的这个例子,在语料库中,杭州、上海、宁波、北京各对应一个向量,向量中只有一个值为1,其余都为0。但是使用One-Hot Encoder有以下问题。一方面,城市编码是随机的,向量之间相互独立,看不出城市之间可能存在的关联关系。其次,向量维度的大小取决于语料库中字词的多少。如果将世界所有城市名称对应的向量合为一个矩阵的话,那这个矩阵过于稀疏,并且会造成维度灾难。
使用Vector Representations可以有效解决这个问题。Word2Vec可以将One-Hot Encoder转化为低维度的连续值,也就是稠密向量,并且其中意思相近的词将被映射到向量空间中相近的位置。
如果将embed后的城市向量通过PCA降维后可视化展示出来,那就是这个样子。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值