2014-12-26 9 views
5

मैं निम्नलिखित kaggle assignmnet करने के लिए कोशिश कर रहा हूँ। मैं word2vec का उपयोग करने के लिए gensim पैकेज का उपयोग कर रहा हूँ। मैं मॉडल बनाने और डिस्क पर स्टोर करने में सक्षम हूं। लेकिन वापस मैं त्रुटि नीचे हो रही है जब मैं फ़ाइल को लोड करने की कोशिश कर रहा हूँ।त्रुटि: 'UTF8' कोडेक स्थिति 0 में बाइट 0x80 डिकोड नहीं कर सकते हैं: अवैध शुरू बाइट

-HP-dx2280-MT-GR541AV:~$ python prog_w2v.py 
Traceback (most recent call last): 
    File "prog_w2v.py", line 7, in <module> 
    models = gensim.models.Word2Vec.load_word2vec_format('300features_40minwords_10context.txt', binary=True) 
    File "/usr/local/lib/python2.7/dist-packages/gensim/models/word2vec.py", line 579, in load_word2vec_format 
    header = utils.to_unicode(fin.readline()) 
    File "/usr/local/lib/python2.7/dist-packages/gensim/utils.py", line 190, in any2unicode 
    return unicode(text, encoding, errors=errors) 
    File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode 
    return codecs.utf_8_decode(input, errors, True) 
UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 0: invalid start byte 

मुझे इसी तरह का प्रश्न मिलता है। लेकिन मैं समस्या को हल करने में असमर्थ था। मेरा prog_w2v.py नीचे जैसा है।

import gensim 
import time 
start = time.time()  
models = gensim.models.Word2Vec.load_word2vec_format('300features_40minwords_10context.txt', binary=True) 
end = time.time() 
print end-start," seconds" 

मैं code here का उपयोग कर मॉडल उत्पन्न करने की कोशिश कर रहा हूं। मॉडल को उत्पन्न करने के लिए कार्यक्रम में लगभग आधे घंटे लगते हैं। इसलिए मैं इसे डीबग करने के लिए कई बार चलाने में असमर्थ हूं।

उत्तर

3

यदि आप को बचाने(), आप लोड() का उपयोग करना चाहिए

load_word2vec_format gensim

9

आप फ़ाइल लोड नहीं कर रहे हैं द्वारा उत्पन्न मॉडल के लिए नहीं, गूगल द्वारा उत्पन्न मॉडल के लिए है के साथ अपने मॉडल को बचाया सही ढंग से। आप लोड() के बजाय load_word2vec_format का उपयोग करना चाहिए()। जब आप सी कोड का उपयोग कर एक मॉडल को प्रशिक्षित है, और एक द्विपदीय प्रारूप में मॉडल बचाने बाद किया जाता है। लेकिन अगर आप एक द्विआधारी प्रारूप में मॉडल की बचत नहीं कर रहे हैं, और अजगर का उपयोग कर इसे प्रशिक्षित कर रहे हैं। आप के साथ अपने मॉडल को सहेजते हैं

models = gensim.models.Word2Vec.load('300features_40minwords_10context.txt') 
3

:

model.wv.save(OUTPUT_FILE_PATH + 'word2vec.bin') 

फिर load_word2vec_format विधि के साथ word2vec लोड मुद्दे का कारण होता है तो आप बस निम्नलिखित कोड का उपयोग कर सकते हैं और यह काम करना चाहिए। बनाने के लिए यह काम आप का उपयोग करना चाहिए:

model.wv.save_word2vec_format(OUTPUT_FILE_PATH + 'word2vec.txt', binary=False) 

और फिर, KeyedVectors.load विधि के साथ लोड करना चाहते हैं:

wiki_model = KeyedVectors.load(OUTPUT_FILE_PATH + 'word2vec.bin') 

एक ही बात भी जब आप के साथ मॉडल को बचाने होता है। इस स्थिति में, का उपयोग करें:

wiki_model = KeyedVectors.load_word2vec_format(OUTPUT_FILE_PATH + 'word2vec.bin', binary=False) 
संबंधित मुद्दे

 संबंधित मुद्दे