2017-08-03 19 views
0

私はGoogleの訓練されたベクトル 'GoogleNews-vectors-negative300.bin.gz' Google-word2vecをsparkに読み込もうとしています。Sparkで訓練されたWord2Vecモデルをロードする

私はbinファイルをtxtに変換し、テストのために "vectors.txt"という小さなチャンクを作成しました。 vectors.txt」の後のメタデータ」を行ったところ、私はよく分からない

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 

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

をし、私の驚きに、私は次のようなエラーに直面しています:私は、次のようにそれをロードしてみました' から来た。 Eclipse用にSpark、Scala、Scala IDEを使用しています。

私は間違っていますか? sparkにあらかじめ訓練されたモデルをロードする方法がありますか?任意のヒントをありがとう。

答えて

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.

だから、何が必要スパークMLモデルの標準であるParquet形式のモデルです。

残念ながら、Googleのネイティブフォーマットの読み込みはまだ実装されていません(SPARK-9484参照)。