在原始数据缺失信息时测量精度和召回

时间:2016-10-31 09:31:16

标签: elasticsearch chat classification tf-idf precision-recall

尝试改善我的聊天应用:

使用我域中之前(预处理)的聊天交互,我构建了一个工具,为用户提供了5种可能的话语,例如:

  

原始:"嗨约翰。"

上下文:hi [[USER_NAME]]
话语:[嗨,你好,你好,你好,再次问好你好]

当然,结果并不总是相关的,例如:

  

原始:"嗨约翰。你好吗?我很好,你在办公室吗?"

上下文:嗨[[USER_NAME]]你好我在办公室你好吗 话语:[是,否, 您好 ,是的, 你好吗

我使用Elasticsearch与TF / IDF相似性模型和索引结构如下:

{
  "_index": "engagements",
  "_type": "context",
  "_id": "48",
  "_score": 1,
  "_source": {
    "context": "hi [[USER_NAME]] how are you i am fine are you in the office",
    "utterance": "Yes I am"
  }
}

问题:我肯定知道上下文" hi [[USER_NAME]]你好我在办公室你好吗?#34;话语"是的我"是相关的,然而"是" ,"否"也是相关的,因为它们出现在类似的背景下。

尝试使用此excellent video作为起点

问:如果我所知道的(从我的原始数据中)只是一个真正的话语,我如何衡量精确度和回忆?

1 个答案:

答案 0 :(得分:1)

我认为主要的问题是是否有任何可接受的答案更好? (是否有相关的顺序?)如果没有,那么可接受答案列表中的任何答案都是 TP。如果存在某种相关性顺序,您可以将其合并为 TP 度和 FP 度:

答案:A < B < C < D

D - 最好的; A - 最差但还可以接受

分配给 TP 的贡献:

A - 0.5 + 1/4*(1-0.5) = 0.625

D - TP:1.0; FP:0.0

A - 目标价:0.625; FP:1-0.625 = 0.375

在这种情况下,任何不是最好的答案都是部分错误的,但由于它仍然在正确的集合中,对 TP 的相关贡献不应小于 0.5(因为它的补充对 FP 和偶数边界有贡献)正确答案不应被视为比“好”更“坏”)。

正如你在上面看到的,我正在线性地处理订单惩罚。如果第一个答案特别好于其他答案等,您当然可以在此处引入任何您认为合适的惩罚函数。

相关问题