NLP中的对话机器人——预训练基准模型

news/2024/4/23 16:55:19/文章来源:https://blog.csdn.net/yjw123456/article/details/129213112

引言

本文是七月在线《NLP中的对话机器人》的视频笔记,主要介绍FAQ问答型聊天机器人的实现。

场景二

上篇文章中我们解决了给定一个问题和一些回答,从中找到最佳回答的任务。

在场景二中,我们来实现: 给定新问题,从问答库中找到能回答该问题的最佳答案。

那怎么实现呢? 一种方案是直接匹配问题和答案,计算一个匹配分数,选出匹配分数最高的。

在这里插入图片描述

但是基于这些数据集上,这种方法的效果不佳。

另一种做法是类似相似问题检索,从问答库中找到给定问题的最相似的问题,用它的答案作为给定问题的答案。

那如何计算问题之间的相似度呢?

我们这里尝试两个简单的基准模型,分别是基于ELMo和BERT的语句表示,得到问题的句向量,然后通过余弦相似度来计算问题间的相似得分。

我们这里使用现成的ELMo和BERT模型。

ELMo基准模型

数据集

https://pan.baidu.com/s/1z1Rnnk-ubRSvzDu4UvLlIw

在这里插入图片描述

实现

可以使用哈工大的预训练的ELMo模型, 仓库为: https://github.com/HIT-SCIR/ELMoForManyLangs

选择简体中文版,可能仓库中的链接打不开,可以从百度云: https://pan.baidu.com/s/1RNKnj6hgL-2orQ7f38CauA?errno=0&errmsg=Aut 下载。

下载并解压之后,我们需要修改config.json当中的config_path参数,改成:configs/cnn_50_100_512_4096_sample.json,即去掉前面的../

还要安装ELMoForManyLangs的包:

git clone https://github.com/HIT-SCIR/ELMoForManyLangs
cd ELMoForManyLangs
python setup.py install

在安装分词工具pkuseg

上面步骤都做好之后,我们进行测试,看能否正常工作:

from elmoformanylangs import Embedder
import pkuseg# 得到我们的elmo encoder
e = Embedder('zhs.model')
sents = ["今天天气真好啊","潮水退了就知道谁没穿裤子"]seg = pkuseg.pkuseg()
sents = [seg.cut(sent) for sent in sents]print(sents)embeddings = e.sents2elmo(sents)print(embeddings)

测试失败了吗,报错:

TypeError: Highway.forward: return type `<class 'torch.Tensor'>` is not a `<class 'NoneType'>`.

解决:

pip uninstall -y overrides
pip install overrides==3.1.0

再次运行,结果:

[['今天', '天气', '真', '好', '啊'], ['潮水', '退', '了', '就', '知道', '谁', '没', '穿', '裤子']][array([[ 0.07444969,  0.12170488,  0.18306534, ..., -0.27513036,0.03082917, -0.6021218 ],[-0.17950936,  0.3002583 ,  0.41858768, ..., -0.7238658 ,1.5381049 , -1.1729732 ],[ 0.2640982 ,  0.53036195,  0.6604749 , ...,  0.12223349,0.5540275 , -0.50095123],[ 0.5308723 ,  0.05570847,  0.09236425, ..., -0.9979615 ,0.13710646, -0.33056557],[ 0.22956477,  0.43202046, -0.42210087, ..., -0.9834735 ,0.0821436 , -0.15420763]], dtype=float32), array([[ 0.04015709,  0.42856467,  0.6768381 , ..., -0.10523877,0.48780942,  0.00312402],[ 0.5922051 ,  0.21770744,  1.1809255 , ..., -0.12190163,0.61034995,  0.1050753 ],[ 0.614235  , -0.04580465, -0.03073702, ...,  0.34837866,0.5443483 ,  0.02076633],...,[ 0.76723504,  1.413464  ,  1.071545  , ..., -1.464156  ,0.5184709 , -0.5683145 ],[ 0.13504069,  0.44970334,  0.8248094 , ..., -0.17855829,-0.39308357,  0.24178888],[ 0.44061318,  0.6780157 , -0.07952423, ..., -1.2203757 ,0.14167261,  0.3741262 ]], dtype=float32)]

正常运行,下面可以开始编码了。

首先引入相关包:

import os
import pickle
from sklearn.metrics.pairwise import cosine_similarityimport numpy as np
import pandas as pd
import pkuseg
from elmoformanylangs import Embedder # 通过上面的python setup.py install安装

目录结构如下:
在这里插入图片描述

具体实现非常简单,只需要把分词后的句子列表传给ELMo模型,就可以得到每个单词的词向量。
为了得到句向量,这里我们采用对句子中每个单词向量求均值的方法。

e = Embedder('zhs.model') # EMLo模型seg = pkuseg.pkuseg() # 分词工具# 如果第一次执行(较耗时)
if not os.path.exists("embeddings.pkl"):train_df = pd.read_csv("financezhidao_filter.csv").sample(frac=0.1) # 只取10%的数据量# 取最佳答案中的tile和reply字段candidates = train_df[train_df["is_best"] == 1][["title", "reply"]]candidate_title = candidates["title"].tolist()candidate_reply = candidates["reply"].tolist()# 对title分词titles = [seg.cut(title) for title in candidates["title"]]# 计算title中单词词向量embeddings = e.sents2elmo(titles)# list of numpy arrays, each array with shape [seq_len * 1024]# code.interact(local=locals())# 对seq_len中的单词取平均,这样不管句子长度多少,都可以得到维度一致的句向量# 除了取平均还可以:求和/取最大值等candidate_embeddings = [np.mean(embedding, 0) for embedding in embeddings]  # a list of 1024 dimensional vectors# 保存嵌入with open("embeddings.pkl", "wb") as f:pickle.dump([candidate_title, candidate_reply, candidate_embeddings], f)print("Save embeddings to embeddings.pkl")
else:with open("embeddings.pkl", "rb") as f:candidate_title, candidate_reply, candidate_embeddings = pickle.load(f)print("Load embeddings success")

我们可以先为问答库中的问题计算好句向量,然后保存下来,下次直接加载就可以了。

当有了新问题进来,我们只需要按照相同的方法计算新问题的句向量,然后与问答库中的问题计算余弦相似度。

while True:title = input("你的问题是?\n > ")if len(title.strip()) == 0:continuetitle = [seg.cut(title.strip())]title_embedding = [np.mean(e.sents2elmo(title)[0], 0)] # 得到了新问题的ELMo embeddingscores = cosine_similarity(title_embedding, candidate_embeddings)[0]# 得到得分最高的5个问题对应的索引top5_indices = scores.argsort()[-5:][::-1]print("[得分] 参考问题 对应答案")for index in top5_indices:print(f"[{scores[index]}] {candidate_title[index]} 对应答案:{candidate_reply[index]}\n")

运行效果:

你的问题是?> 如何发财
2023-02-26 15:07:57,114 INFO: 1 batches, avg len: 4.0
[得分] 参考问题 对应答案
[0.6191050410270691] 如何去理财,教我如何理财 对应答案:欢迎关注招行理财,招行有储蓄、大额存单、基金、理财产品、外汇、黄金、白银等投资可供您选择。风险和收益基本成正比,要求保本就选择储蓄,追求低风险可以考虑货币基金和低风险的理财产品,追求高收益可以了解投资型基金、外汇,黄金及白银,若您当地有招行,可以联系网点客户经理交流理财事宜。[0.6009083390235901] 100万年轻人现在如何理财 对应答案:要是这100万是你所有的资产、建议你分散投资,可以选择三种不同的风险投资。1、低风险占40%,收益在5%左右一年利息两万左右,可以把钱做银行理财或买国债。2、中风险占50%,收益在11%左右一年利息五六万,可以选择一些靠谱的P2P网贷。3、高风险占10%,收益20%多甚至更高,可以做一些股票、期货类的。要么就找个有升值空间的三、四线城市或海边投资套房子,剩下的理财。[0.5920484066009521] 聪明女人应该怎样理财 对应答案:所在城市若有招商银行,可了解下招行发售的理财产品,首次购买理财产品,需先办理风险评估,评估后,可购买对应您的风险承受能力等级的理财产品。您可以进入招行主页,点击“理财产品”-“个人理财产品”页面查看,也可通过“搜索”分类您需要的理财产品。温馨提示:购买之前请详细阅读产品说明书。[0.58339524269104] 年轻人应该如何理财? 对应答案:目前招行个人投资理财方式较多:定期、国债、受托理财、基金、黄金等做组合投资,不同产品的投资起点不一,对应的风险级别也不相同。建议您可以到我行网点咨询理财经理的相关建议。[0.5725947022438049] 手头几万闲钱如何理财最靠谱 对应答案:欢迎关注招行理财,招行有储蓄、大额存单、基金、理财产品、外汇、黄金、白银等投资可供您选择。风险和收益基本成正比,要求保本就选择储蓄,追求低风险可以考虑货币基金和低风险的理财产品,追求高收益可以了解投资型基金、外汇,黄金及白银,若您当地有招行,可以联系网点客户经理交流理财事宜。你的问题是?> 我要如何借钱
2023-02-26 15:08:40,206 INFO: 1 batches, avg len: 6.0
[得分] 参考问题 对应答案
[0.8377593159675598] 我是说要怎样挂失 对应答案:如果是招商银行一卡通或信用卡,都可以致电相应的客服热线,进入人工挂失。也可以通过网上银行挂失。[0.8101509213447571] 我可以借钱吗 对应答案:建议您通过正规平台咨询办理。若在招行申请个人贷款,目前规定贷款人的年龄需年满18周岁,且年龄+贷款年限不得超过70岁。未成年人如需申请贷款,可尝试由父母(或一方)作为共同贷款申请人;具体能否办理,建议您联系当地网点的个贷部门详询。[0.8072128295898438] 我要还款怎么搞 对应答案:若是招行信用卡,我行信用卡还款有多种方式,如通过自助存款机存现、网点柜面还款,网络还款、便利店还款等,您可以登录以下网址查看我行的还款方式介绍,以选择适合您的方式(网址:http://cc.cm####na.com/Cu######ce/Re#####nt.aspx)。[0.7984545230865479] 我想贷你能? 对应答案:所在城市若有招商银行,可通过招行尝试申请贷款,由于各贷款项目所需条件及申请材料有所不同,请您在8:30-18:00致电9####选择3个人客户服务-3-3-8进入人工服务提供贷款用途及城市详细了解所需资料。贷款申请是否通过,请以经办行个贷部门的综合审核结果为准。[0.7939909100532532] 我要贷款谁能帮我 对应答案:若您所在城市有招行,可通过招行尝试申请贷款,请您在8:30-18:00致电9####选择“2人工服务-“1”个人银行业务-“4”个人贷款业务进入人工服务提供贷款用途及城市详细了解所需资料。你的问题是?> 

可以看到,我们没有进行任何训练,就可以得到一个效果还行的模型,我们可以利用分数排名来计算mean receiprocal rank。

然后基于此,去实现一个比基准模型更好的模型。

下面,我们来看如何实现BERT基准模型。

BERT基准模型

与ELMo模型类似,我们可以用BERT来对句子进行编码。BERT句向量表示有多种方式,比如使用[CLS]的向量表示句向量,但在这里效果不好,推荐和ELMo一样,才有句子中单词的平均值。

数据集

下载地址: https://pan.baidu.com/s/18Lwq16VBo6wBD_qLb3i33g

在这里插入图片描述
这次我们使用法律知道数据集,如上图所示。

实现

同样也是使用哈工大提供的预训练模型: https://github.com/ymcui/Chinese-BERT-wwm 。

我们利用HuggingFace包,这里可以不用费劲地去寻找该模型的下载地址,而可以直接通过huggingface下载。

下面会看到怎么做。

首先加载相应的包:

import logging
import os
import pickleimport pandas as pd
import torch
from sklearn.metrics.pairwise import cosine_similarity
from torch.utils.data import DataLoader, SequentialSampler, TensorDataset
from tqdm import tqdm
from transformers import (BertConfig,BertModel,BertTokenizer,
)
from transformers import glue_convert_examples_to_features
from transformers.data.processors.utils import InputExample, DataProcessor

然后定义需要用到的参数:

# 参数
# 从HuggingFace官网下载
model_path = "hfl/chinese-bert-wwm-ext"
max_seq_length = 128
learning_rate = 2e-5
batch_size = 32
data_dir = "lawzhidao_filter.csv"
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

定义数据处理类:

class FAQProcessor(DataProcessor):"""处理我们的数据"""def get_example_from_tensor_dict(self, tensor_dict):"""构建输入样本,我们这里针对BERT的输入只是单个句子,所以只有text_a参数:param tensor_dict::return:"""return InputExample(tensor_dict["idx"].numpy(),  # 样本IDtensor_dict["sentence"].numpy().decode("utf-8"),  # text_aNone,  # text_bstr(tensor_dict["label"].numpy())  # 标签)def get_candidates(self, file_dir):train_df = pd.read_csv(file_dir)# 只需要最佳答案中的title和replycandidates = train_df[train_df["is_best"] == 1][["title", "reply"]]# 转换为列表self.candidate_title = candidates["title"].tolist()# 保存在属性candidate_reply中self.candidate_reply = candidates["reply"].tolist()return self._create_examples(self.candidate_title, "train")def _create_examples(self, lines, set_type):"""创建训练样本"""examples = []for i, line in enumerate(lines):guid = f"{set_type}-{i}"examples.append(InputExample(guid=guid, text_a=line, text_b=None, label=1))return examples

将数据转换为BERT能理解的格式:

def convert_examples_to_dataset(examples, tokenizer):# 将数据转换为特征features = glue_convert_examples_to_features(examples,tokenizer,max_length=max_seq_length,label_list=[1],output_mode="classification")# 转换为tensorall_input_ids = torch.tensor([f.input_ids for f in features], dtype=torch.long)all_attention_mask = torch.tensor([f.attention_mask for f in features], dtype=torch.long)all_token_type_ids = torch.tensor([f.token_type_ids for f in features], dtype=torch.long)dataset = TensorDataset(all_input_ids, all_attention_mask, all_token_type_ids)return dataset

定理模型推理函数:

def infer(model, dataset):"""让model在数据dataset上进行推理:param model::param dataset::return:"""sentence_outputs = []sampler = SequentialSampler(dataset)dataloader = DataLoader(dataset, sampler=sampler, batch_size=batch_size)logger.info(f"  Num examples = {len(dataset)}, Batch size = {batch_size}")for batch in tqdm(dataloader, desc="Inferring"):model.eval()batch = tuple(t.to(device) for t in batch)with torch.no_grad():inputs = {"input_ids": batch[0],"attention_mask": batch[1],"token_type_ids": (batch[2])}outputs = model(**inputs)# 我们计算句子中单词向量的均值sequence_output, _ = outputs[:2]sequence_output = sequence_output.mean(axis=1)sentence_outputs.append(sequence_output)return sentence_outputs

我们也是直接加载预训练好的模型来使用:

def main():# 配置日志打印格式logging.basicConfig(format="%(asctime)s - %(levelname)s - %(name)s -   %(message)s",datefmt="%m/%d/%Y %H:%M:%S",level=logging.INFO,)config = BertConfig.from_pretrained(model_path)tokenizer = BertTokenizer.from_pretrained(model_path)model = BertModel.from_pretrained(model_path, config=config)model.to(device)if not os.path.exists("embeddings.pkl"):processor = FAQProcessor()candidate_title, candidate_reply = processor.candidate_title, processor.candidate_replyexamples = (processor.get_candidates(data_dir))dataset = convert_examples_to_dataset(examples, tokenizer)outputs = infer(model, dataset)candidate_embeddings = torch.cat([o.cpu().data for o in outputs]).numpy()with open("embeddings.pkl", "wb") as fout:pickle.dump([candidate_title, candidate_reply, candidate_embeddings], fout)print("Save candidate_embeddings to embeddings.pkl")else:with open("embeddings.pkl", "rb") as fin:candidate_title, candidate_reply, candidate_embeddings = pickle.load(fin)print("Embeddings loaded.")while True:title = input("你的问题是?\n >")if len(title.strip()) == 0:continue# 单个InputExampleexamples = [InputExample(guid=0, text_a=title, text_b=None, label=1)]dataset = convert_examples_to_dataset(examples, tokenizer)output = infer(model, dataset)[0]title_embedding = output.cpu().data.numpy()# title_embedding = torch.cat([o.cpu().data for o in outputs]).numpy()scores = cosine_similarity(title_embedding, candidate_embeddings)[0]top5_indices = scores.argsort()[-5:][::-1]print("[得分] 参考问题 对应答案")for index in top5_indices:print(f"[{scores[index]}] {candidate_title[index]} 对应答案:{candidate_reply[index]}\n")if __name__ == '__main__':main()

测试:

你的问题是?>如何进行车险理赔
D:\Tools\Anaconda\lib\site-packages\transformers\data\processors\glue.py:67: FutureWarning: This function will be removed from the library soon, preprocessing should be handled with the 🤗 Datasets library. You can have a look at this example script for pointers: https://github.com/huggingface/transformers/blob/master/examples/pytorch/text-classification/run_glue.pywarnings.warn(DEPRECATION_WARNING.format("function"), FutureWarning)
02/26/2023 21:01:53 - INFO - __main__ -     Num examples = 1, Batch size = 32
Inferring: 100%|██████████| 1/1 [00:00<00:00,  6.67it/s]
[得分] 参考问题 对应答案
[0.9664379358291626] 如何进行交通事故损害赔偿 对应答案:一、造成当事人损害1、同时投保机动车第三者责任强制保险和第三者责任商业保险的机动车发生造成损害,当事人同时侵权人和的,人民法院应当按照下列规则确定赔偿责任:(1)先由承保的保险公司在责任限额范围内予以赔偿;(2)不足部分,由承保商业三者险的保险公司根据予以赔偿;(3)仍有不足的,依照和侵权责任法的相关规定由侵权人予以赔偿。被侵权人或者其近亲属请求承保交强险的保险公司优先赔偿精神损害的,人民法院应予支持。2、投保人允许的驾驶人驾驶机动车致使投保人遭受损害,当事人可以请求承保交强险的保险公司在责任限额范围内予以赔偿,但投保人为本车上人员的除外。二、造成第三人损害1、有下列情形之一导致第三人人身损害,当事人请求保险公司在交强险责任限额范围内予以赔偿:(1)驾驶人未取得驾驶资格或者未取得相应驾驶资格的;(2)醉酒、服用国家的精神药品或者麻醉药品后驾驶机动车发生交通事故的;(3)驾驶人故意制造交通事故的。保险公司在赔偿范围内向侵权人主张追偿权的,人民法院应予支持。追偿权的诉讼时效期间自保险公司实际赔偿之日起计算。2、多辆机动车发生交通事故造成第三人损害(1)损失超出各机动车交强险责任限额之和的,由各保险公司在各自责任限额范围内承担赔偿责任;损失未超出各机动车交强险责任限额之和,当事人可以请求由各保险公司按照其责任限额与责任限额之和的比例承担赔偿责任。(2)依法分别投保交强险的牵引车和挂车连接使用时发生交通事故造成第三人损害,当事人可以请求由各保险公司在各自的责任限额范围内平均赔偿。(3)多辆机动车发生交通事故造成第三人损害,其中部分机动车未投保交强险,当事人请求先由已承保交强险的保险公司在责任限额范围内予以赔偿的,人民法院应予支持。保险公司就超出其应承担的部分向未投保交强险的投保义务人或者侵权人行使追偿权。[0.9585154056549072] 车险事故如何处理 对应答案:一、报案1、事故发生后,保留事故现场,并立即向车辆的投保公司报案;2、如第三方损失为道路设施或者第三方损失为车辆,需向交警部门报案;二、现场处理-1、保险公司人员到达现场,并出具《查勘报告》2、交警部门到达现场,并现场出具《事故认定书》提醒:一般情况下,如果在向保险公司报案时,保险公司要求向交警报案时,保险公司人员无需到现场处理!三、第三者修理1、如果第三者非机动车,则最好要求保险公司人员在进行现场处理时,直接达成三方(第三者、保险公司、车主)公认的一个核损价格,如果当场不能核定损失,则在进行第三者损失核定的时候或者过程中,要求保险公司给出核损价格提醒:如果不经过保险公司允许,自行答应第三者有关索赔金额的承诺,这种承诺保险公司是有权推翻重来的,如果重新核定的价格与第三者的要求有差距,则这个差距会由车主自行承担2、如果第三者是机动车,则要分以下两种情况:第一、如果第三者同意与车主一同前往车主选定的修理厂进行修理,则当场不必支付第三者任何现金!第二、如果第三者要求去自己选定的修理厂进行修理,也就是说第三者将与车主去不同的修理厂进行车辆修理时,则第三者可能要求车主在事故现场先支付一部分修理费用,或称押金或定金,(因为担心事后找不到车主或者事后车主不认账),切记:一、现场掏钱,一定要立收据;二、支付一半的修理费用比较适当(因为也有可能发生事后第三者不认账的情况)提醒1:第三者车辆修理完毕后,车主必须先将修理费交付给第三者或其选择的修理厂,然后拿到第三者的修理发票及维修明细才能进行保险索赔的,如果事后第三者不提供相关资料或者找不到第三者时,第三者的维修费用保险公司是不能赔付的提醒2:虽然上文提到在现场掏钱时,要第三者立收据,虽说这种收据是不能作为赔偿依据的,但是这种收据至少可以避免第三者事后不认账的情况。因为第三者修理完毕后,车主须将修理费交付给第三者或者第三者选择的修理厂,如果没有这个收据,第三者万一不认账的情况下,车主到底应该在第三者车辆修理完毕后,支付多少钱呢?四、车辆定损修理1、将受损车辆送抵定损中心并同时通知保险公司,定损;2、修理厂修车;3、车主提车。五、提交单证进行索赔理赔:收集索赔资料交给保险公司办理索赔手续六、损失理算保险公司收到齐备的索赔单证之后进行理算,以最后确定最终的赔付金额。七、赔付:保险公司财务人员根据理赔人员理算得出的金额,向车主的指定帐户划拨赔款。[0.9501453638076782] 工伤鉴定,如何理赔 对应答案:工伤认*之后并不能马上进行理赔,需要*工治疗完毕,进行医疗终结,根据是否存在后遗症进行劳***,根据劳***的结果以及医疗费用,住院时间等来进行报销及赔偿金额。工伤流程如下:1、及时送往医院治疗。2、申请工伤认*,由单位或者个人向当地劳*部门申请,认*为工伤。3、申请劳***,在*工治疗完毕或者达到一*医疗期之后向市*****会申请工伤鉴*,判*伤残等*4、待遇审核,*工或者单位根据医院的治疗发票、工伤认*书、劳***书等想社保中心申请待遇审核,下发工伤待遇,包括医疗费用以及伤残补助费用。5、如果*工需要解除劳*关系,有伤残*工可以享受一次性就业补助金和一次性医疗补助金的待遇。依据《工伤保险条例》第十七条职工发生事故伤害或者按照职业病防治法规*被诊断、鉴*为职业病,所在单位应当自事故伤害发生之日或者被诊断、鉴*为职业病之日起30日内,向统筹地区社会保险行政部门提出工伤认*申请。遇有特殊情况,经报社会保险行政部门同意,申请时限可以适当延长。用人单位未按前款规*提出工伤认*申请的,工伤职工或者其近亲属、工会组织在事故伤害发生之日或者被诊断、鉴*为职业病之日起1年内,可以直接向用人单位所在地统筹地区社会保险行政部门提出工伤认*申请。按照本条第一款规*应当由省*社会保险行政部门进行工伤认*的事项,根据属地原则由用人单位所在地的设区的市*社会保险行政部门办理。用人单位未在本条第一款规*的时限内提交工伤认*申请,在此期间发生符合本条例规*的工伤待遇等有关费用由该用人单位负担。第二十三条劳***由用人单位、工伤职工或者其近亲属向设区的市*****会提出申请,并提供工伤认**和职工工伤医疗的有关资料。《社会保险法》第三十八条因工伤发生的下列费用,按照国家规*从工伤保险基金中支付:(一)治疗工伤的医疗费用和康复费用;(二)住院伙食补助费;(三)到统筹地区以外就医的交通食宿费;(四)安装配置伤残辅助器具所需费用;(五)生活不能自理的,经劳****会确认的生活护理费;(六)一次性伤残补助金和一至四*伤残职工按月领取的伤残津贴;(七)终止或者解除劳*合同时,应当享受的一次性医疗补助金;(八)因工死亡的,其遗属领取的丧葬补助金、供养亲属抚恤金和因工死亡补助金;(九)劳***费。第三十九条因工伤发生的下列费用,按照国家规*由用人单位支付:(一)治疗工伤期间的工资福利;(二)五*、六*伤残职工按月领取的伤残津贴;(三)终止或者解除劳*合同时,应当享受的一次性伤残就业补助金。[0.9473228454589844] 如何申请工伤保险待遇 对应答案:提出工伤认定申请应当提交下列材料:(一)工伤认定申请表;(二)与用人单位存在劳动关系(包括事实劳动关系)的证明材料;(三)医疗诊断证明或者职业病诊断证明书(或者职业病诊断鉴定书)。工伤认定申请表应当包括事故发*的时间、地点、原因以及职工伤害程度等基本情况。工伤认定申请人提供材料不完整的,*******应当一次性书面告知工伤认定申请人需要补正的全*材料。申请人按照书面告知要求补正材料后,*******应当受*。第三十条职工因工作遭受事故伤害或者患职业病进*治疗,享受工伤医疗待遇。职工治疗工伤应当在签订服*协议的医疗机构就医,情况紧急时可以先到就近的医疗机构急救。治疗工伤所需费用符合工伤*险诊疗项目目录、工伤*险药*目录、工伤*险住**标准的,从工伤*险基金支付。工伤*险诊疗项目目录、工伤*险药*目录、工伤*险住**标准,由*******************、食********规定。职工住*治疗工伤的伙食补助费,以及经医疗机构出具证明,报经办机构同意,工伤职工到统筹地区以外就医所需的交通、食宿费用从工伤*险基金支付,基金支付的具体标准由统筹地区人民*府规定。工伤职工治疗非工伤引发的疾病,不享受工伤医疗待遇,按照基本医疗*险办法处*。工伤职工到签订服*协议的医疗机构进*工伤康复的费用,符合规定的,从工伤*险基金支付。第三十一条*******作出认定为工伤的决定后发***复议、**诉讼的,**复议和**诉讼期间不停止支付工伤职工治疗工伤的医疗费用。第三十二条工伤职工因日常*活或者就业需要,经劳动能力鉴定委员*确认,可以安装假肢、矫形器、假眼、假牙和配置轮椅等辅助器具,所需费用按照*家规定的标准从工伤*险基金支付。第三十三条职工因工作遭受事故伤害或者患职业病需要暂停工作接受工伤医疗的,在停工留薪期内,原工资福利待遇不变,由所在单位按月支付。停工留薪期一般不超过12个月。伤情严重或者情况特殊,经设区的市级劳动能力鉴定委员*确认,可以适当延长,但延长不得超过12个月。工伤职工评定伤残等级后,停发原待遇,按照本章的有关规定享受伤残待遇。工伤职工在停工留薪期满后仍需治疗的,继续享受工伤医疗待遇。*活不能自*的工伤职工在停工留薪期需要护*的,由所在单位负责。[0.9467172026634216] 发生工伤事故如何找老板赔偿 对应答案:*工工伤索取赔偿可分四步进行。1*单位进行协商,在协商一致后单位支付工伤赔偿金额即可。2、向劳*部门进行投诉,由劳*部门进行协调,单位支付*工工伤赔偿费用。3、申请劳**,由劳***会安排劳***决,要求单位赔偿。4、在仲*后任然不支付的,向法院起诉,申请强制执行。《社会保险法》第三十八条因工伤发生的下列费用,按照国家规定从工伤保险基金中支付:(一)治疗工伤的医疗费用*康复费用;(二)住院伙食补助费;(三)到统筹地区以外就医的交通食宿费;(四)安装配置伤残辅助器具所需费用;(五)生活不能自理的,经劳*能力鉴定委*会确认的生活护理费;(六)一次性伤残补助金*一至四级伤残职工按月领取的伤残津贴;(七)终止或者解除劳*合同时,应当享受的一次性医疗补助金;(八)因工死亡的,其遗属领取的丧葬补助金、供养亲属抚恤金*因工死亡补助金;(九)劳*能力鉴定费。第三十九条因工伤发生的下列费用,按照国家规定由用人单位支付:(一)治疗工伤期间的工资福利;(二)五级、六级伤残职工按月领取的伤残津贴;(三)终止或者解除劳*合同时,应当享受的一次性伤残就业补助金。《劳*争议调解仲*法》第二条中***国境内的用人单位与劳*者发生的下列劳*争议,适用本法:(一)因确认劳*关系发生的争议;(二)因订立、履行、变更、解除*终止劳*合同发生的争议;(三)因除名、辞退*辞职、离职发生的争议;(四)因工作时间、休息休假、社会保险、福利、培训以及劳*保护发生的争议;(五)因劳*报酬、工伤医疗费、经济补偿或者赔偿金等发生的争议;(六)法律、法规规定的其他劳*争议。你的问题是?>可以不交养老保险吗
D:\Tools\Anaconda\lib\site-packages\transformers\data\processors\glue.py:67: FutureWarning: This function will be removed from the library soon, preprocessing should be handled with the 🤗 Datasets library. You can have a look at this example script for pointers: https://github.com/huggingface/transformers/blob/master/examples/pytorch/text-classification/run_glue.pywarnings.warn(DEPRECATION_WARNING.format("function"), FutureWarning)
02/26/2023 21:02:25 - INFO - __main__ -     Num examples = 1, Batch size = 32
Inferring: 100%|██████████| 1/1 [00:00<00:00, 21.27it/s]
[得分] 参考问题 对应答案
[0.9749515056610107] 个人可以交社保吗 对应答案:个人缴纳社保,只能缴纳养老金和医疗保险这两部分。具体流程如下:1、个人如何缴纳社保可以以自由职业者的身份上社保(养老+医疗)2、参保条件:城镇户口或农转非户口;3、办理地点:当地社区街道的社保服务点,或区县一级的社保局(**)4、个人如何缴纳社保问题中所需基本资料:户口本、身份证和复印件,21寸照片;5、缴费标准:以上一年本地社平工资为基础,养老缴费比例是20%,医疗约9%,目前尚有80%100%两档可以选择。[0.9687256217002869] 交了35年养老保险可以提前退休吗 对应答案:全民所有制企业和县以上集体企业的职工,分别符合以下条件的可办理提前退休。所从事的特殊工种必须属于劳动部门和国*院有关行业主管部门规定的特殊工种的范围;提前退休的年龄限制是男性年满55周岁,女性年满45周岁;申请人必须是原始人事档案有明确记载他(她)曾经从事提前退休特殊工种,达到国*规定年限。如果符合以上条件,申请人向档案管理部门提出申请,由主管部门向劳动保障部门申报。按程序审批后,即可办理退休。《特种作业人*安全技术培训考核管理办法》指出,特种作业的范围应包括:电工作业;金属焊接、切割作业;起重机械(含电梯)作业;企业内机动车辆驾驶;登高架设作业;锅炉作业(含水质化验);压力容器操作;制冷作业;爆破作业;矿山通风作业(含瓦斯检验);矿山排水作业(含尾矿坝作业);由省、自治区、直辖市安全生产综合管理部门或国*院行业主管部门提出,并经国****会批准的其他作业。根据以上范围,你公公不符合特殊工种。不过你可以去问问当地相关部门,或许地方政府有特殊规定。关于医保缴费年限:参保人*到达国*规定的退休年龄时,享受退休人*基本医疗保险待遇的最低缴费年限(含视同缴费年限)男必须满25年,女满20年。达不到医保最低缴费年限的,以上年度社会平均工资为基数,一次性补缴所差年限的基本医疗保险费。(每个地方对医保缴费年限的规定不一致,需参照本地规定)[0.9643365144729614] 我有社保,还需要买商业医疗保险吗 对应答案:不需要,但是商业保险是社保的一个补充,如果有足够的经济条件可以进行购买。1、社保覆盖面广,不存在拒保问题,但是保障较低,只能满足基本的保障需求。社保中的医疗保险,住院一般可报70%。而且这70%的医疗费,限于扣除起付线标准后。而且,在社保规定用药和规定项目内。许多检查费、专家诊疗、高新尖诊疗技术,社保都是不报的。这就需配合必要的商业保险了。2、另外,社保医疗是出院后报的,商业医保中的重疾险是确诊后就可以给钱,可以弥补很多家庭没钱治的困境;3、商业保险可以选择购买更高的保额,社保则很有限;社保医疗只是补偿医药费,而没有住院期间的收入损失补偿,商业医疗就有住院补贴。总之,建议在有了社保后,再购买适合自己的寿险,加上意外险、住院医疗、重疾医疗保险,就是非常的完善的保障了。[0.9598730802536011] 小孩还没入户口可以报医保吗? 对应答案:新生儿要参加*保首先要做参保登记。新生儿的监护人需持新生儿的户口簿复印件和一寸新生儿照片,到户口所在的社区居委会填写《市城镇居民基本*疗保险参保登记表》,由经办人员签名盖章后,把参保登记表送到市**心居民科制作社会保障卡,缴纳*保费。新生儿(宝宝)年度内未能及时参保的,凭出生证、母亲参加我市城镇职工基本*疗保险或居民基本*疗保险的有效证件,可以享受出生当年城镇居民基本*疗保险待遇。符合计划生育政策并参加城镇*(生育)保险的妇女生孩子时,新生儿从出生日期算起至首次出院前一旦检查出任何病情,其*疗费用直接计入当次母亲住院*疗费*,并以其母亲名义按参保险种的规定报销。此外新生儿出生后60日内可以办理城镇居民*疗保险,在此期限内参保的新生儿,可立即按相关规定报销,取消一年的等待期。新生儿*疗保险办理需要以下资料:要带上户口本(首页和小孩户口页的复印件)、家长身份证(复印正反两面)和一张蓝底或者红底的新生儿一寸照片(有些地方需要)到户口所在街道或社区劳动保障所办理参保手续即可。从参保手续办理到拿到新生儿*保卡,需要一个多月的时间。一般来说,只要是出生12个月以内的新生儿,可随时办理参保手续。[0.9593257904052734] 只要失业了,就能领失业保险金吗 对应答案:不是这样的。失业保险必须是等到失业条件出现才能领取,一般就是解除劳动合同后档案转街道,在街道领取。但是如果不领,则前后失业保险缴费时间可以累计。失业保险待遇如下:这个失业保险的待遇要高于第一点说的情况,具体如下:(一)累计缴费时间不满5年的,失业保险金月发放标准为422元;(二)累计缴费时间满5年不满10年的,失业保险金月发放标准为449元;(三)累计缴费时间满10年不满15年的,失业保险金月发放标准为476元;(四)累计缴费时间满15年不满20年的,失业保险金月发放标准为503元;(五)累计缴费时间满20年以上的,失业保险金月发放标准为531元;(六)从第13个月起,失业保险金月发放标准一律按422元发放。领取时间长短如下规定:()累计缴费时间1年以上不满2年的,可以领取3个月失业保险金;()累计缴费时间2年以上不满3年的,可以领取6个月失业保险金;()累计缴费时间3年以上不满4年的,可以领取9个月失业保险金;()累计缴费时间4年以上不满5年的,可以领取12个月失业保险金;()累计缴费时间5年以上的,按每满一年增发一个月失业保险金的办法计算,确定增发的月数。领取失业保险金的期限最长不得超过24个月。失业期间医疗保险补助金待遇—失业人员在领取失业保险金期间,患病(不含因打架斗殴或交通事故等行为致伤、致残的)到社会保险经办机构指定的医院就诊的,可以补助本人应领取失业保险金总额60%至80%的医疗补助金。具体标准为:()累计缴费时间不满5年的,其医疗费补助比例为60%;累计医疗补助金不超过本人应领取失业保险金总额的60%。()累计缴费时间满5年不满10年的,其医疗费补助比例为65%;累计医疗补助金不超过本人应领取失业保险金总额的65%。()累计缴费时间满10年不满15年的,其医疗费补助比例为70%;累计医疗补助金不超过本人应领取失业保险金总额的70%。()累计缴费时间满15年不满20年的,其医疗费补助比例为75%;累计医疗补助金不超过本人应领取失业保险金总额的75%。()累计缴费时间满20年以上的,其医疗费补助比例为80%;累计医疗补助金不超过本人应领取失业保险金总额的80%。

看起来BERT非常自信,但实际效果没有那么理想,此时我们可以进一步地在下游任务上进行微调。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_74424.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基础夯实,字节内部总结240道算法LeetCode刷题笔记,直呼太全

1、什么是算法算法(algorithm&#xff0c;[ˈlɡərɪəm]&#xff0c;计算程序)&#xff1a;就是定义良好的计算过程&#xff0c;他取一个或一组的值为输入&#xff0c;并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤&#xff0c;用来将输入数据转化成输出结…

java spring AOP 完全注解开发

我们先创建一个项目 然后引入java spring aop的依赖 然后 在src下创建目录 我这里 直接就叫 Aop了 下面创建一个User类 参考代码如下 package Aop;import org.springframework.stereotype.Component;Component public class User {public void add(){System.out.println(&qu…

Redis高级-主从复制相关操作

2.1 主从复制简介 2.1.1 高可用 首先我们要理解互联网应用因为其独有的特性我们演化出的三高架构 高并发 应用要提供某一业务要能支持很多客户端同时访问的能力&#xff0c;我们称为并发&#xff0c;高并发意思就很明确了 高性能 性能带给我们最直观的感受就是&#xff1a;速…

Java EE|TCP/IP协议栈之应用层协议DNS详解

文章目录一、对DNS的感性认识简介特点一些常见疑问二、DNSDNS域名结构域名的分级三、域名服务器四、域名解析过程参考一、对DNS的感性认识 简介 DNS&#xff0c;即Domain Name System,是域名系统的简称。它是Internet上解决网上机器命名的一种系统。 TCP/IP中的IP地址是由四…

【蓝桥集训】第七天并查集

作者&#xff1a;指针不指南吗 专栏&#xff1a;Acwing 蓝桥集训每日一题 &#x1f43e;或许会很慢&#xff0c;但是不可以停下来&#x1f43e; 文章目录1.亲戚2.合并集合3.连通块中点的数量有关并查集的知识学习可以移步至—— 【算法】——并查集1.亲戚 或许你并不知道&#…

c语言tips-大端小端存储介绍和使用union判断大小端

1. 大小端介绍 大端&#xff08;Big Endian&#xff09;和小端&#xff08;Little Endian&#xff09;是两种CPU或者计算机系统存储数据的方式。 在大端系统中&#xff0c;数据的高位字节&#xff08;MSB&#xff09;存储在内存地址的低位&#xff0c;低位字节&#xff08;LSB…

【C++】C++入门(下)

引用 什么是引用&#xff1f;   引用是给一个已经存在的变量取一个别名&#xff0c;在语法上并不会给这个别名开一个空间&#xff0c;它和她引用的变量共用一个空间。但是实际上引用也是开了一块空间的&#xff0c;用来存放引用名。引用是按照指针的方式来实现的。引用语法&…

《分布式技术原理与算法解析》学习笔记Day23

分布式数据复制 我们在进行分布式数据存储设计时&#xff0c;通常会考虑对数据进行备份&#xff0c;以提高数据的可用性和可靠性&#xff0c;“数据复制技术”就是实现数据备份的关键技术。 什么是数据复制技术&#xff1f; 在分布式数据库系统中&#xff0c;通常会设置主备…

华为OD机试用Python实现 -【统一限载货物数最小值】(2023-Q1 新题)

华为OD机试题 华为OD机试300题大纲统一限载货物数最小值题目描述输入描述输出描述说明示例一输入输出说明示例二输入输出说明Python 代码实现算法逻辑华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查…

python爬虫常见错误

python爬虫常见错误前言python常见错误1. AttributeError: WebDriver object has no attribute find_element_by_id1. 问题描述2. 解决办法2. selenium&#xff1a;DeprecationWarning: executable_path has been deprecated, please pass in1. 问题描述2. 解决办法3. 下载了包…

k8s-资源限制-探针检查

文章目录一、资源限制1、资源限制的使用2、reuqest资源&#xff08;请求&#xff09;和limit资源&#xff08;约束&#xff09;3、Pod和容器的资源请求和限制4、官方文档示例5、资源限制实操5.1 编写yaml资源配置清单5.2 释放内存&#xff08;node节点&#xff0c;以node01为例…

《程序员思维修炼》速读笔记

文章目录书籍信息概览绪论从新手到专家的历程认识大脑利用右脑调试大脑主动学习积累经验控制注意力超越专家图解书籍信息 书名&#xff1a;《程序员思维修炼&#xff08;修订版&#xff09;》 作者&#xff1a;[美] Andy Hunt 概览 绪论 再提“实用”关注情境所有人都关注这…

Flutter3引用原生播放器-IOS(Swift)篇

前言由于Flutter项目中需要使用到播放器功能&#xff0c;因此对flutter中各种播放器解决方案进行了一番研究和比对&#xff0c;最后决定还是自己通过Plugin的方法去引用原生播放器符合自己的需求&#xff0c;本篇文章会对各种解决方案做一个简单的比较&#xff0c;以及讲解一下…

线材-电子线载流能力

今天来讲的是关于电子线的一个小知识&#xff0c;可能只做板子的工程师遇到此方面的问题会比较少&#xff0c;做整机的工程师则必然会遇到此方面问题&#xff0c;那就是线材问题。 下面主要说下电子线的过电流能力。&#xff08;文末有工具下载&#xff09;电子线&#xff08;h…

[11]云计算|简答题|案例分析|云交付|云部署|负载均衡器|时间戳

升级学校云系统我们学校要根据目前学生互联网在线学习、教师教学资源电子化、教学评价过程化精细化的需求&#xff0c;计划升级为云教学系统。请同学们根据学校发展实际考虑云交付模型包含哪些&#xff1f;云部署采用什么模型最合适&#xff1f;请具体说明。9月3日买电脑还是租…

@Value注解的使用(可用于配置文件)

基本概念Value&#xff1a;注入配置文件中的内容。只要是spring的注解类&#xff08;service,compotent, dao等&#xff09;中都可以。Component&#xff1a;泛指组件&#xff0c;当组件不好归类的时候&#xff0c;可以使用这个注解进行标注。AutoWired&#xff1a;自动导入依赖…

Jinja2----------模板渲染、模板访问对象属性

目录 1.Jinja2 1.简介 2.Jinja2模板 2.模板渲染 app.py templates/index.html templates/blog_detail.html 效果 3.模板访问对象属性 app.py templates/index.html 效果 1.Jinja2 1.简介 Jinja2是Python下一个被广泛应用的模版引擎&#xff0c;他的设计思想来…

二叉树的前序遍历-java两种方式-力扣144

一、题目描述给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。示例 1&#xff1a;输入&#xff1a;root [1,null,2,3]输出&#xff1a;[1,2,3]示例 2&#xff1a;输入&#xff1a;root []输出&#xff1a;[]示例 3&#xff1a;输入&#xff1a;root [1]输出…

【Linux驱动开发100问】什么是模块?如何编写和使用模块?

&#x1f947;今日学习目标&#xff1a;什么是Linux内核&#xff1f; &#x1f935;‍♂️ 创作者&#xff1a;JamesBin ⏰预计时间&#xff1a;10分钟 &#x1f389;个人主页&#xff1a;嵌入式悦翔园个人主页 &#x1f341;专栏介绍&#xff1a;Linux驱动开发100问 什么是模块…

分布式之PBFT算法

写在前面 在分布式之拜占庭问题 一文中我们分析了拜占庭问题&#xff0c;并一起看了支持拜占庭容错的口信消息性和签名消息性算法&#xff0c;但是这两种算法都有一个非常严重的问题&#xff0c;就是消息数量太多&#xff0c;通信的成本太大&#xff0c;消息数量复杂度为O(n ^…