为了账号安全,请及时绑定邮箱和手机立即绑定

对置信度阈值以上的 NLP 解决方案进行分类

对置信度阈值以上的 NLP 解决方案进行分类

POPMUISE 2021-11-02 17:00:36
我有all_data包含两列的数据框:Event_Summary: 这是事件的文本描述,Impact哪个是分类。我使用了 SVM 来自动分类这些数据 - 请参阅下面的代码:train, test = train_test_split(all_data, test_size=0.2)count_vect = CountVectorizer(stop_words='english', analyzer = "word")X_train_counts = count_vect.fit_transform(train.Event_Summary)tf_transformer = TfidfTransformer(use_idf=False).fit(X_train_counts)X_train_tf = tf_transformer.transform(X_train_counts)y_train = train["Impact"]y_test = test["Impact"]X_test_counts = count_vect.transform(test.Event_Summary)tf_transformer = TfidfTransformer(use_idf=False).fit(X_test_counts)X_test_tf = tf_transformer.transform(X_test_counts)parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}svc = svm.SVC(gamma="scale")clf = GridSearchCV(svc, parameters, cv=5)clf.fit(X_train_tf, y_train)pred = clf.predict(X_test_tf)score = np.mean(pred == y_test)*100分数大约为 70%,考虑到只有两个类别,这是相当低的。由于这个低分,我只想在算法高于某个置信度阈值时才对描述进行分类,这是正确的分类(将不确定的留给我手动填写)。这是否可以使用 python / sklearn 进行,如果可以,是否有人对如何执行此操作有建议?另外,如果有人建议我如何使我的模型更准确?
查看完整描述

1 回答

?
米脂

TA贡献1836条经验 获得超3个赞

除非您运行分类器,否则您不会知道置信度分数是多少。所以你可以运行分类器,查看分数,然后决定哪些会被自动接受,哪些会通过人工审核。

关于如何提高准确性的第二个问题,您可以做几件事。

  1. 尝试使用更复杂的技术(如词嵌入)来矢量化您的数据。你肯定会看到更好的结果。

  2. 尝试使用不同的分类器,看看哪一个能给你最好的结果。

此外,可能会查看predict_proba功能以获得信心。


查看完整回答
反对 回复 2021-11-02
  • 1 回答
  • 0 关注
  • 219 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号