任务需求:将NER处理后的药品适应症进行加工,使其更加结构化
数据如下:
药品名称对应的适应症没有被一一分开,这样的数据噪声还是很大。
处理代码:
import pandas as pd
import re
#读入数据
df_01 = pd.read_excel('实体识别结果_0405.xlsx')
df_01.head()
基于正则分割:
#定义正则分隔符
pattern = '●|•|〇|·|;|/| |\?|、|,|?|\\|。|;|;|\*|2:|1.|2.|﹑'
#创建一个空列表,将分割结果装进列表
lis = []
for i in df_01.values:
if pd.isnull(i[1]):#排除非零,这里有很多写法,也可以if i[1]:进行判断,非0进行如下操作
continue
shi = re.split(pattern=pattern , string=i[1])#适应症分割
for j in shi:
if j:
lis.append([i[0],j])
#列表转化为dataframe
df_02 = pd.DataFrame(lis,columns = ["药名","适应症"])
df_02.head()
保存结果:
df_02.to_excel('适应症_2022.xlsx')
总结:适应症的结构化是合理用药审核的必要阶段,也是药品知识图谱构建的必要步骤,正则的应用起到了关键左右,简单而又重要!