侧边栏壁纸
博主头像
MobotStone - 技术宅博主等级

行动起来,活在当下

  • 累计撰写 191 篇文章
  • 累计创建 80 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

语料泛化三种可行方案介绍

MobotStone
2022-11-16 / 0 评论 / 2 点赞 / 31307 阅读 / 1915 字

在优化智能客服时,添加泛化语料是最麻烦也是最必要的一个环节,意图的泛化得越好,机器人就看起来就越智能,根据之前的工作经验,我整理了一下思路,给大家介绍三个语法泛化能力的方案。

一、短期(单个词泛化法)

这个方案一般是在产品刚开始或起步的时候,因为这个时候,我们的数据比较少,获得的资源也不多,数据标注上不全,急需一些工具来帮忙优化语料,这个时候我们可以采用同义词、标准词库的做法,举个例子:打开空调-->启动空调,打开跟启动是同义词,又都是动词,这那么我们完全可以通过算法把打开空调泛化成启动空调,这在前期人力不足,数据不足的情况完全是可行,但需要强调一点,泛化后需要人工审核一些。我们采用NLP算法中同义词替换或匹配时,涉及到的算法有:

  • 同义词:找出短文本中的同义词,可替换
  • 词性分析:算法给出的同义词,需要判断是否是同一词性,有时候同一词性,组成的新文本不符合语法要求,有可能出现牛头不对马嘴的情况,更不用说不同词性的同义词了
  • 语法分析:替换后,组成新的短文本时,我们需要分析组成的新文本是否符合中文语法,不然会出现语法不通顺,不符合语法要求的句子

在这个阶段时,我们可以考虑使用一些预训练模型,预训练的词向量是可以作为提供同义词的判断工具,当然我们也可以考虑同义词库的方式,比如哈工大的大词林就可以为我们提供比较丰富的同义词库工具。

目前市场上一些AI伪原创的做法也比较多,大多数采用的这种做法,大家在百度上搜索一下AI伪原创,都可以体验一下这种做法,在这里就不举例子了

二、中期(文本泛化法)

在这个阶段,产品已经运行到一个阶段了,已经整理汇总到了一些语料,也收集了不少用户的反馈,这些意图的泛化语料可以作为模型训练的数据,那么我们可考虑把已经标注好的泛化数据输入模型,可得到一个短文本泛化能力的模型,接下来模型推理能力好的话,我们可以得到一个短文本的模型,而不只是一个同义词的泛化能力了,这对语料准备,数据标注人员来说是一个非常好的工具,真正可做到解放人力了。举个例子:你叫什么名字-->怎么称呼你,这个都是询问客户的名字,可以作为泛化语料来操作

三、长期(场景泛化能力)

我们知道在实际产品中大多数使用的场景的意图都比较相似,意图的复用性很强。即使相互之间场景不通用,但一些意图也有类型的部分。这个时候,我们在积累一定程度的数据后,可以考虑将场景数据作为输入数据,意图作为权重,尝试实现一个训练一个模型来实现场景泛化能力,理想状态下如何模型能力训练好的话,我们可以做到非常好的场景泛化能力,当然这个只是理想的状态。实际上,场景的泛化是需要复用第二步的意图泛化能力,在相类似的场景是可以做到只需要添加少量的核心关键语法或关键词时,就可实现场景复用的效果,举个例子:空调操作场景与洗衣机操作场景,都是家电操作场景,部分意图是可以复用的,只需要在复用的时候,把空调的一些功能修改成洗衣机的功能,达到洗衣机的操作场景

总结

我们知道模型的泛化能力是很重要的,如果一个模型具有很好的泛化性能,那么它往往能够在没有见过的数据上表现良好。以中文命名实体识别为例,在用于评估模型泛化性能的数据集中,我们可能忽略了数据偏差对模型泛化的影响。在我们规划产品的时候,对于数据收集,用户的反馈数据,都非常重要,尤其对埋点数据要作为重中之重来看待,不可轻易忽略每一个数据的重要性,当然前期我们也要加大人力做好标注数据 为后面的模型提供丰富的数据支撑,上面三个不同阶段的语料泛化能力的方案,都是在项目中实践操作过的,希望对大家的项目有所帮助。

2