1

各ドキュメントの個々の単語ベクトルを合計する word2vec モデルと pyspark ジョブがあります。

model = gensim.models.Word2Vec.load('w2v.mod')
model2 = sc.broadcast(model)

def getVector(article):
    vec = numpy.ndarray(100)
    for word in article:
        if word in model2.value:
            vec += model2.value[word]
    return vec /len(article)

data = sc.textFile('documents.txt').map(lambda doc:doc.split())
vectors=  data.map(lambda doc:(doc,getVector(doc)))

pyspark の結果と通常の結果の間に奇妙な矛盾が生じています。

vectors.take(1)

Spark での結果

火花での結果

スパークなしの結果 スパークなしの結果

同じベクトルをローカルで計算すると法線ベクトルが得られますが、15桁の次元の強度を持つ配列が得られます(上記の7番目の要素を見てください)。ここで Spark を使用すると何が問題になるのでしょうか? 結果をマスターに伝える際に、回答を台無しにしていませんか?

4

0 に答える 0