基于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岁已经没有例假了,是更年期的年龄吗?乌灵胶囊:用于心肾不交所致的失眠、健忘、心悸心烦、神疲乏力。能喝这个吧?
无法确定  总胆固醇不高但颈椎,用什么药治疗对身体影响小一点啊
临床表现(病症表现)  小便时痛是怎么回事,这个情况已经有一个多星期了开始时没有注意
病因  宝宝打嗝是什么原因啊?
作用  维思通是起什么作用的
临床表现(病症表现)  男人小便出血是怎么回事
无法确定  请问阴道炎对月经有没有影响?


目录
相关文章
|
3月前
|
人工智能 算法 数据可视化
AI Earth ——开发者模式案例6:决策树模型实现冬小麦提取
AI Earth ——开发者模式案例6:决策树模型实现冬小麦提取
38 2
|
6月前
|
传感器 机器学习/深度学习 编解码
智能驾驶--语义分割 公开数据集 汇总
本文整理了10个质量较好,数据集较大,比较新的,图像语义分割的公开数据集;主要服务于智能驾驶方向(辅助驾驶、自动驾驶等)。
167 0
|
2月前
|
人工智能 自然语言处理 搜索推荐
Jina AI新模型使搜索准确性提升20%
【2月更文挑战第17天】Jina AI新模型使搜索准确性提升20%
61 2
Jina AI新模型使搜索准确性提升20%
|
5月前
|
机器学习/深度学习 人工智能 JSON
极智AI | labelme标注与处理分割数据方法
大家好,我是极智视界。本文详细介绍了 labelme 标注与处理分割数据的方法。
63 0
|
10月前
|
人工智能
AI Stable Diffusion Prompt参数【二】之 生成效果查验
AI Stable Diffusion Prompt参数【二】之 生成效果查验
|
11月前
|
机器学习/深度学习 存储 人工智能
7 Papers | GPT-4等大模型自己制作工具;识别ChatGPT造假
7 Papers | GPT-4等大模型自己制作工具;识别ChatGPT造假
146 0
|
11月前
|
人工智能 JSON 机器人
NDD(notepad--)的AI机器人插件制作过程
NDD(notepad--)的AI机器人插件制作过程
|
12月前
|
自然语言处理 API 数据处理
基于PaddleNLP的端到端智能家居对话意图识别(上)
基于PaddleNLP的端到端智能家居对话意图识别
209 0
|
12月前
|
人工智能 智能硬件
基于PaddleNLP的端到端智能家居对话意图识别(下)
基于PaddleNLP的端到端智能家居对话意图识别
273 0
|
12月前
|
机器学习/深度学习 人工智能 自然语言处理
7 Papers & Radios | AI绘画引入人类反馈;微软多模态ChatGPT?
7 Papers & Radios | AI绘画引入人类反馈;微软多模态ChatGPT?