人工智能技术加速了互联网医疗发展,患者在线问诊逐渐成为新趋势。然而大多数患者自身医学知识匮乏,往往出现挂错科室的情况。因此,患者咨询文本分类对于引导患者线上选择就诊科室显得十分重要。本文提出一种结合卷积循环神经网络与OvR策略的文本多分类方法,既可以捕捉文本局部特征,又可以学习词序信息。本文爬取了39问答网上的患者咨询文本作为数据源,对所提方法进行了验证,并与已有的分类算法作对比,结果表明所提方法在精度、召回率、F1值及准确率指标上具有更优越的算法性能。其中,相较于其他SOTA的文本分类模型,TextCRNN-OvR在文本分类精度上取得了1%~4%不同程度上的提高,这进一步说明了TextCRNN在提取文本特征方面以及本文OvR多分类策略的有效性。 The development of Internet medical treatment has been accelerated by artificial intelligence technology, then online patient consultation is becoming a new trend. However, most patients often choose the wrong department due to a lack of adequate medical expertise. Therefore, the classification of patient consultation text is very important for guiding patients to choose departments online. This paper proposes a text multiple classification method combining the convolutional recurrent neural network and OvR strategy, which can capture local features of text but also learn word order information. In this paper, the proposed method is verified by crawling the patient consultation text on 39ask.com as the data source. Compared with existing classification algorithms, the results show that the proposed method has better performance in terms of precision, recall rate, F1score and accuracy. Among them, compared with other SOTA text classification models, TextCRNN-OvR has improved the accuracy of text classification by 1% to 4% to varying degrees, which further illustrates the advantages of TextCRNN in extracting text features and the effectiveness of the OvR multi-classification strategy in this paper.
人工智能技术加速了互联网医疗发展,患者在线问诊逐渐成为新趋势。然而大多数患者自身医学知识匮乏,往往出现挂错科室的情况。因此,患者咨询文本分类对于引导患者线上选择就诊科室显得十分重要。本文提出一种结合卷积循环神经网络与OvR策略的文本多分类方法,既可以捕捉文本局部特征,又可以学习词序信息。本文爬取了39问答网上的患者咨询文本作为数据源,对所提方法进行了验证,并与已有的分类算法作对比,结果表明所提方法在精度、召回率、 F 1 值及准确率指标上具有更优越的算法性能。其中,相较于其他SOTA的文本分类模型,TextCRNN-OvR在文本分类精度上取得了1%~4%不同程度上的提高,这进一步说明了TextCRNN在提取文本特征方面以及本文OvR多分类策略的有效性。
在线问诊,深度学习,TextCRNN模型,OvR策略,文本多分类
Yuanfang Zhang
Business School, Jiangnan University, Wuxi Jiangsu
Received: Mar. 24th, 2023; accepted: Apr. 20th, 2023; published: Apr. 27th, 2023
The development of Internet medical treatment has been accelerated by artificial intelligence technology, then online patient consultation is becoming a new trend. However, most patients often choose the wrong department due to a lack of adequate medical expertise. Therefore, the classification of patient consultation text is very important for guiding patients to choose departments online. This paper proposes a text multiple classification method combining the convolutional recurrent neural network and OvR strategy, which can capture local features of text but also learn word order information. In this paper, the proposed method is verified by crawling the patient consultation text on 39ask.com as the data source. Compared with existing classification algorithms, the results show that the proposed method has better performance in terms of precision, recall rate, F1score and accuracy. Among them, compared with other SOTA text classification models, TextCRNN-OvR has improved the accuracy of text classification by 1% to 4% to varying degrees, which further illustrates the advantages of TextCRNN in extracting text features and the effectiveness of the OvR multi-classification strategy in this paper.
Keywords:Online Inquiry, Deep Learning, TextCRNN Model, OvR Strategy, Text Multiclassification
Copyright © 2023 by author(s) and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
近年来,各大医疗平台线上问诊人数持续增加。然而大部分患者在咨询时由于自身医疗专业知识的匮乏以及对自身症状的模糊认识,往往不能选择正确的科室向医生提问 [
近年来,深度学习算法在计算机视觉、语音识别等领域得到广泛应用,许多学者也开始逐渐将其转移到自然语言处理领域中,并同样取得了较好的结果 [
本文提出了将TextCRNN模型与OvR策略结合的文本分类方法,并爬取39问答网上的患者咨询文本作为实验数据与其他常见深度学习模型进行对比,结果表明本文所提方法取得了更为精准的分类结果,对促进智能分诊、实现精准导医具有理论指导意义。
随着深度学习技术的发展,文本分类的研究趋势逐渐由基于传统机器学习模型的算法转向基于深度学习模型的算法上,一般主要有基于TextCNN模型和基于TextRNN模型的文本分类方法。
在基于TextCNN模型的文本分类任务上,Kim [
在基于TextRNN模型的文本分类任务上,许多学者使用长短期记忆网络(Long Short-Term Memory, LSTM)和门控循环单元(Gated Recurrent Unit, GRU)居多,两者均是特殊的RNN模型。有学者尝试将CNN模型与RNN模型结合,而Xiao等人 [
回顾以往的相关研究,可以看出TextCNN与TextRNN模型在文本分类问题上得到了广泛应用与发展,有效避免了复杂的文本特征工程,简化了传统文本分类方法的繁杂文本预处理工作,且具有比传统方法更优越的算法性能。因此本文考虑结合TextCRNN模型及OvR策略运用到患者咨询文本分类任务上,可以同时兼顾两类深度学习模型的优势,从而降低模型预处理成本且可以进一步提升模型分类精确程度。
TextCRNN模型结合了CNN在捕获空间和时间结构信息的局部相关性的优点,以及RNN在捕获任意长度的序列结构信息的长期依赖关系的优点,从而在许多文本分类任务中均获得较高的分类效果 [
卷积层主要先对初始数据作卷积运算从而降低模型复杂度。假设文本数据中经过预处理的特征词向量为 a i ∈ T d ,表示第i个特征词的d维向量,则长度为n的句子可表示为
A 1 : n = a 1 ⊕ a 2 ⊕ ⋯ ⊕ a n (1)
其中, ⊕ 为拼接操作,若干个词向量 a k , a k + 1 , ⋯ , a k + l 拼接而成的句子可表示为 A k : k + l 。假设卷积核为 ω ∈ T h × d ,其中h为卷积核的宽度,表示每次捕捉h个词进行计算。当输入含h个词的句子 A k : k + h − 1 时,经过卷积运算后产生一个新的特征,可表示为
c k = f ( ω ⊗ A k : k + h − 1 + b ) (2)
其中, ⊗ 为卷积操作,b表示偏置量, f ( x ) 为非线性激活函数,常用的激活函数为修正线性单元(Rectified Linear Unit, ReLU),可表示为
f ( x i ) = { x i , if x i i > 0 0 , if x i ≤ 0 (3)
在实际模型训练中,句子 A k : k + h − 1 不同个数相邻词组成的短句之间特征不同,将宽度为h的卷积核去捕捉该句子所有可能组成的短句,从而可获得特征向量为
C = [ c 1 , c 2 , ⋯ , c k ] (4)
在实际模型训练中,通常采用若干不同卷积核进行卷积操作,随后进行池化运算,从而可得到每个特征向量中的最重要特征值。
假设采取了J个卷积核进行卷积运算,对结果进行最大池化即 C ¯ = max { C } ,再将池化后的结果进行拼接运算,即可得到
C _ M = [ C 1 ¯ , C 2 ¯ , ⋯ , C J ¯ ] (5)
RNN层通常由LSTM层或者GRU层组成。LSTM模型是一个记忆存储单元,主要包括三组门单元:输入门、遗忘门和输出门。通过自身门控状态控制传输状态,有选择性的记忆重要信息,从而很好的解决文本分类任务中常见的长期依赖问题 [
然而单向的LSTM和GRU模型不能很好地利用文本数据中上下文信息,从而有学者提出相应的BiLSTM模型 [
i n p u t t = f ( W i ⊗ [ p t − 1 , q t ] + b i ) (6)
f o r g e t t = f ( W f ⊗ [ p t − 1 , q t ] + b f ) (7)
o u t p u t t = f ( W o ⊗ [ p t − 1 , q t ] + b o ) (8)
p t = o u t p u t t × tanh ( S t ) (9)
S t ¯ = tanh ( W S ⊗ [ p t − 1 , q t ] + b S ) (10)
S t = f o r g e t t × S t − 1 + i n p u t t × S t ¯ (11)
其中, i n p u t t 为输入门函数, f o r g e t t 为遗忘门函数, o u t p u t t 为输出门函数, W i , W f , W o , W S 分别表示三个门函数及状态更新的权重, b i , b f , b o , b S 则分别为其对应的偏置量。 p t 表示t时刻LSTM层隐藏状态的更新信息, q t 为前面池化层输出的特征向量。 S t ¯ 表示t时刻输入的候选信息, S t 表示t时刻记忆单元状态。池化层输出结果经过双向BiLSTM层后得到具有前、后向特征的文本特征向量,随后通过全连接层进行再次拼接得到新的特征向量。其中通过的全连接层进行的运算实际上为作卷积核大小为上层特征大小的卷积运算。为提升模型泛化效果,我们在全连接层之后再加入Dropout层,该层以一定概率值随机减少中间特征的数量 [
在经过Dropout层后,将得到的特征向量输入最后的Softmax层进行类别预测。假设输入特征向量为 C _ M _ B ,文本样例数为m,文本类别数为n,Softmax层将输出各类别的预测概率值
P = Softmax ( ω ⊗ ( C _ M _ B ⊙ r ) + b ) (12)
其中 ⊙ 表示按元素的乘法运算,r是掩盖向量。Softmax函数使得该层所有输出概率值和为1。
在文本分类模型训练时,通常使用类别交叉熵(Categorical Cross Entropy)作为损失函数,为了防止结果过拟合,我们通常加入正则项,因而该函数定义为
l o s s c a t e g o r y = ∑ m ∑ n T m n log Y m n + λ ‖ ϕ ‖ 2 (13)
其中, T m n 表示样例的真实类别, Y m n 表示样例的预测类别, λ 为正则项的系数, ϕ 为模型的参数集合。
本文选取多分类任务中常使用的OvR策略,该策略主要思路为在训练时每次将某个类别的样例作为正例,所有其他类别的作为反例,在测试时如果仅有一个分类器判断为正例,则对应分类器类别标记为最终结果,如果多个分类器预测为正例,则考虑各个分类器的预测概率值,选择概率值较大的类别标记为最终结果。
本文构建了基于OvR策略的TextCRNN文本分类模型,主要分为文本预处理阶段、TextCRNN分类器构建阶段与分类器预测结果确定阶段,模型框架如图1所示。
首先,将文本数据进行简单的预处理,通过删去重复值、去标点等无关符号、分词、去停用词得到预处理文本,再通过随机初始化得到文本的词向量矩阵。即可作为后面TextCRNN模型的输入;其次,在单个TextCRNN模型分类器训练阶段,先令文本词向量矩阵通过CNN层,再通过RNN层。由于双向LSTM模型在文本分类任务上效果普遍优于双向GRU模型 [
图1. 基于TextCRNN-OvR的文本分类模型框架
本文所提模模型实现过程可根据上述框架也分为相应的三个阶段。模型输入为带类别标签的文本,输出为用于文本分类可视化的混淆矩阵,为后续模型评价作参考。模型核心算法伪代码如下:
本文的实验数据来源于“39问医生”网站(http://ask.39.net/),“39问医生”平台有超过14万名医生注册,收录了超过28,017万条患者咨询信息。图2为血液科的患者历史提问界面。
图2. “39问医生”网站患者历史提问界面
我们基于Python语言编写爬虫代码爬取该网站上6个常见科室(内科、外科、儿科、男科、妇产科、传染病科)的患者咨询问题数据。“39问医生”网站上每页共32个患者提问,6个科室共爬取8400页,共计268,800条提问。首先我们对数据进行简单的筛选,通过删除文本字数在5以下以及重复提问等的患者提问,最终剩余248,991条提问用于后续研究。各科室的提问示例与数量如表1所示。
科室 | 提问示例 | 提问条数 |
---|---|---|
内科 | 吃东西下咽到胸口正中间的时候感觉疼痛,是怎么回事? | 38,904 |
外科 | 腰闪了,行动困难,用红外线理疗灯可以帮助恢复吗? | 44,397 |
儿科 | 婴儿七个月,吐奶带有好多血丝,是什么原因? | 46,685 |
男科 | 前列腺钙化和增生有什么区别,饮食需要注意什么? | 41,836 |
妇产科 | 慢性盆腔炎肚子疼痛难忍,怎样才能缓解疼痛? | 35,086 |
传染病科 | 之前得过单纯疱疹,现在身上又起红点怎么回事? | 42,083 |
总计 | 248,991 |
表1. 实验数据集
其中,我们通过对患者提问字数进行统计分析,如图3所示。在248,991条提问中,大部分提问字数基本在20左右。本文将各个科室的数据集随机打乱,选取各科室80%提问文本作为训练集,20%作为测试集。为减少实验结果的随机性,本文重复数据集选取过程20次,每次选取过程确保随机性,最终取实验结果的平均值来评价所提新模型的分类效果以及与其他已有模型的对比。
图3. 患者提问字数频率统计图
对于分类问题,可以根据测试集样本上的真实类别与分类器预测的类别的组合分为真正例(True Positive, TP)、真反例(True Negative, TN)、假正例(False Positive, FP)和假反例(False Negative, FN)。我们用Num_TP、Num_TN、Num_FP和Num_FN分别表示以上4种组合的样例数,从而可以定义分类问题中评价分类效果常用的评价指标:精度(Precision)、召回率(Recall)和 F 1 值( F 1 - S c o r e )。三者的计算公式如下:
P r e c i s i o n = N u m _ T P / ( N u m _ T P + N u m _ F P ) (14)
R e c a l l = N u m _ T P / ( N u m _ T P + N u m _ F N ) (15)
F 1 - S c o r e = 2 × P r e c i s i o n × R e c a l l / ( P r e c i s i o n + R e c a l l ) (16)
从上述三个公式不难看出,精度表示真实类别为正例的样例占所有被预测为正例样例的比率,召回率表示真实正例占所有真实类别为正例样例中预测准确的比率,二者相互联系又相互约束。 F 1 值则是综合考虑了精度和召回率的评价指标。除了上面三个常用的评价指标外,还有一个最直观的指标准确率(Accuracy),它表示分类中预测正确的样例数占总样例的比率,计算公式如下:
A c c u r a c y = ( N u m _ T P + N u m _ T N ) / ( N u m _ T P + N u m _ T N + N u m _ F P + N u m _ F N ) (17)
分析式(14)~式(17),可知4个评价指标的取值范围都在[0,1],我们希望上述四个指标值越大越好,即表示分类效果越好。
本文基于TensorFlow实现框架构建TextCRNN模型,训练文本最大长度设置为70,模型Embedding层采用的词向量维度取300。模型卷积层批处理尺寸取256,卷积核尺寸设置为2,3,4,5,各个卷积层的卷积核数量设置为300。Dropout层参数(随机失活概率值)设置为0.5。损失函数采用对数损失函数(Categorical Crossentropy),优化算法采用Adam算法,其中,Adam算法的步长 ε 取10−3,矩估计的指数衰减速率 ρ 1 和 ρ 2 分别取0.9和0.999,用于数值稳定的小常数 δ 取10−8[
实验运行环境为:CPU型号为i5-10210U,主频2.1 GHz,内存为8 GB,GPU型号为MX250,操作系统为Windows10,Python版本为3.5,运行软件为PyCharm。
为更好验证模型的有效性,本文选取了其他常见的深度学习方法(FastText、TextCNN、TextRNN (BiLSTM)、TextRNN (BiGRU)、TextRCNN)作对比实验。
图4. 文本分类模型评价指标图
本文将新提的TextCRNN-OvR模型与其他深度学习模型进行对比,模型在精度、召回率、 F 1 值上的实验结果如图4所示。从图中可以看出,所提新模型在三个评价指标上均达到80%以上,相比已有其他模型都有明显提高。各个模型在准确率上的实验结果如表2所示,从表中可以看出TextCRNN-OvR模型的文本分类准确率达到了80.63%,相比其他模型也得到了较大提高。
模型 | 准确率 |
---|---|
TextCRNN-OvR | 80.63% |
FastText | 76.87% |
TextRCNN | 78.59% |
TextCRNN | 79.55% |
TextRNN (BiLSTM) | 77.08% |
TextRNN (BiGRU) | 76.45% |
TextCNN | 77.49% |
表2. 文本分类模型准确率实验结果
本文将深度学习模型应用到患者咨询文本分类问题中,从而可以根据患者的咨询问题为其推荐准确的科室。本文主要研究结果有:1) 构建了一个结合TextCRNN模型与OvR策略的分类模型,该模型不仅具有CNN模型在挖掘文本局部特征上的优势,以及RNN模型在获取文本前后时序关系上的优势,且可以通过OvR策略进一步提高分类效果;2) 本文所提的TextCRNN-OvR模型在患者咨询文本分类任务中相比于其他深度学习模型在精度、召回率、 F 1 值和准确率上均得到了明显提高,首先,相较于其他SOTA的文本分类模型,TextCRNN的分类准确率是最高的,这说明TextCRNN在提取文本特征方面是很有效的,同时相比于其他模型,TextCRNN-OvR在分类精度上取得了1%~4%不同程度上的提高,这说明了本文OvR多分类策略的有效性;3) 本文所提患者咨询文本分类模型可为互联网医疗智能分诊、精准导医提供决策支持,对于落实分级诊疗也具有重要的意义。
在本文的研究中,我们对爬取到的文本没有进行深入预处理,只是简单的分词去停,以后的研究工作中可考虑引入基于Word2Vec或Bert的词嵌入模型。另外,由于咨询文本普遍较短,如何从海量短文本中提取特征也是未来值得研究的工作重点。
张远芳. 基于TextCRNN-OvR的患者咨询文本分类方法Patient Consultation Text Classification Method Based on TextCRNN-OvR[J]. 运筹与模糊学, 2023, 13(02): 1166-1175. https://doi.org/10.12677/ORF.2023.132120
https://doi.org/10.1016/j.ipm.2019.02.018
https://doi.org/10.3115/v1/D14-1181
https://doi.org/10.3115/v1/P14-1062
https://doi.org/10.2991/ijcis.d.200316.001
https://doi.org/10.1162/neco.1997.9.8.1735
https://doi.org/10.3115/v1/D14-1179
https://doi.org/10.1109/ACCESS.2020.2969473
https://doi.org/10.1016/j.ins.2016.08.077