NLP - 'SklearnClassifier' 对象没有属性 'fit' / Python
Posted
技术标签:
【中文标题】NLP - \'SklearnClassifier\' 对象没有属性 \'fit\' / Python【英文标题】:NLP - 'SklearnClassifier' object has no attribute 'fit' / PythonNLP - 'SklearnClassifier' 对象没有属性 'fit' / Python 【发布时间】:2019-08-04 06:48:47 【问题描述】:我正在尝试编写仇恨言论检测代码,但遇到了一个问题。我收到错误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】:试试这个,它应该可以工作:
SKlearn 包装器
分类器 = SklearnClassifier(LinearSVC())
分类器 = 分类器.fit(X_train, X_test)
【讨论】:
另外,正如 Christoph 指出的那样,它应该是 (x_train,y_train)。【参考方案2】:据我所知,应该是classifier.train([X_train, y_train])
【讨论】:
【参考方案3】:这里是在黑暗中拍摄的,但是这个文档提到了一个名为“train”而不是“fit”的函数;也许这就是你的问题:https://www.nltk.org/_modules/nltk/classify/scikitlearn.html
另外,你确定在这里传递第二个参数 (X_test) 是正确的吗?分类器不正常,因为您应该只在该步骤中传递训练数据,并且文档也没有提及。
【讨论】:
以上是关于NLP - 'SklearnClassifier' 对象没有属性 'fit' / Python的主要内容,如果未能解决你的问题,请参考以下文章
使用 NLTK 的 SklearnClassifier 和 ClassifierBasedPOSTagger 构建自己的基于分类器的词性标注器