㈠ 第二篇: 詞向量之Spark word2vector實戰
word2vector 是google開源的一個生成詞向量的工具,以語言模型為優化目標,迭代更新訓練文本中的詞向量,最終收斂獲得詞向量。詞向量可以作為文本分析中重要的特徵,在分類問題、標注問題等場景都有著重要的應用價值。本文總結下了spark word2vector使用過程中遇到的問題,以及給出word2vector使用所需的參數配置,希望能夠減少新手在使用過程中遇到的坑,希望有所幫助。
from pyspark.ml.feature import Word2Vec
from pyspark.sql import SQLContext
from pyspark import SparkConf, SparkContext
from pyspark.sql import Row
conf = (SparkConf().set("spark.driver.maxResultSize","2g"))
sc = SparkContext(conf=conf)
sqlContext = SQLContext(sc)
text = sc.textFile("yourfilepath")
documentDF = text.map(lambda x : Row(text=x.split(" "))).toDF()
word2Vec = Word2Vec(vectorSize=200, minCount=5, numPartitions=100,inputCol="text", outputCol="result")
model = word2Vec.fit(documentDF)
vector_model = model.getVectors()
vector_model.saveAsParquetFile("modelpath")
spark-submit
--master yarn-client
--executor-cores 2
--executor-memory 14g
--queue your-queue
--num-executors 100
--driver-memory 10g
--conf spark.ui.port=$RANDOM
--conf spark.shuffle.manager=SORT
--conf spark.shuffle.memoryFraction=0.2
--conf spark.yarn.executor.memoryOverhead=2048
--conf spark.core.connection.ack.wait.timeout=300
--conf spark.akka.frameSize=600 ./word2vector_training.py