當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。