Python Sklearn&x2B;Gensim:如何使用Gensim';s Word2Vec嵌入用于Sklearn文本分类

Python Sklearn&x2B;Gensim:如何使用Gensim';s Word2Vec嵌入用于Sklearn文本分类,python,machine-learning,scikit-learn,gensim,Python,Machine Learning,Scikit Learn,Gensim,我正在构建一个多标签文本分类程序,并尝试使用OneVsRestClassifier+XGBClassifier对文本进行分类。最初,我使用Sklearn的Tf-Idf矢量化来对文本进行矢量化,这样做不会出错。现在我使用Gensim的Word2Vec对文本进行矢量化。然而,当我将矢量化数据输入OneVsRestClassifier+XGBClassifier时,我在分割测试和训练数据的行上得到以下错误: TypeError:单例数组(, dtype=object)不能被视为有效集合 我曾尝试将矢量

我正在构建一个多标签文本分类程序,并尝试使用OneVsRestClassifier+XGBClassifier对文本进行分类。最初,我使用Sklearn的Tf-Idf矢量化来对文本进行矢量化,这样做不会出错。现在我使用Gensim的Word2Vec对文本进行矢量化。然而,当我将矢量化数据输入OneVsRestClassifier+XGBClassifier时,我在分割测试和训练数据的行上得到以下错误:

TypeError:单例数组(, dtype=object)不能被视为有效集合

我曾尝试将矢量化数据转换为一个特征数组(np.array),但这似乎不起作用。 下面是我的代码:

x = np.array(Word2Vec(textList, size=120, window=6, min_count=5, workers=7, iter=15))

vectorizer2 = MultiLabelBinarizer()
vectorizer2.fit(tagList)
y = vectorizer2.transform(tagList)

# Split test data and convert test data to arrays
xTrain, xTest, yTrain, yTest = train_test_split(x, y, test_size=0.20)

变量
textList
tagList
是字符串列表(我试图分类的文本描述)

大概,您想要返回的是文档中每个单词的对应向量(对于表示每个文档的单个向量,最好使用)

对于一组文档,其中最详细的文档包含
n
单词,则每个文档将由一个n*120矩阵表示

出于说明目的,未优化的代码:

import numpy as np

model = x = Word2Vec(textList, size=120, window=6, 
                               min_count=5, workers=7, iter=15)

documents = []
for document in textList:
    word_vectors = []
    for word in document.split(' '): # or your logic for separating tokens
        word_vectors.append(model.wv[word])
    documents.append(np.concatenate(word_vectors))

# resulting in an n * 120 -- that is, `Word2Vec:size`-- array
document_matrix = np.concatenate(documents)