代码之家  ›  专栏  ›  技术社区  ›  Simone

TypeError:ufunc“add”不包含签名类型与dtype匹配的循环

  •  1
  • Simone  · 技术社区  · 6 年前

    我想通过考试 X_train_word2vec 矢量作为输入到 Gensim Word2Vec 模型。 numpy.ndarray ,例如:

    X_train_word2vec[9] = array([   19,     7,     1, 20120,     2,     1,   856,   233,   671,
           1,  1208,  6016,     2,    32,     0,     0,     0,     0, ....)]
    

    当我运行此代码时:

    model_word2vec = models.Word2Vec(X_train_word2vec, size=150, window=9)
    model_word2vec.train(X_train_word2vec,total_examples=X_train_word2vec.shape[0], epochs=10)
    

    我得到这个错误:

    TypeError: ufunc 'add' did not contain a loop with signature matching types dtype('<U11') dtype('<U11') dtype('<U11')

    我读过 this int .

    更新: model_Word2Vec :

    tokenizer = Tokenizer()
    tokenizer.fit_on_texts(X)
    sequence = tokenizer.texts_to_sequences(X)
    
    seq_max_len = 50
    X_seq = pad_sequences(sequenza, maxlen=seq_max_len,padding='post',truncating='post',dtype=int)
    
    X_train_word2vec, X_test_word2vec, y_train_word2vec, y_test_word2vec = train_test_split(X_seq, y_cat, test_size=0.2, random_state=123)
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   gojomo    6 年前

    根辛的 Word2Vec 需要一个文本语料库,比如在初始化器的第一个参数中,它是字符串标记列表的iterable sequence对象。它不需要原始的numpy数组。

    此外,如果您在实例化时提供了一个语料库,就像在您的代码行中一样。。。

    model_word2vec = models.Word2Vec(X_train_word2vec, size=150, window=9)
    

    train() 明确地。(而且,虽然可以打电话 同样,很少有做非常高级事情的用户需要这样做。通常,安全的方法是在一个完整的语料库上进行一次训练,然后“完成”模型

    最后, 列车() 还期望将任何语料库作为字符串标记列表的iterable sequence对象。