Views
No views yet
query 文本进行意图识别,判别其意向是【问诊】or【闲聊】。1[
2 {
3 "query": "最近热门的5部电影叫什么名字",
4 "label": "nonmed"
5 },
6 {
7 "query": "关节疼痛,足痛可能是什么原因",
8 "label": "med"
9 },
10 {
11 "query": "最近出冷汗,肚子疼,恶心与呕吐,严重影响学习工作",
12 "label": "med"
13 }
14]pip install transformers datasets evaluate acceleratetransformers 库对哈工大讯飞联合实验室 (HFL) 发布的 chinese-roberta-wwm-ext 中文预训练模型进行微调。1{
2 output_dir: "output",
3 num_train_epochs: 2,
4 learning_rate: 3e-5,
5 lr_scheduler_type: "cosine",
6 per_device_train_batch_size: 16,
7 per_device_eval_batch_size: 16,
8 weight_decay: 0.01,
9 warmup_ratio: 0.02,
10 logging_steps: 0.01,
11 logging_strategy: "steps",
12 fp16: True,
13 eval_strategy: "steps",
14 eval_steps: 0.1,
15 save_strategy: 'epoch'
16}| 数据集 | 准确率 | F1分数 |
|---|---|---|
| 测试集 | 0.99 | 0.98 |
1from transformers import AutoTokenizer
2from transformers import AutoModelForSequenceClassification
3
4ID2LABEL = {0: "闲聊", 1: "问诊"}
5MODEL_NAME = 'HZhun/RoBERTa-Chinese-Med-Inquiry-Intention-Recognition-base'
6
7tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
8model = AutoModelForSequenceClassification.from_pretrained(
9 MODEL_NAME,
10 torch_dtype='auto'
11)
12
13query = '这孩子目前28岁,情绪不好时经常无征兆吐血,呼吸系统和消化系统做过多次检查,没有检查出结果,最近三天连续早晨出现吐血现象'
14
15tokenized_query = tokenizer(query, return_tensors='pt')
16tokenized_query = {k: v.to(model.device) for k, v in tokenized_query.items()}
17outputs = model(**tokenized_query)
18pred_id = outputs.logits.argmax(-1).item()
19intent = ID2LABEL[pred_id]
20print(intent)问诊1from transformers import AutoTokenizer
2from transformers import AutoModelForSequenceClassification
3
4ID2LABEL = {0: "闲聊", 1: "问诊"}
5MODEL_NAME = 'HZhun/RoBERTa-Chinese-Med-Inquiry-Intention-Recognition-base'
6
7tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, padding_side='left')
8model = AutoModelForSequenceClassification.from_pretrained(
9 MODEL_NAME,
10 torch_dtype='auto'
11)
12
13query = [
14 '胃痛,连续拉肚子好几天了,有时候半夜还呕吐',
15 '腿上的毛怎样去掉,不用任何药学和医学器械',
16 '你好,感冒咳嗽用什么药?',
17 '你觉得今天天气如何?我感觉咱可以去露营了!'
18]
19
20tokenized_query = tokenizer(query, return_tensors='pt', padding=True, truncation=True)
21tokenized_query = {k: v.to(model.device) for k, v in tokenized_query.items()}
22outputs = model(**tokenized_query)
23pred_ids = outputs.logits.argmax(-1).tolist()
24intent = [ID2LABEL[pred_id] for pred_id in pred_ids]
25print(intent)["问诊", "闲聊", "问诊", "闲聊"]