2016-10-25 10 views
1

spark word2vecをバッチモードでトレーニングすることが可能かどうかは疑問です。言い換えれば、既に訓練された火花word2vecモデルの語彙リストを更新することができるかどうか。 私のアプリケーションは次のとおりです。 私の段落が複数のファイルに配置されている、と私は私がしてもバークモードでspark word2vecモデルを訓練することは可能ですか?

for epoch in range(10): 
    model.train(MySentences(files, fileFolder)) 

を行うことができます

class MySentences(object): 
    def __init__(self, file_list, folder): 
     self.file_list = file_list 
     self.folder = folder 

    def __iter__(self): 
     for file in self.file_list: 
      if 'walk_' in file: 
       print file 
       with open(self.folder + file, 'r') as f: 
        for line in f: 
         yield line.split() 

model = Word2Vec(MySentences(files, fileFolder), size=32, window=5, min_count=5, workers=15) 

を行うことができますgensim使用した場合、私は、私は、同様のことを行うことができますどのように疑問に思ってspark word2vec。私が見つけた私だけのように複数のファイルでRDD組合を行うことができますスパークに

は、:

そう
from pyspark.mllib.feature import Word2Vec 
from pyspark.sql import SQLContext 

inp1 = sc.textFile("file1").map(lambda row: row.split('\t')) 
inp2 = sc.textFile("file2").map(lambda row: row.split('\t')) 

inp = sc.union([inp1,inp2]) 
word2vec = Word2Vec().setVectorSize(4).setMinCount(1) 
model = word2vec.fit(inp) 

私はその後、INP1とモデル、INP2を訓練する場合、INP1からの言葉は消えてしまいます。

私がバッチモードでトレーニングを行うことができない場合、将来どのように訓練されたモデルを新しい段落で更新できますか?

答えて

0

は、私はあなたができると思う:サンプル関数は、常にこの例では目に見えないデータを取る

for idx in range(1, 100, 1): 
    model = word2vec.fit(data.sample(False, 0.01)) 
    model.save(sc, path) 

わからない場合。

関連する問題