[英]how to use trained model to test new sentence in python (sklearn)
我有代码来训练 model 进行multi class text classification
,它可以工作,但我不能使用 model。 这是我的培训代码
def training(df):
X = df.Text
y = df.Tags
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
lr = Pipeline([('vect', CountVectorizer()),
('tfidf', TfidfTransformer()),
('clf', LogisticRegression()),
])
lr.fit(X_train, y_train)
y_pred1 = lr.predict(X_test)
print(f"Accuracy is : {accuracy_score(y_pred1, y_test)}")
print(lr.predict('ماست کم چرب 900 گرمی رامک'))
当我运行代码得到这个结果Accuracy is: 0.9957983193277311
和这个错误
Traceback(最近一次调用最后一次):文件“E:\Python\NLP Project\Beta_00\Level0\handleClassification.py”,第 100 行,在训练中(df)
文件“E:\Python\NLP Project\Beta_00\Level0\handleClassification.py”,第 85 行,训练中 print(lr.predict('ماست کم چرب 900 گرمی رامک'))
文件“E:\Python\NLP Project\Beta_00\venv\lib\site-packages\sklearn\utils\metaestimators.py”第 120 行,输入输出 = lambda *args, **kwargs: self.fn(obj, *args , **kwargs)
文件“E:\Python\NLP Project\Beta_00\venv\lib\site-packages\sklearn\pipeline.py”,第 418 行,预测 Xt = transform.transform(Xt)
文件“E:\Python\NLP Project\Beta_00\venv\lib\site-
packages\sklearn\feature_extraction\text.py”,第 1248 行,在转换中引发 ValueError(ValueError:预期可迭代原始文本文档,收到字符串 object。
以下行需要更正:
lr.fit(X_train, y_train)
y_pred1 = lr.predict(X_test)
print(f"Accuracy is : {accuracy_score(y_test, y_pred1)}") #<--- here
print(lr.predict(['ماست کم چرب 900 گرمی رامک'])) #<--- here
行lr.predict(input)
应该接受“array”类型的输入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.