从sklearn将TFIDF特征向量传递到SGDClassifier

Pra*_*hur 2 python tf-idf scikit-learn

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
Run Code Online (Sandbox Code Playgroud)

我试图通过给出一个测试用例并在X的训练数据上对其进行训练来预测数组Y的值,现在我的问题是,我想将训练集X更改为TF-IDF Feature Vectors,那么如何那可能吗?依稀,我想做这样的事情

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)
Run Code Online (Sandbox Code Playgroud)

won*_*id2 5

你应该看看TfidfVectorizerscikit-learn。我假设X是要分类的文本列表。

from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer()
X_train = vectorizer.fit_transform(X)
Run Code Online (Sandbox Code Playgroud)

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

clf = linear_model.SGDClassifier()
clf.fit(X_train, Y)
Run Code Online (Sandbox Code Playgroud)