人工标签不准确的一种解决方案:PCA降维可视化筛选正样本

背景

在实际的业务场景里,用会话文本构建模型(机器学习/深度学习)来做意图分类之类的任务时,经常会出现人工打标不够准确的问题,标签都不准确的话模型当然无法学习到有效信息了。这个问题真的非常头疼…除了与业务沟通修正标签以外(通常很慢),用现有的数据尽量修正正负样本也能有效的提升模型区分效果。

方法

介绍一种比较简要的方法,这里的分类任务我用的是给句子做二分类,用sentence2vec方法把句子转换成向量后,采用PCA降维成二维数据,做可视化图就可以看出人工打标下正负样本的分布。

人工打标结果虽然不准,但还是可以用作参考,比方说可视化图中几乎仅有正样本分布的区域,就是人工判断样本正负上绝对没有异议的样本,可以作为新的正样本。

PCA降维及可视化的核心代码:

from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
pca = PCA(n_components=2) #PCA
result = pca.fit_transform(data_vecs)   #将句子向量(128维度)降维成二维向量,[1000, 128]->[1000, 

主要步骤

  1. 句子转向量【略】;
  2. 句子向量用PCA降成二维信息;
  3. 每个句子的二维信息作为坐标,可视化;
  4. 根据可视化点图,分别截取不同区域的句子查看句子含义:

注:黄点为正样本,紫色点为负样本

比方我这里是以“要退保”意图为正样本,“不要退保”意图为负样本,图中右边区域正样本和负样本几乎都混杂在了一起,这些就是按照不同人员打标后标准不统一的结果,但左边的样本几乎没有负样本,说明这部分文本是没有异议的,可以筛出作为新的正样本。

我筛选的标准比较粗糙,直接将左边区域的作为新的正样本,也可以用机器学习中的模型来筛选出正样本应该也OK的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

音无八重

谢谢老板!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值