2017-04-24 5 views
1

私はword2vecチュートリアルを見て、Text8Corpusの与えられたサンプルデータを使って練習できました。 Tutorial linkしかし、カスタムデータをテストしようとしたとき、モデルはトレーニングではありません。入力は、PythonリストのUnicode文字列形式です。また、min_countも1に設定されています。上記の入力形式でトレーニングしていないので、私は与えられたチュートリアルからの入力のタイプをチェックしようとしましたが、class 'gensim.models.word2vec.Text8Corpus'という形式を受け取ります。ユニコード文字列のカスタムデータをリストで訓練する方法がわからない。誰も私を正しい方向に導くことができますか?入力のWord2Vecモデルはトレーニングではありません。入力文は、文章とトークン化された単語の両方をリストに入れて試しました。

例: 'u'dont'、u'let 'u'him'、u'treat [u'SENTENCE_START 'u'you'、u'like 'U'ごみ「u'SENTENCE_END」]]私はチュートリアルと例から理解word2vecする訓練することで全部です

sentences_clean = [] 
data = pandas.read_excel('from my folder/3_captions.xlsx', parse_cols = "A") 
sentences = data.iloc[:, 0].tolist() 

for line in sentences: 
    line = re.sub(r"""["?,$!]|'(?!(?<! ')[ts])""", "", line) 
    line = re.sub(r"\.", "", line) 
    line = line.lower().replace("'", "") 
    sentences_clean.append(line) 

tokenized_sentences = [nltk.word_tokenize(sent) for sent in sentences_clean] 

import gensim, logging 
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO) 
model_word2vec = gensim.models.Word2Vec(sentences_clean, min_count=1, size=300, workers=4) 
model_word2vec.save('/Users/rajesh/Documents/word2vec') 
print (model_word2vec.similarity('freudian','slip')) 

?しかし、これはチュートリアルの下で動作します。

sentences = word2vec.Text8Corpus('/Users/rajesh/Downloads/text8') 
model_word2vec = gensim.models.Word2Vec(sentences, min_count=1, size=20) 
print (model_word2vec.similarity('queen','woman')) 
>>> 0.659536897647 
+1

これは何かエラーを出すのですか、またはあなたに正しい出力が得られないという問題ですか?それでも、私はまずあなたの文章をトークン化する必要があると信じています。 – umutto

+0

それは間違いを与えませんでした。私はnltkで文をトークン化することも試みました。トークン化された入力は:[u'SENTENCE_START '、u'i'、u'guess '、u'i'、u'just '、u'dont'、u'understand '、u'why'、u'i ' u''ways '、u'have'、u'to '、u'be'、u'the '、u'fall'、u'guy '、u'Sentence_END'] –

+0

私はエラーをポップしなかった、単語の類似性をチェックしようとしたときにも、私は単語がvocabエラーではないことを受けました。しかし、私はモデルが訓練されているとは思わない。 –

答えて

0

あなたはそれが「訓練ではない」だ方法を知っていますか?

sentences_cleantokenized_sentencesリストではなく、表示されているコードのようにWord2Vecに提供してもよろしいですか?

sentences_cleanは、リストの-文字列である場合は、Word2Vecに与えられた各文字列は、リストの-文字のようになりますし、あなたのWord2Vecモデルによって学習だけの言葉は '一文字になります。)

関連する問題