2017-08-03 1 views
0

Ich versuche, Googles vortrainierte Vektoren 'GoogleNews-Vektoren-negative300.bin.gz' Google-word2vec in Funken zu laden.Laden eines trainierten Word2Vec-Modells in Spark

Ich konvertierte die bin-Datei in txt und erstellte einen kleineren Chunk zum Testen, dass ich "vectors.txt" nannte. Ich habe versucht, es wie folgt geladen:

 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") 
    } 

und zu meiner Überraschung ich mit dem folgenden Fehler bin konfrontiert:

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 

Ich bin mir nicht sicher, wo die ‚Metadaten‘ tat nach dem Wort ‚vectors.txt ' kam aus. Ich verwende Spark, Scala und Scala IDE für Eclipse.

Was mache ich falsch? Gibt es eine andere Möglichkeit, ein vortrainiertes Modell in Spark zu laden? Würde mich über irgendwelche Tipps freuen.

Antwort

0

Wie genau haben Sie vector.txt bekommen? Wenn Sie JavaDoc für Word2VecModel.save lesen können Sie sehen, dass:

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

Also, was Sie brauchen, ist das Modell in Parquet Format, das für Spark-ML-Modelle Standard.

Leider wurde das Laden von Google's nativem Format noch nicht implementiert (siehe SPARK-9484).

Verwandte Themen