从Sklearn将TFIDF Feature Vector传递给SGDClassifier

时间:2015-09-08 12:24:26

标签: python scikit-learn tf-idf

import numpy as np
from sklearn import linear_model
X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
Y = np.array(['C++', 'C#', 'java','python'])
clf = linear_model.SGDClassifier()
clf.fit(X, Y)
print (clf.predict([[1.7, 0.7]]))
#python

我试图通过给出一个测试用例来训练数组Y中的值,并在 X 的训练数据上进行训练,现在我的问题是,我想更改训练集< strong> X 到 TF-IDF特征向量,那怎么可能呢? 模糊地说,我想做这样的事情

import numpy as np
from sklearn import linear_model
X = np.array_str([['abcd', 'efgh'], ['qwert', 'yuiop'], ['xyz','abc'],['opi', 'iop']])
Y = np.array(['C++', 'C#', 'java','python'])
clf = linear_model.SGDClassifier()
clf.fit(X, Y)

1 个答案:

答案 0 :(得分:4)

您应该查看scikit-learn中的TfidfVectorizer。 我假设 X 是要分类的文本列表。

from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer()
X_train = vectorizer.fit_transform(X)

然后使用X_train作为新的 X 来训练分类器。

clf = linear_model.SGDClassifier()
clf.fit(X_train, Y)