一种评估LSTM模型置信度方法

为什么需要评估聊天机器人输出置信度

使用LSTM构建聊天机器人,无论输入是什么,就算输入完全不符合语法,模型都会给出一个输出,显然,这个输出不是我们想要的,如何识别模型输出是不是我们想要的?因此我们需要一种评估指标,评估模型输出的置信度。评估LSTM模型的置信度本质上是判断输入与模型输出是否属于训练语料集之内,因为LSTM模型是在语料集的输入与标签之间建立了映射关系,对于训练语料集之外的输入,LSTM模型输出是随机的。因此,可以通过判断输入与LSTM模型的输出是否属于训练语料集之内来评估LSTM模型的置信度。

算法

把训练语料集的提问分词:key1,key2,…keyn,做为字典的关键字,对应的应答列表为字典的值:[answer1,answer2,… answerk],相同的关键字加入同一应答列表,如下表:

在这里插入图片描述
调用LSTM模型做预测时,把输入做分词,得到:key1,key2,…keyn,分别查找关系字典,得到对应的应答列表,对比应答列表的answer与LSTM模型输出,如果命中则计数器count加1。如果应答列表为空则为不命中。置信度confidence用下式计算:
Confidence = count / key size

计算LSTM模型置信度python代码

import jieba
import pickle
class RelevanceChat():
    def __init__(self,topk=5):
            self.topk = topk
            self.fited = False
    def fit(self,x_data,y_data,ws_decode):
            self.dict = {
   
   }
            high_fw_max = int(len(x_data) * 0.6)
            for ask, answer in zip(x_data, y_data):
                 ask_str = ''.join(ask)
                 if len(ask_str) == 0:
                      continue
                 top_key = jieba.lcut(ask_str)
            	   #print("top key:", top_key)
            	   y_code 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值