---
title: Word2Vec
description: "Word2Vec提供ML API、MLlib API两套接口。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2200/bds/kunpengbdssparkml_16_0047.html
sourcePath: /source/zh/kunpengboostkithistory/2200/bds/kunpengbdssparkml_16_0047.html
indexId: dc45d4555107c412d4527111cecf749d247e906e0e452ce6b9c85a2356f31ac873
---
# 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] | 所有词向量，打平为一维数组 |


- 使用样例

```
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)
