当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Python pyspark Word2Vec用法及代码示例

本文简要介绍 pyspark.mllib.feature.Word2Vec 的用法。

用法:

class pyspark.mllib.feature.Word2Vec

Word2Vec 在文本语料库中创建单词的向量表示。该算法首先从语料库中构造一个词汇表,然后学习词汇表中单词的向量表示。矢量表示可以用作自然语言处理和机器学习算法中的特征。

我们在实现中使用skip-gram 模型和分层softmax 方法来训练模型。实现中的变量名称与原始 C 实现相匹配。

对于原始 C 实现,请参阅https://code.google.com/p/word2vec/ 对于研究论文,请参阅向量空间中单词表示的有效估计和单词和短语的分布式表示及其组合性。

版本 1.2.0 中的新函数。

例子

>>> sentence = "a b " * 100 + "a c " * 10
>>> localDoc = [sentence, sentence]
>>> doc = sc.parallelize(localDoc).map(lambda line: line.split(" "))
>>> model = Word2Vec().setVectorSize(10).setSeed(42).fit(doc)

查询单词的同义词不会返回该单词:

>>> syms = model.findSynonyms("a", 2)
>>> [s[0] for s in syms]
['b', 'c']

但是查询向量的同义词可能会返回表示该向量的单词:

>>> vec = model.transform("a")
>>> syms = model.findSynonyms(vec, 2)
>>> [s[0] for s in syms]
['a', 'b']
>>> import os, tempfile
>>> path = tempfile.mkdtemp()
>>> model.save(sc, path)
>>> sameModel = Word2VecModel.load(sc, path)
>>> model.transform("a") == sameModel.transform("a")
True
>>> syms = sameModel.findSynonyms("a", 2)
>>> [s[0] for s in syms]
['b', 'c']
>>> from shutil import rmtree
>>> try:
...     rmtree(path)
... except OSError:
...     pass

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.mllib.feature.Word2Vec。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。