㈠ 第二篇: 词向量之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