-1

我的团队进行了大量的聊天机器人培训,我正在尝试提出一些工具来提高我们的工作质量。在聊天机器人训练中,训练具有不同表达方式的意图非常重要,这些表达方式以非常不同的方式表达相同的意图。理想情况下,集合中话语的语法几乎没有相似之处。

这是一个查询医疗保险范围的意图示例

坏话集

  • 我女儿有保险吗?
  • 我儿子有医疗保险吗?
  • 我儿子有保险吗?

恰如其分的套话

  • 我如何查看我们是否为整个家庭提供保险?

  • 寻求有关医疗保险资格的详细信息

  • 是否有文件详细说明我们的医疗保险政策保护的对象?

我希望能够获取与意图相关的所有话语并分析它们的相似性。我希望我的一组不好的话语具有较高的相似性分数,而我的一组体面的话语具有低的相似性分数。

我试过玩一些 doc2vec 教程,但我觉得我错过了一些东西。我一直看到这样的东西:

  • 训练一组数据,然后测量一个新句子与您的一组数据的相似度
  • 测量两个句子之间的相似度

我需要有一系列句子并了解它们彼此之间的相似程度。

关于实现这一目标的任何建议?

回答一些问题:

  1. 是什么让糟糕的话语变得糟糕?话语本身并不糟糕,只是它们之间缺乏多样性。如果大部分训练都像“坏”集,那么将无法正确识别更多种类的真实用户话语。
  2. 您是否正在尝试发现新的意图?不,这是为了预发布训练,试图提高它的有效性。
  3. 为什么不好的话语具有高相似度分数而良好话语具有低相似度分数?这是一个假设。我知道真实的用户话语有多么不同,而且我发现我的培训师在训练时陷入了困境,以同样的方式提出问题,并且没有看到良好的准确性结果。改善话语的多样性往往会导致更好的准确性。
  4. 我将如何处理这些信息?我将使用它来评估意图的训练质量,以确定是否可能需要更多的训练。将来,我们可能会构建实时工具,因为正在添加话语以让培训师知道它们是否过于重复。
4

1 回答 1

0

文本向量的大多数应用都受益于捕获文本“基本含义”的向量,**不考虑单词选择的差异。

也就是说,如果两个具有相似含义的完全不同的措辞具有几乎相同的向量,则它被认为是一个特征,而不是一个缺陷。(或者,如果某些相似性度量表明它们完全相似。)

例如,要设计一个与您类似的示例,请考虑以下两个措辞:

《兄弟医保》《兄弟医保》

没有重复使用单词,但可能的预期含义是相同的——因此用于典型目的的良好文本向量化将创建非常相似的向量。并且使用这些向量的相似性度量,或以其他方式使用单词/单词向量作为输入,将表明相似性非常高。

但是从您澄清的答案来看,您似乎实际上想要一个更肤浅的“相似性”度量。您想要一个衡量某些措辞何时在其措辞中表现出多样性/对比的衡量标准。(具体来说,你已经知道其他因素,比如它们是如何手工制作的,这些短语的组在语义上是相关的。)

您希望此相似性度量显示的实际上是许多使用文本向量的项目会认为向量失败的行为。因此,像 Word2Vec、段落向量(又名“Doc2Vec”)等中的语义方法可能不适合您的目标。

仅基于文本的单词或字符-n-gram 的更简单的度量可能会做得很好。

例如,对于两个文本 A 和 B,您可以只计算共享词的数量(同时出现在 A 和 B 中),然后除以 A 和 B 中的唯一词总数,得到 0.0 到 1.0 “单词选择相似度”数。

而且,在针对一组先前文本考虑新文本时,如果它与先前文本的平均相似度很低,那么对于您的目的来说它是“好”的。

除了单词之外,您还可以使用文本的所有 n 字符子字符串(“n-gram”)——这可能有助于更好地突出单词形式的差异或常见的拼写错误,这对于您的目的也可能是有用的差异。

一般来说,我会看一下 scikit-learn 文本矢量化功能的想法:

https://scikit-learn.org/stable/modules/feature_extraction.html#text-feature-extraction

于 2019-01-28T01:08:12.987 回答