当前位置: 首页 > news >正文

蓟县网站建设flash个人网站

蓟县网站建设,flash个人网站,哔哩哔哩h5播放器,金口河移动网站建设前言 意图识别#xff08;Intent Recognition#xff09;是自然语言处理#xff08;NLP#xff09;中的一个重要任务#xff0c;它旨在确定用户输入的语句中所表达的意图或目的。简单来说#xff0c;意图识别就是对用户的话语进行语义理解#xff0c;以便更好地回答用户…前言 意图识别Intent Recognition是自然语言处理NLP中的一个重要任务它旨在确定用户输入的语句中所表达的意图或目的。简单来说意图识别就是对用户的话语进行语义理解以便更好地回答用户的问题或提供相关的服务。 在NLP中意图识别通常被视为一个分类问题即通过将输入语句分类到预定义的意图类别中来识别其意图。这些类别可以是各种不同的任务、查询、请求等例如搜索、购买、咨询、命令等。 下面是一个简单的例子来说明意图识别的概念 用户输入 我想订一张从北京到上海的机票。 意图识别预订机票。 在这个例子中通过将用户输入的语句分类到“预订机票”这个意图类别中系统可以理解用户的意图并为其提供相关的服务。 意图识别是NLP中的一项重要任务它可以帮助我们更好地理解用户的需求和意图从而为用户提供更加智能和高效的服务。 在智能对话任务中意图识别是一种非常重要的技术它可以帮助系统理解用户的输入从而提供更加准确和个性化的回答和服务。 模型 意图识别和槽位填充是对话系统中的基础任务。本仓库实现了一个基于BERT的意图intent和槽位slots联合预测模块。想法上实际与JoinBERT类似GitHubBERT for Joint Intent Classification and Slot Filling利用 [CLS] token对应的last hidden state去预测整句话的intent并利用句子tokens的last hidden states做序列标注找出包含slot values的tokens。你可以自定义自己的意图和槽位标签并提供自己的数据通过下述流程训练自己的模型并在JointIntentSlotDetector类中加载训练好的模型直接进行意图和槽值预测。 源GitHubhttps://github.com/Linear95/bert-intent-slot-detector 在本文使用的模型中对数据进行了扩充、对代码进行注释、对部分代码进行了修改。 Bert模型下载 Bert模型下载地址https://huggingface.co/bert-base-chinese/tree/main 下载下方红框内的模型即可。 数据集介绍 训练数据以json格式给出每条数据包括三个关键词text表示待检测的文本intent代表文本的类别标签slots是文本中包括的所有槽位以及对应的槽值以字典形式给出。 { text: 搜索西红柿的做法。, domain: cookbook, intent: QUERY, slots: {ingredient: 西红柿} } 原始数据集https://conference.cipsc.org.cn/smp2019/ 本项目中在原始数据集中新增了部分数据用来平衡数据。 模型训练 python train.py # -----------training------------- max_acc 0 for epoch in range(args.train_epochs):total_loss 0model.train()for step, batch in enumerate(train_dataloader):input_ids, intent_labels, slot_labels batchoutputs model(input_idstorch.tensor(input_ids).long().to(device),intent_labelstorch.tensor(intent_labels).long().to(device),slot_labelstorch.tensor(slot_labels).long().to(device))loss outputs[loss]total_loss loss.item()if args.gradient_accumulation_steps 1:loss loss / args.gradient_accumulation_stepsloss.backward()if step % args.gradient_accumulation_steps 0:# 用于对梯度进行裁剪以防止在神经网络训练过程中出现梯度爆炸的问题。torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm)optimizer.step()scheduler.step()model.zero_grad()train_loss total_loss / len(train_dataloader)dev_acc, intent_avg, slot_avg dev(model, val_dataloader, device, slot_dict)flag Falseif max_acc dev_acc:max_acc dev_accflag Truesave_module(model, model_save_dir)print(f[{epoch}/{args.train_epochs}] train loss: {train_loss} dev intent_avg: {intent_avg} fdef slot_avg: {slot_avg} save best model: {* if flag else })dev_acc, intent_avg, slot_avg dev(model, val_dataloader, device, slot_dict) print(last model dev intent_avg: {} def slot_avg: {}.format(intent_avg, slot_avg)) 运行过程 模型推理 python predict.py def detect(self, text, str_lower_caseTrue):text : list of string, each string is a utterance from userlist_input Trueif isinstance(text, str):text [text]list_input Falseif str_lower_case:text [t.lower() for t in text]batch_size len(text)inputs self.tokenizer(text, paddingTrue)with torch.no_grad():outputs self.model(input_idstorch.tensor(inputs[input_ids]).long().to(self.device))intent_logits outputs[intent_logits]slot_logits outputs[slot_logits]intent_probs torch.softmax(intent_logits, dim-1).detach().cpu().numpy()slot_probs torch.softmax(slot_logits, dim-1).detach().cpu().numpy()slot_labels self._predict_slot_labels(slot_probs)intent_labels self._predict_intent_labels(intent_probs)slot_values self._extract_slots_from_labels(inputs[input_ids], slot_labels, inputs[attention_mask])outputs [{text: text[i], intent: intent_labels[i], slots: slot_values[i]}for i in range(batch_size)]if not list_input:return outputs[0]return outputs 推理结果 模型检测相关代码 将概率值转换为实际标注值 def _predict_slot_labels(self, slot_probs):slot_probs : probability of a batch of tokens into slot labels, [batch, seq_len, slot_label_num], numpy arrayslot_ids np.argmax(slot_probs, axis-1)return self.slot_dict[slot_ids.tolist()]def _predict_intent_labels(self, intent_probs):intent_labels : probability of a batch of intent ids into intent labels, [batch, intent_label_num], numpy arrayintent_ids np.argmax(intent_probs, axis-1)return self.intent_dict[intent_ids.tolist()] 槽位验证确保检测结果的正确性 def _extract_slots_from_labels_for_one_seq(self, input_ids, slot_labels, maskNone):results {}unfinished_slots {} # dict of {slot_name: slot_value} pairsif mask is None:mask [1 for _ in range(len(input_ids))]def add_new_slot_value(results, slot_name, slot_value):if slot_name or slot_value :return resultsif slot_name in results:results[slot_name].append(slot_value)else:results[slot_name] [slot_value]return resultsfor i, slot_label in enumerate(slot_labels):if mask[i] 0:continue# 检测槽位的第一字符B_开头if slot_label[:2] B_:slot_name slot_label[2:] # 槽位名称 B_ 后面if slot_name in unfinished_slots:results add_new_slot_value(results, slot_name, unfinished_slots[slot_name])unfinished_slots[slot_name] self.tokenizer.decode(input_ids[i])# 检测槽位的后面字符I_开头elif slot_label[:2] I_:slot_name slot_label[2:]if slot_name in unfinished_slots and len(unfinished_slots[slot_name]) 0:unfinished_slots[slot_name] self.tokenizer.decode(input_ids[i])for slot_name, slot_value in unfinished_slots.items():if len(slot_value) 0:results add_new_slot_value(results, slot_name, slot_value)return results 源码获取 NLP/bert-intent-slot at main · mzc421/NLP (github.com)https://github.com/mzc421/NLP/tree/main/bert-intent-slot 链接作者 欢迎关注我的公众号AI算法与电子竞赛 硬性的标准其实限制不了无限可能的我们所以啊少年们加油吧
http://www.hkea.cn/news/14315337/

相关文章:

  • 中国建设银行深圳招聘信息网站承德网站制作公司优选网十科技
  • 洛阳网站建设公司聊城做网站推广费用
  • 番禺网站(建设信科网络)深圳做网站便宜
  • 对接网站建设是什么意思网站建设案例赏析
  • 找人做网站要注意什么dw网页设计成品免费学霸
  • 网站建设电话销售不被挂断网站如何能让百度收录
  • 网站播放大视频如何做古诗网页设计素材
  • 辽宁省建设厅注册中心网站这里是我做的网站
  • 做网站图片属性网站懒加载怎么做
  • 网站建设制作服务商成都官网优化多少钱
  • 网站源码下载插件wordpress中文下载
  • 网站群集约化建设wordpress主题更换logo
  • 西昌网站制作南京最新消息今天
  • 广西桂林阳朔旅游攻略必去景点seo 新老网站替换 域名不变
  • 手机网站设计技巧wordpress数据库文件在哪里设置
  • 菏泽北京网站建设快速申请wordpress
  • 北京网站搭建费用导入表格数据做地图网站
  • 北京南站附近景点今天三河燕郊确诊名单
  • 瀑布流 网站 php 源码wordpress文字排版
  • 绵阳网站开发公司贵阳建设工程招投标网站
  • 深圳做网站费用建设网站 莆田
  • 织梦网站模板免费下载做一个app需要什么条件
  • 什么建网站免费搜索引擎优化seo方案
  • 东莞谷歌推广搜索引擎优化中的步骤包括
  • 牛网站建设如何来建设网站
  • 伊宁seo网站建设wordpress书
  • 站长工具如何使用wordpress国内最流行的主题
  • 网站网络营销公司新闻类wordpress模板下载
  • 网站建设7个主要流程宜春建设网站公司
  • 建设执业资格注册中心网站ssc网站建设