Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Gensim分段故障_Python_Nlp_Gensim - Fatal编程技术网

Python Gensim分段故障

Python Gensim分段故障,python,nlp,gensim,Python,Nlp,Gensim,我也在Gensim支持论坛上对谷歌进行了研究,但我找不到一个好的答案 基本上,我正在使用Gensim实现Doc2Vec的在线学习,但Gensim不断向我抛出一个称为“分段”的随机错误 请看一下我的示例代码 from gensim.models import Doc2Vec from gensim.models.doc2vec import LabeledSentence import random import logging if __name__ == "__main__": lo

我也在Gensim支持论坛上对谷歌进行了研究,但我找不到一个好的答案

基本上,我正在使用Gensim实现Doc2Vec的在线学习,但Gensim不断向我抛出一个称为“分段”的随机错误

请看一下我的示例代码

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)
这是我的错误

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
谁能给我解释一下为什么?以及如何解决这个问题


感谢

从Python代码中几乎不可能触发分段错误(即非法内存访问)。这表明这可能是特定于您的安装/配置的问题—操作系统、Python、gensim、支持库—甚至是损坏的文件


尝试清除并重新安装Python环境和支持库(如NumPy和SciPy),并确认与gensim捆绑的一些示例运行时没有分段错误,例如
docs/notebooks/doc2vec lee.ipynb中的笔记本。如果捆绑的示例或您自己的代码仍然存在此类错误,请打开调试日志记录,捕获所有输出,并报告问题的全部细节在您的OS/Python/gensim/etc版本上。

如何知道我的OS、Python或gensim是否有问题?我正在使用Docker with Python:3映像运行该代码(请参阅我的问题)。这些代码很难调试,但也很少见,一旦您获得了正确的/最新版本。Docker映像中的OS/版本是什么?重新开始了吗(或卸载/重新安装所有主要软件包)进行任何更改?您是否尝试运行gensim中的示例以查看它们是否有效?采取这些步骤就是如何缩小问题的范围。