Spark下的word2vec模型训练
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Spark下的word2vec模型训练
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                一、引言
????前邊一節介紹了Word2Vec模型訓練同義詞,那么在大數據量的情況下,我們自然想到了用spark來進行訓練。下面就介紹我們是如何實現spark上的模型訓練。
二、分詞
????模型訓練的輸入是分好詞的語料,那么就得實現spark上的分詞。
def split(jieba_list, iterator):sentences = []for i in iterator:try:seg_list = []#out_str = ""s = ""for c in i:if not c is None:s += c.encode('utf-8')id = s.split("__")[0]s = s.split("__")[1]wordList = jieba.cut(s, cut_all=False)for word in wordList:out_str += wordout_str += " "sentences.append(out_str)except:continuereturn sentences三、模型訓練
????這里,直接用分詞后的rdd對象作為輸入
word2vec = Word2Vec().setNumPartitions(50)spark.sql("use jkgj_log")df = spark.sql("select label1_name,label2_name from mid_dim_tag ")df_list = df.collect()spark.sparkContext.broadcast(df_list)diagnosis_text_in = spark.sql("select main_suit,msg_content from diagnosis_text_in where pt>='20170101'")inp = diagnosis_text_in.rdd.repartition(1200).mapPartitions(lambda it: split(df_list,it)).map(lambda row: row.split(" "))model = word2vec.fit(inp)總結
以上是生活随笔為你收集整理的Spark下的word2vec模型训练的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: hdu-2080(三角函数和向量)
- 下一篇: hdu1232(简单并查集)
