基于PaddleHub的Fine-tune讯飞医疗搜索意图识别(上)

简介: 基于PaddleHub的Fine-tune讯飞医疗搜索意图识别(上)

一、医疗搜索意图识别挑战赛简介


地址challenge.xfyun.cn/topic/info?…

随着人们的生活质量逐步提高,老百姓更加关注医疗监控问题。但现在仍然存在患者和医生比例不对等的情况,患者需要贴近生活的「智能医生」。在医疗对话和搜索中,如果能设计一个智能算法对患者的搜索或对话意图进行分类,可为后续患者分诊提供帮助。

image.png


1.赛事任务


本次赛题需要选手对患者的对话和搜索问题进行处理,识别出意图类别。案例如下:

image.png


2.评审规则


2.1 数据说明


赛题数据由训练集和测试集组成,训练集数据集读取代码:

image.png


2.2 评估指标


本次竞赛的评价标准采用准确率指标,最高分为1。

计算方法参考:scikit-learn.org/stable/modu…

评估代码参考:

image.png


2.3 评测及排行


1、赛事提供下载数据,选手在本地进行算法调试,在比赛页面提交结果。

2、每支团队每天最多提交3次。

3、排行按照得分从高到低排序,排行榜将选择团队的历史最优成绩进行排名。


2.4作品提交要求


文件格式:预测结果文件按照csv格式提交

文件大小:无要求

提交次数限制:每支队伍每天最多3次

预测结果文件详细说明:

  1. 以csv格式提交,编码为UTF-8,第一行为表头;
  2. 标签顺序需要与测试集文本保持一致;
  3. 提交前请确保预测结果的格式与sample_submit.csv中的格式一致。具体格式如下:

image.png


3.意图分析


经分析,该题目是意图识别,其实也就是句子分类。下面使用分类模型进行处理。


二、数据处理


1.解压缩


!unzip  -qoa  data/data166530/yt.zip


2.数据查看


import pandas as pd
train=pd.read_csv("yt/train.csv",sep = '\t')
train.head()
.dataframe tbody tr th:only-of-type {         vertical-align: middle;     } .dataframe tbody tr th {     vertical-align: top; } .dataframe thead th {     text-align: right; }

text label
0 治痔疮会影响上班吗,医保有报吗?外痔。有无报销。会否影响工作 多问
1 本人今年16,最近感觉睾丸多长了一块肉,不痛不痒的,是睾丸癌吗 临床表现(病症表现)
2 痔疮手术几个月后,肛门周围有长了一个,吃辣的东西就会肿起来,怎么办?是术后复发了吗? 多问
3 你好,我宝宝8kg,吃美林要吃多少啊?你好,我宝宝8kg,吃美林要吃多少啊? 用法
4 请问月经量多服用什么药? 适用症
train["text_a"]=train["text"]
train=train.drop('text',axis=1)
label_unique_list=train.label.unique()
label_list_id=[i for i in range(10)]
print(label_unique_list)
print(label_list_id)
['多问' '临床表现(病症表现)' '用法' '适用症' '定义' '病因' '治疗方法' '无法确定' '作用' '方法']
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
train=train[['label', 'text_a']]
train.head(10)
.dataframe tbody tr th:only-of-type {         vertical-align: middle;     } .dataframe tbody tr th {     vertical-align: top; } .dataframe thead th {     text-align: right; } 
label
text_a
0
多问
治痔疮会影响上班吗,医保有报吗?外痔。有无报销。会否影响工作
1
临床表现(病症表现)
本人今年16,最近感觉睾丸多长了一块肉,不痛不痒的,是睾丸癌吗
2
多问
痔疮手术几个月后,肛门周围有长了一个,吃辣的东西就会肿起来,怎么办?是术后复发了吗?
3
用法
你好,我宝宝8kg,吃美林要吃多少啊?你好,我宝宝8kg,吃美林要吃多少啊?
4
适用症
请问月经量多服用什么药?
5
定义
什么是心悸怔忡
6
病因
支气管扩张症是什么原因引起的?
7
病因
我最近总是感觉喘息不对,声音很粗重还很急促而且经常感觉胸闷咳嗽,有时甚至会呼吸困难,我很担心...
8
病因
请问尿失禁是怎么回事
9
病因
导致慢性支气管炎的原因是什么

%matplotlib inline
print(max(train['text_a'].str.len()))
print( train["label"].value_counts())
train.groupby(['label']).count().plot(kind='bar')
221
治疗方法          468
临床表现(病症表现)    313
多问            255
病因            233
适用症           223
无法确定          207
作用            124
定义            102
用法            100
方法             99
Name: label, dtype: int64
<matplotlib.axes._subplots.AxesSubplot at 0x7f2c5f0ea590>

image.png


3.数据增强


拟采用同义词替换方式进行数据增强


3.1数据增强工具包安装


pypi.org/project/nlp…nlpcda是中文数据增强工具,支持多种数据增强方法:

!pip install -q nlpcda


3.2 同义词增强


参数:

  • base_file :缺省时使用内置同义词表,你可以设定/自己指定更加丰富的同义词表:

是文本文件路径,内容形如(空格隔开):

Aa01A0 人类 生人 全人类

id2 同义词b1 同义词b2 ... 同义词bk

...

idn 同义词n1 同义词n2\

  • create_num=3 :返回最多3个增强文本
  • change_rate=0.3 : 文本改变率
  • seed : 随机种子
from nlpcda import Similarword
smw = Similarword(create_num=1, change_rate=0.3)
new_train=train
for index, row in train.iterrows():
    results=smw.replace(row['text_a'])
    for result in results:
        new_train.loc[1]=[row['label'], result]
Building prefix dict from the default dictionary ...
Loading model from cache /tmp/jieba.cache
Simbert不能正常使用,除非你安装:bert4keras、tensorflow ,为了安装快捷,没有默认安装.... No module named 'bert4keras'
Loading model cost 0.737 seconds.
Prefix dict has been built successfully.
load :/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/nlpcda/data/同义词.txt done


3.3 近义词增强


参数:

  • base_file :缺省时使用内置【同义同音字表】,你可以设定/自己指定更加丰富的同义同音字表:

是文本文件路径,内容形如(\t隔开):

de 的 地 得 德 嘚 徳 锝 脦 悳 淂 鍀 惪 恴 棏

拼音2 字b1 字b2 ... 字bk

...

拼音n 字n1 字n2\

  • create_num=3 :返回最多3个增强文本
  • change_rate=0.3 : 文本改变率
  • seed : 随机种子
from nlpcda import Homophone
smw = Homophone(create_num=1, change_rate=0.3)
for index, row in train.iterrows():
    results=smw.replace(row['text_a'])
    for result in results:
        new_train.loc[1]=[row['label'], result]
load :/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/nlpcda/data/同音意字.txt done


3.4 等价词替换


参数:

  • base_file :缺省时使用内置【等价数字字表】,你可以设定/自己指定更加丰富的等价字表(或者使用函数:add_equivalent_list):

是文本文件路径,内容形如((\t)隔开):

0 零 〇

1 一 壹 ①

...

9 九 玖 ⑨

  • create_num=3 :返回最多3个增强文本
  • change_rate=0.3 : 文本改变率
  • seed : 随机种子
from nlpcda import EquivalentChar
smw = EquivalentChar(create_num=1, change_rate=0.3)
for index, row in train.iterrows():
    results=smw.replace(row['text_a'])
    for result in results:
        new_train.loc[1]=[row['label'], result]
load :/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/nlpcda/data/等价字.txt done
# 数据增强后回复给原train
train=new_train


4.数据集划分


train_df = train.sample(frac=0.7,random_state=0,axis=0)
validation_df = train[~train.index.isin(train_df.index)]
train_df.to_csv("yt/train_ok.csv", index=None,sep="\t")
validation_df.to_csv("yt/val_ok.csv", index=None,sep="\t")
!head yt/train_ok.csv
label text_a
无法确定  不知道自己怀孕啦,我以为是吃药把胃吃坏啦才知道怀孕啦
病因  前几天便秘夜间躺下是有那种绞痛感持续几秒时间就消失了今天解了大便晚上症状消失但肚脐下方按压痛请问这和便秘有关吗
多问  我53岁已经没有例假了,是更年期的年龄吗?乌灵胶囊:用于心肾不交所致的失眠、健忘、心悸心烦、神疲乏力。能喝这个吧?
无法确定  总胆固醇不高但颈椎,用什么药治疗对身体影响小一点啊
临床表现(病症表现)  小便时痛是怎么回事,这个情况已经有一个多星期了开始时没有注意
病因  宝宝打嗝是什么原因啊?
作用  维思通是起什么作用的
临床表现(病症表现)  男人小便出血是怎么回事
无法确定  请问阴道炎对月经有没有影响?


目录
相关文章
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【Prompt Engineering提示工程技术:思维树 (ToT)、检索增强生成 (RAG)、自动推理并使用工具 (ART)】
思维树(ToT)框架,旨在解决复杂任务,通过构建一棵思维树,利用语言模型生成并评估中间步骤,结合搜索算法(如广度优先搜索)进行系统探索。ToT在不同任务中需定义思维步骤及候选数量,如“算24游戏”需三分步骤,每步评估可行性。实验表明,ToT显著优于其他提示方法。此外,ToT框架可结合强化学习不断进化,提升解决复杂问题的能力。
【Prompt Engineering提示工程技术:思维树 (ToT)、检索增强生成 (RAG)、自动推理并使用工具 (ART)】
|
3月前
|
人工智能 数据处理
AI识别检验报告 -PaddleNLP UIE-X 在医疗领域的实战
AI识别检验报告 -PaddleNLP UIE-X 在医疗领域的实战
82 0
|
3月前
|
文字识别 监控 机器人
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览
74 0
|
4月前
|
机器学习/深度学习 存储 人工智能
ACL 2024|D2LLM:将Causal LLM改造成向量搜索模型的黑科技
D2LLM:一种针对语义搜索任务的新颖方法,它结合了大语言模型(LLM)的准确性与双编码器的高效性。实验表明,D2LLM在多项任务上的性能超越了五个领先基准模型,尤其是在自然语言推理任务中,相对于最佳基准模型的提升达到了6.45%
95 1
|
人工智能 文字识别 自然语言处理
Nougat:一种用于科学文档OCR的Transformer 模型
随着人工智能领域的不断进步,其子领域,包括自然语言处理,自然语言生成,计算机视觉等,由于其广泛的用例而迅速获得了大量的普及。光学字符识别(OCR)是计算机视觉中一个成熟且被广泛研究的领域。它有许多用途,如文档数字化、手写识别和场景文本识别。数学表达式的识别是OCR在学术研究中受到广泛关注的一个领域。
274 0
|
自然语言处理 算法 API
NLP自学习平台提供了一种称为“关键词提取”的功能
NLP自学习平台提供了一种称为“关键词提取”的功能
127 1
|
机器学习/深度学习 人工智能 运维
不满足当 ChatGPT “接口侠”?轻松可视化 Fine-tuning 训练你的模型!
不满足当 ChatGPT “接口侠”?轻松可视化 Fine-tuning 训练你的模型!
570 0
|
机器学习/深度学习 存储 人工智能
7 Papers | GPT-4等大模型自己制作工具;识别ChatGPT造假
7 Papers | GPT-4等大模型自己制作工具;识别ChatGPT造假
188 0
|
人工智能 智能硬件
基于PaddleNLP的端到端智能家居对话意图识别(下)
基于PaddleNLP的端到端智能家居对话意图识别
343 0
|
自然语言处理 API 数据处理
基于PaddleNLP的端到端智能家居对话意图识别(上)
基于PaddleNLP的端到端智能家居对话意图识别
308 0