#python #python-3.x #scikit-learn #deep-learning #nlp
#python #python-3.x #scikit-учиться #глубокое обучение #nlp
Вопрос:
Я пытаюсь написать код для обнаружения языка ненависти, но я застрял с проблемой. Я получаю сообщение об ошибке SklearnClassifier' object has no attribute 'fit'
Я ищу источник, в котором использовался python 2, но я использую python 3 возможно, проблема возникает из-за этого, но я не смог это решить. Как я могу исправить эту проблему?
training_set = nltk.classify.apply_features(extract_features, train_tweets)
classifier = nltk.NaiveBayesClassifier.train(training_set)
from sklearn.ensemble import AdaBoostClassifier
from nltk.classify.scikitlearn import SklearnClassifier
# SKlearn Wrapper
classifier = SklearnClassifier(LinearSVC())
classifier.fit(X_train, X_test)
predicted_labels = [classifier.classify(extract_features(tweet[0])) for tweet in test_tweets]
Ответ №1:
Здесь снято в темноте, но в этой документации упоминается функция с именем «train» вместо «fit»; возможно, это ваша проблема:https://www.nltk.org/_modules/nltk/classify/scikitlearn.html
Кроме того, вы уверены, что передача второго аргумента (X_test) здесь правильная? Это ненормально для классификаторов, поскольку на этом шаге вы должны передавать только обучающие данные, и в документации это также не упоминается.
Ответ №2:
Насколько я вижу, это должно быть classifier.train([X_train, y_train])
Ответ №3:
Попробуйте это, это должно сработать:
Оболочка SKlearn
классификатор = SklearnClassifier(LinearSVC())
классификатор = classifier.fit(X_train, X_test)
Комментарии:
1. кроме того, это должно быть (x_train, y_train), как указал Кристоф.