繁体   English   中英

如何使用训练有素的 model 测试 python 中的新句子(sklearn)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM