나는 프로젝트를위한 Scikit 기계 학습을 배우고 있으며 일반적인 과정을 이해하기 시작하면서 세부 사항은 여전히 약간 퍼지다.scikit으로 텍스트 분류하기
이전에 나는 분류기를 만들고, 훈련하고, 테스트 세트로 테스트했습니다. cPickle로 디스크에 저장했습니다. 이제이 분류자를로드하는 클래스를 만들고이를 사용하여 하나의 트윗을 분류 할 수있게하려고합니다.
나는이 사소한 것이라고 생각하지만 난에 ValueError ('차원 불일치') X_new_tfidf에서 = self.tfidf_transformer.fit_transform (fitTweetVec) 다음 코드로 라인을 얻을 수가 : 내가 '무엇class TweetClassifier:
classifier = None
vect = TfidfVectorizer()
tfidf_transformer = TfidfTransformer()
#open the classifier saved to disk to be utilized later
def openClassifier(self, name):
with open(name+'.pkl', 'rb') as fid:
return cPickle.load(fid)
def __init__(self, classifierName):
self.classifier = self.openClassifier(classifierName)
self.classifyTweet(np.array([u"Helvetin vittu miksi aina pitää sataa vettä???"]))
def classifyTweet(self, tweetText):
fitTweetVec = self.vect.fit_transform(tweetText)
print self.vect.get_feature_names()
X_new_tfidf = self.tfidf_transformer.fit_transform(fitTweetVec)
print self.classifier.predict(X_new_tfidf)
여기서 잘못하고있는거야? 나는 분류자를 만들면서 비슷한 코드를 사용하고 그것을위한 테스트 세트를 실행했다. 여기서 중요한 걸 잊었 니?
이제 나는 Scikit의 튜토리얼이 약간 모호하다는 것을 알았 기 때문에 필자가 아직 피팅과 변형을 완전히 이해하지 못했다고 인정한다. 누군가가 가능한 한 명확한 설명을 알고 있다면 나는 모두를위한 것이다. :)
감사합니다. 알았어. 또한 파이프 라인을 절이는 것이 좋습니다. – Tumetsu