6

尝试改进我的聊天应用程序:

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

:“嗨,约翰。”

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


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

Raw:“嗨,John。你好吗?我很好,你在办公室吗?”

语境:嗨 [[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"
  }
}

问题:我确定对于上下文“嗨 [[USER_NAME]] 你好吗,我很好,你在办公室吗”,“是的,我是”这句话是相关的,但是“是”、“否”也是相关的因为它们出现在类似的背景下。

尝试使用这个优秀的视频,作为一个起点

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

4

1 回答 1

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 - TP:0.625;FP:1-0.625 = 0.375

在这种情况下,任何不是最好的答案都是部分错误的,但由于它仍然在正确的集合中,因此对 TP 的相关贡献不应小于 0.5(因为它的补码对 FP 有贡献,并且一个均匀的临界正确答案应该不被视为比“好”更“坏”)。

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

于 2021-06-10T12:55:59.027 回答