Python int 太大,无法在 python 3.4 中转换为 C long

Python int too large to convert to C long in python 3.4

当我尝试从 python 的 gensim 库中 运行 word2vec 时出现此错误。我使用的是 python 3.4,OS 是 windows 7。我还附上了完整的堆栈跟踪信息。 我在网上看到它说这是 python 2.x 的问题,但我正在进入 python 3.4

model = word2vec.Word2Vec(sentences, workers=num_workers, \
        size=num_features, min_count = min_word_count, \
        window = context, sample = downsampling)

Traceback (most recent call last):
  File "<pyshell#137>", line 3, in <module>
    window = context, sample = downsampling)
  File "C:\Python34\lib\site-packages\gensim\models\word2vec.py", line 417, in __init__
    self.build_vocab(sentences)
  File "C:\Python34\lib\site-packages\gensim\models\word2vec.py", line 483, in build_vocab
    self.finalize_vocab()  # build tables & arrays
  File "C:\Python34\lib\site-packages\gensim\models\word2vec.py", line 611, in finalize_vocab
    self.reset_weights()
  File "C:\Python34\lib\site-packages\gensim\models\word2vec.py", line 888, in reset_weights
    self.syn0[i] = self.seeded_vector(self.index2word[i] + str(self.seed))
  File "C:\Python34\lib\site-packages\gensim\models\word2vec.py", line 900, in seeded_vector
    once = random.RandomState(uint32(self.hashfxn(seed_string)))
OverflowError: Python int too large to convert to C long

请注意 python(2 和 3)支持 arbitrary size 的整数 - python 将继续添加额外的 "digits"(实际上它们的组在 longs) 当你达到当前的最大尺寸时。 py2 和 py3 之间的唯一区别是前者将以实际 C intlong 开始,然后再变为任意大小 python long。在 py3 中,你总是得到 python long 类型。

长话短说:检查整数的大小。