2017-08-03 211 views
0

我想将谷歌的预训练矢量GoogleNews-vectors-negative300.bin.gz'Google-word2vec加载到spark中。在Spark中加载训练有素的Word2Vec模型

我将bin文件转换为txt,并创建了一个更小的块来测试我称之为“vectors.txt”的块。我试图加载它,如下所示:

 val sparkSession = SparkSession.builder 
    .master("local[*]") 
    .appName("Word2VecExample") 
    .getOrCreate() 

    val model2= Word2VecModel.load(sparkSession.sparkContext, "src/main/resources/vectors.txt") 

    val synonyms = model2.findSynonyms("the", 5) 

    for((synonym, cosineSimilarity) <- synonyms) { 
    println(s"$synonym $cosineSimilarity") 
    } 

让我吃惊,我面临着以下错误:

Exception in thread "main" org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/home/elievex/Repository/ARCANA/src/main/resources/vectors.txt/metadata 

我不知道在哪里vectors.txt后”做了“元数据” ' 来自。 我为Eclipse使用Spark,Scala和Scala IDE。

我在做什么错?有没有不同的方式来加载火花预先训练的模型?将不胜感激任何提示。

回答

0

你究竟是如何得到vector.txt的?如果您对Word2VecModel.save读的JavaDoc,你可能会看到:

This saves: - human-readable (JSON) model metadata to path/metadata/ - Parquet formatted data to path/data/
The model may be loaded using Loader.load.

所以,你需要的是在Parquet格式是Spark车型ML标准模型。

不幸的是,Google原生格式的加载尚未实现(请参阅SPARK-9484)。

相关问题