Spark下的word2vec模型訓練

2021-07-29 03:52:35 字數 1048 閱讀 5530

前邊一節介紹了word2vec模型訓練同義詞,那麼在大資料量的情況下,我們自然想到了用spark來進行訓練。下面就介紹我們是如何實現spark上的模型訓練。

模型訓練的輸入是分好詞的語料,那麼就得實現spark上的分詞。

def

split

(jieba_list, iterator):

sentences =

for i in iterator:

try:

seg_list =

#out_str = ""

s = ""

for c in i:

ifnot 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 += word

out_str += " "

except:

continue

return 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'")

model = word2vec.fit(inp)

與word2vec 原來word2vec那麼簡單

說到word2vec,它可謂非結構化資料裡面的佼佼者,尤其是在推薦和nlp當中,足以體現它的優勢所在,並且多年一直備受工業界喜愛.那麼word2vec到底是怎麼個原理的,發現身邊總是有很多人問,確不能準確的說出為什麼是兩個矩陣,到底是怎麼自動反向傳播的,以及對於softmax之後那麼大的維度資料,是...

word2vec學習參考

最近看nlp的東西比較多。就拿現在google 基於神經網路做的 word2vec 作為部落格的開始吧,今後會陸陸續續補充內容。基本是分4塊內容 1.神經網路語言模型 2.語言模型分層優化 3.word2vec 原理 4.google word2vec 看一點寫一點,先扔些參考資料鏈接上去。附上在研...

Word2Vec知識總結

word2vec是乙個產生詞向量的模型,是乙個雙層的神經網路 非常善於找出詞彙的相似度,同時可用於處理之前的技術 像one hot編碼和wordnet 處理不了的語義關係。它可以利用神經網路從大量的無標註的文字中提取有用資訊。我們也可以將它看成是乙個工具,它裡面包含了三種重要的模型 1 nnlm 神...