---
title: Word2Vec
description: "Word2Vec提供ML API、MLlib API两套接口。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengbds/appAccelFeatures/algorithmaccelf_ml/kunpengbdssparkml_16_0047.html
sourcePath: /source/zh/kunpengbds/appAccelFeatures/algorithmaccelf_ml/kunpengbdssparkml_16_0047.html
indexId: 2ba228acc5594523e265020ba74cb46fecf31634ade883a50376d80c229a0d0c88
---
# Word2Vec

Word2Vec提供ML API、MLlib API两套接口。

| 模型接口类别 | 函数接口 |
| --- | --- |
| ML Word2Vec API | def fit(dataset: Dataset[\_]): Word2VecModel |
| ML Word2Vec API | def fit(dataset: Dataset[\_], paramMaps: Array[ParamMap]): Seq[Word2VecModel] |
| ML Word2Vec API | def fit(dataset: Dataset[\_], paramMap: ParamMap): Word2VecModel |
| ML Word2Vec API | def fit(dataset: Dataset[\_], firstParamPair: ParamPair[\_], otherParamPairs: ParamPair[\_]\*): Word2VecModel |
| MLlib Word2Vec API | def fit[S <: Iterable[String]](dataset: JavaRDD[S]): Word2VecModel |
| MLlib Word2Vec API | def fit[S<: Iterable[String]](dataset: RDD[S]): Word2VecModel |


#### ML Word2Vec API

- 功能描述
  输入Dataset形式的句子集合，输出词向量模型（即每个词对应的向量）。


- 输入输出

  1. 包名：package org.apache.spark.ml.feature
  2. 类名：Word2Vec
  3. 方法名：fit
  4. 输入：Dataset[_]，句子集合，输入字段如下。| 参数名 | 取值类型 | 缺省值 | 描述 |
| --- | --- | --- | --- |
| inputCol | Seq[String] | inputCol | 句子 |


  5. 基于开源版本算法优化的参数。| 参数名称 | 取值类型 | 缺省值 | 取值范围 | 描述 |
| --- | --- | --- | --- | --- |
| setInputCol | String | 无 | \- | 句子集合所在列名。 |
| setVectorSize | Int | 100 | ＞0 | 向量长度。 |
| setWindowSize | Int | 5 | ＞0 | 窗口长度。 |
| setStepSize | Double | 0.025 | ＞0 | 学习率。 |
| setNumPartitions | Int | 1 | ＞0 | 分区数。 |
| setMaxIter | Int | 1 | ≥0 | 迭代次数。 |
| setSeed | Long | 无 | \- | 随机种子。 |
| setMinCount | Int | 5 | ≥0 | 词表中词的最小频次。 |
| setMaxSentenceLength | Int | 1000 | ＞0 | 单个句子的最大值，如果超过则会被拆分。 |


  6. 新增算法参数。| 参数名称 | 取值类型 | 缺省值 | 取值范围 | 描述 | Spark conf参数名称 |
| --- | --- | --- | --- | --- | --- |
| setRegularization | Float | 0.05 | ≥0 | 正则系数 | spark.boostkit.mllib.feature.word2vec.regularization |
| setRepetition | Int | 3 | ≥0 | 数据在单个分区内的重复次数 | spark.boostkit.mllib.feature.word2vec.repetition |


  7. 输出：Word2VecModel，包含。| 参数名称 | 取值类型 | 描述 |
| --- | --- | --- |
| wordIndex | Map[String, Int] | 词与词ID之间的对应关系。 |
| wordVectors | Array[Float] | 所有词向量，打平为一维数组。 |


- 使用样例
  1 2 3 4 5 6 7 val model = new Word2Vec() .setInputCol("sentences") .setVectorSize(3) .setWindowSize(2) .setMaxIter(3) .setNumPartitions(10) .fit(data)


#### MLlib Word2Vec API

- 功能描述
  输入RDD[Seq[String]] 形式的句子集合，输出词向量模型（即每个词对应的向量）。


- 输入输出

  1. 包名：package org.apache.spark.mllib.feature
  2. 类名：Word2Vec
  3. 方法名：fit
  4. 输入：句子集合RDD[Seq[String]]
  5. 基于开源版本算法优化的参数| 参数名称 | 取值类型 | 缺省值 | 取值范围 | 描述 |
| --- | --- | --- | --- | --- |
| setVectorSize | Int | 100 | ＞0 | 向量长度 |
| setWindowSize | Int | 5 | ＞0 | 窗口长度 |
| setLearningRate | Double | 0.025 | ＞0 | 学习率 |
| setNumPartitions | Int | 1 | ＞0 | 分区数 |
| setNumIterations | Int | 1 | ≥0 | 迭代次数 |
| setSeed | Long | 无 | \- | 随机种子 |
| setMinCount | Int | 5 | ≥0 | 词表中词的最小频次 |
| setMaxSentenceLength | Int | 1000 | ＞0 | 单个句子的最大值，如果超过则会被拆分 |


  6. 新增算法参数| 参数名称 | 取值类型 | 缺省值 | 取值范围 | 描述 | Spark conf参数名称 |
| --- | --- | --- | --- | --- | --- |
| setRegularization | Float | 0.05 | ≥0 | 正则系数 | spark.boostkit.mllib.feature.word2vec.regularization |
| setRepetition | Int | 3 | ≥0 | 数据在单个分区内的重复次数 | spark.boostkit.mllib.feature.word2vec.repetition |


  7. 输出：Word2VecModel，包含。| 参数名称 | 取值类型 | 描述 |
| --- | --- | --- |
| wordIndex | Map[String, Int] | 词与词ID之间的对应关系。 |
| wordVectors | Array[Float] | 所有词向量，打平为一维数组。 |


- 使用样例
  1 2 3 4 5 6 val model = new Word2Vec() .setVectorSize(3) .setWindowSize(2) .setNumIterations (3) .setNumPartitions(10) .fit(data)
