2017-01-18 10 views
0

Ich habe auf Google auch auf Gensim Support-Forum, aber ich kann keine gute Antwort finden.Gensim Segmentierung Fehler

Grundsätzlich ist Online-Lernen ist die Umsetzung für Doc2Vec GENSIM verwenden, aber GENSIM hält mir einen zufälligen Fehler werfen genannt „Segmentation

Bitte nehmen Sie sich einen Blick auf meinem Beispielcode

from gensim.models import Doc2Vec 
from gensim.models.doc2vec import LabeledSentence 
import random 
import logging 

if __name__ == "__main__": 
    logging.basicConfig(level=logging.INFO) 

    sentence1 = "this is a test" 
    sentence2 = "test test 123 test" 
    sentence3 = "qqq zzz" 
    sentence4 = "ppp" 

    sentences = [ 
     LabeledSentence(sentence1.split(), ["p1"]), 
     LabeledSentence(sentence2.split(), ["p2"]) 
    ] 
    model = Doc2Vec(min_count=1, window=5, size=400, sample=1e-4, negative=5, workers=1) 
    model.build_vocab(sentences) 

    for a in range(2): 
     random.shuffle(sentences) 
     print([s.tags[0] for s in sentences]) 
     model.train(sentences) 
    model.save("test.d2v") 

    new_model = Doc2Vec.load("test.d2v") 
    new_sentences = [ 
     LabeledSentence(sentence1.split(), ["n1"]), 
     LabeledSentence(sentence3.split(), ["n2"]) 
    ] 
    new_model.build_vocab(new_sentences, update=True) 

    for a in range(4): 
     random.shuffle(new_sentences) 
     print([s.tags[0] for s in new_sentences]) 
     new_model.train(new_sentences) 

Hier ist mein Fehler

INFO:gensim.models.word2vec:training model with 1 workers on 7 vocabulary and 400 features, using sg=0 hs=0 sample=0.0001 negative=5 window=5 
INFO:gensim.models.word2vec:expecting 2 sentences, matching count from corpus used for vocabulary survey 
Segmentation fault 

Kann jemand mir erklären, warum? und wie diese zu lösen?

Danke

Antwort

0

Ein Segmentierungsfehler - das heißt, ein illegaler Speicherzugriff - sollte fast unmöglich aus Ihrem Python-Code ausgelöst werden. Das deutet darauf hin, dass dies ein Problem für Ihre Installation/Konfiguration sein könnte - Betriebssystem, Python, Gensim, Support-Bibliotheken - sogar eine beschädigte Datei.

Versuchen Clearing & die Umgebung Python & Support-Bibliotheken neu zu installieren (wie NumPy und SciPy), und bestätigt, dass einige der Beispiele mit GENSIM Lauf gebündelt ohne Segmentation Fault - wie zum Beispiel das Notebook in docs/notebooks/doc2vec-lee.ipynb. Wenn Sie immer noch solche Fehler mit den mitgelieferten Beispielen oder Ihrem eigenen Code bekommen, aktivieren Sie die Debug-Protokollierung, erfassen Sie alle Ausgaben und melden Sie das Problem mit allen Einzelheiten zu Ihren OS/Python/gensim/etc-Versionen.

+0

Wie auch wissen, ob ich ein Problem mit meinem Betriebssystem, Python oder Gensim habe? Ich benutze Docker mit Python: 3 Bild, um diesen Code auszuführen (siehe meine Frage). –

+0

Diese sind sehr schwer zu debuggen - aber auch sehr selten, sobald Sie die richtigen/neuesten Versionen der Dinge haben. Was ist die OS/Version im Docker-Image? Hat das Starten von "frisch" (oder bei der Deinstallation/Neuinstallation aller wichtigen Pakete) irgendeine Änderung erfahren? Haben Sie versucht, die Beispiele in Gensim zu starten, um zu sehen, ob sie funktionieren? Mit diesen Schritten können Sie das Problem eingrenzen. – gojomo