Объект NLP — ‘SklearnClassifier’ не имеет атрибута ‘fit’ / Python

#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), как указал Кристоф.