在 Spark 中加载经过训练的 Word2Vec 模型
Loadiing a trained Word2Vec model in Spark
我正在尝试将 google 的预训练向量 'GoogleNews-vectors-negative300.bin.gz' Google-word2vec 加载到 spark 中。
我将 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' 之后的 'metadata' 是从哪里来的。
我正在为 Eclipse 使用 Spark、Scala 和 Scala IDE。
我做错了什么?有没有其他方法可以在 spark 中加载预训练模型?非常感谢任何提示。
你是怎么得到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)。
我正在尝试将 google 的预训练向量 'GoogleNews-vectors-negative300.bin.gz' Google-word2vec 加载到 spark 中。
我将 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' 之后的 'metadata' 是从哪里来的。 我正在为 Eclipse 使用 Spark、Scala 和 Scala IDE。
我做错了什么?有没有其他方法可以在 spark 中加载预训练模型?非常感谢任何提示。
你是怎么得到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)。