我正在尝试通过推文学习机器学习。
我通过以下方式转换推文:
df['vectorised_words'] = vectorizer.transform(df.tweet)
这给我返回了一个 pandas.core.series.Series
,我的向量化器是 CountVectorizer
我的 X
和 Y
如下定义:
X = df['vectorised_words']y = df['is_hate_speech'].astype(int)
其中 X
是一个文本(例如 "This is a sample tweet"
),而 Y
是一个布尔值 – True
或 False
。
然后我想运行以下代码:
svc_1 = SVC(kernel='linear')X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state=46)svc_1.fit(X_train, y_train)
然而,fit 函数返回了以下错误:
TypeError: float() argument must be a string or a number, not 'csr_matrix'
如果我将数组求和转换为浮点数,我认为转换逻辑将会丢失。我做错了什么?
回答:
看起来你试图将整个稀疏矩阵放入单个pandas数据框列中,这不是正确的方法。
只需将你的 X
定义为
X = vectorizer.transform(df.tweet.values)
你应该没问题了。