前言
常见的文本挖掘领域首先需要对于词做定量化表示,目前已知的有One-hot Representation和Distributed Representation两种,有关两者的细节说明自行百度,这里需要强调词向量(Distributed Representation)的逻辑含义,它为什么能从一定的程度利用距离表示词语间的语义相似性。
例如:对于 词(篮球)来说,如果我们已经跟它相关的几个词有(体育,运动,NBA,足球),用DR的方式表示为(0.5,0.2,0.1,0.2),这里我们可以认为篮球跟这组词向量的权重关系,像LDA这种模型便能达到求解的效果。
而Word2Vec也是采用此种表示方式便给出具体的实现算法,它据说神奇之处在于词向量的加减法可以实现意想不到的效果,自行脑补。
Word2Vec
word2vec是 Google 在 2013 年年中开源的一款将词表征为实数值向量的高效工具, 其利用深度学习的思想,可以通过训练,把对文本内容的处理简化为 K 维向量空间中的向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度,它的作者Mikolov 与现今深度学习的大师之间有着错综复杂的关系了,自行百度。
这里结合spark mllib包提供的word2vec算法来简单实现细节的剖析:
- 输入数据text7(spark中默认滑动窗口window=5)
this