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