Word2Vec

word2Vec

spark描述:
    Word2Vec是一个Estimator(评估器),它采用表示文档的单词序列,并训练一个Word2VecModel,
    该模型将每个单词映射到一个唯一的固定大小向量.
    Word2VecModel使用文档中所有单词的平均值将每个文档转换为向量;
    该向量然后可用作预测,文档相似性计算等功能
概念:
    Word2Vec是一种著名的词嵌入(Word Embedding)方法,它可以计算每个单词在其给定的语料库环境下的分布式词向量(Distributed Representation,亦直接被称为词向量).
    词向量表示可以在一定程度上刻画每个单词的语义
    如果词的语义相近,它们的词向量在向量空间中也相互接近,这使得词语的向量化建模更加精确,可以改善现有方法并提高鲁棒性,
    词向量已被证明在许多自然语言处理问题,如: 机器翻译,标注问题,实体识别等问题中具有非常重要的作用.

Spark中的Word2Vec

概念:
    Word2Vec是一个Estimator,它采用一系列代表文档的词语来训练wordVecModel,
    该模型将每个词语映射到一个固定大小的向量.
    Word2Vec使用文档中每个词语的平均数来讲文档转换为向量,然后这个向量可以作为预测的特征,来计算文档相似度计算等等

Word2Vec的两种模型

1. CBOW
思想:其思想是通过每个词的上下文窗口词词向量来预测中心词的词向量,
2. Skip-gram
思想: 是通过每个中心词来预测其上下文窗口词,并根据预测结果来修正中心词的词向量.

Ml库中的Word2Vec实现

概念: 
    1. 在Ml库中,Word2Vec的实现使用的是skip-gram模型,Skip-gram的训练目标是学习词表征向量分布,其优化目标是在给定中心词
的词向量的情况下,最大优以下似然函数.
    2. ML与经典的Word2Vec实现采用了相同的策略,使用Huffman树来进行层次Softmax(Hierachical Softmax)方法来进行优化,

案例实现:

描述:
    在下面的代码段中,我们首先用一组文档,其中一个词语序列代表一个文档,对于每一个文档,我们将其转换为一个特征向量.
    此特征向量可以被传递到一个学习算法
代码实现: 
import org.apache.spark.ml.feature.Word2Vec
import org.apache.spark.sql.SparkSession

object W2VecDemo {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder().
      master("local").
      appName("TF-IDFDemo").
      getOrCreate()
    //--1. 首先,导入Word2Vec所需要的包,并创建三个词语序列,每个代表一个文档
    val documentDF = spark.createDataFrame(Seq(
      "Hi I heard about Spark".split(" "),
      "I wish Java could use case classes".split(" "),
      "Logistic regression models are neat".split(" ")
    ).map(Tuple1.apply)).toDF("text")
    //--2. 新建一个Word2Vec,显然,它是一个Estimator,设置相应的超参数,这里设置特征向量的维度为3
    //--Word2Vec模型还有其他可设置的超参数,具体的超参数描述可以
    // 参考(http://spark.apache.org/docs/1.6.2/api/scala/index.html#org.apache.spark.ml.feature.Word2Vec)
    val word2Vec = new Word2Vec()
      .setInputCol("text")
      .setOutputCol("result")
      .setVectorSize(3)
      .setMinCount(0)
    //训练Word2Vec模型
    val model= word2Vec.fit(documentDF)
    //--4. 利用Word2VecModel把文档转变成特征向量
    val result = model.transform(documentDF)
    result.select("result").take(3).foreach(println)
    //--打印原始结果和向量结果
    result.collect().foreach{
        case Row(text:Seq[_],features:Vector)=>
        println(s"Text:[${text.mkString(",")}]=>\nVector:$features\n")}
    }
  }
}

结果:

[[-0.028139343485236168,0.04554025698453188,-0.013317196490243079]]
[[0.06872416580361979,-0.02604914902310286,0.02165239889706884]]
[[0.023467857390642166,0.027799883112311366,0.0331136979162693]]
可以看到,文档被转变为了一个3维的特征向量,这些特征向量就可以被应用到相关的机器学习方法中.
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,137评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,824评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,465评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,131评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,140评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,895评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,535评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,435评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,952评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,081评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,210评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,896评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,552评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,089评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,198评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,531评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,209评论 2 357

推荐阅读更多精彩内容

  • BERT发展史(三)全方位多角度理解Word2Vec 建议先阅读之前两篇文章: BERT发展史(一)从词嵌入讲起 ...
    LITD阅读 3,423评论 0 13
  • 朱永新教授说,对我较深的教育理念是交给学生惠及一生的东西,用传统的精华为其电机,用人文的环境为其培植。小古...
    李申霞阅读 401评论 0 1
  • 对于极简主义的生活来说,减少物品只是手段,减少这些生活中无益的事情,从而腾出时间精力专注浪费在美好的事情上,...
    ITCooler阅读 3,101评论 0 0
  • 谁是你前世的回眸,谁是你今生的注定我闭目静候在凡尘的喧闹之中 这一生,愿为莲,氤氲缠绕婉立水中央不为世间繁花所迷惑...
    蓝蓝的子夜爱在阳光阅读 554评论 67 69