摘要:随着人们生活水平的提高和健康意识的增强,特别是新冠肺炎疫情之后公众对健康信息的需求爆发性的增长。无论是在线搜索、健康咨询还是社交媒体,公众都在积极寻求关于疾病预防、营养建议、药物使用等方面的信息。在实际应用中,许多文本分类问题都涉及多标签分类。即一个文本可能同时属于多个类别或具有多个标签。公众健康问句也不例外,一个问句可能同时涉及多个健康主题或问题,需要进行多标签分类以准确理解用户需求。近年来,深度学习技术在自然语言处理领域取得了显著进展。特别是神经网络模型,在文本分类、情感分析、问答系统等任务中表现出色,这些技术的突破为公众健康问句多标签分类实现提供了有力的技术支持,所以设计和实现一个有效的多标签分类模型对于解决这类问题具有重要意义。
本文研究了公众健康问句多标签分类模型,旨在从海量的公众健康问句文本数据中完成多标签分类的模型实现。介绍了公众健康问句多标签分类模型的构建过程。通过卷积神经网络(CNN)的模型,用收集到的医疗、卫生等关于公众健康问句的数据,实现对公众健康问题的多标签分类。本文进行了大量的实验验证,对模型的性能进行了全面的评估。实验结果表明,公众健康问句多标签分类的模型在准确率和效率上都优于传统的多标签分类方法。
关键词: 公众健康;多标签分类;CNN;TENSORFLOW;
课题研究的背景
随着人们生活水平的提高和健康意识的增强,公众对健康信息的需求日益增长。无论是在线搜索、健康咨询还是社交媒体,公众都在积极寻求关于疾病预防、营养建议、药物使用等方面的信息[1]。这些问句往往涉及多个健康主题,需要进行多标签分类以准确理解用户需求,例如“我最近经常感到头晕,是不是贫血的症状?还有,我偶尔会有心悸的情况,这跟贫血有关系吗?另外,我想知道贫血需要吃些什么食物来调理?” 这个问句同时涉及了贫血的诊断、症状关联以及饮食调理等多个健康主题或问题,因此需要采用多标签分类的方法来进行处理[2]。多标签分类模型能够识别并分类问句中涉及的所有相关主题或标签,从而为用户提供全面而准确的回答或建议。
因此,公众健康问句多标签分类的设计与实现旨在结合深度学习技术的优势,构建一个能够准确识别和理解公众健康问句中多个健康主题的模型。通过该模型,我们可以实现对公众健康问句的高效、自动分类,为健康咨询、信息推荐等后续工作提供便捷支持,进一步推动健康信息化的发展,提升公众的健康水平和生活质量[3]。通过深入研究这一课题,可以推动多标签分类技术的进一步发展,为政府、企业和个人的应用提供更加准确、可靠的支持。
课题研究目的意义
公众健康问句多标签分类的研究意义主要体现在以下几个方面:
1、它有助于提升公众健康咨询服务的效率和质量。在传统的健康咨询过程中,医生或专家通常需要花费大量时间理解和分析患者的问题,然后给出相应的建议和解答[4]。而公众健康问句多标签分类技术能够自动将问句归类到相应的健康主题下,从而帮助医生或专家更快速、更准确地理解问题,并给出针对性的回答。这不仅提高了咨询服务的效率,也提升了咨询的质量,使得公众能够获得更好的健康指导。
2、公众健康问句多标签分类有助于推动健康信息资源的整合和利用。在互联网时代,健康信息呈现出爆炸式增长,但信息的质量和可靠性却参差不齐。通过多标签分类技术,我们可以对海量的健康问句进行自动化处理,将其归类到相应的健康主题中,形成结构化的健康知识库。这不仅方便了公众查找和获取相关信息,也为健康领域的研究和实践提供了宝贵的数据支持。
3、公众健康问句多标签分类还有助于发现公众关注的健康热点和问题。通过对问句的分类和统计,我们可以了解公众在不同时间段内对不同健康主题的关注程度,进而发现公众关注的热点问题和趋势[5]。这对于制定针对性的健康宣传和教育策略,以及优化健康服务资源配置具有重要的指导意义。
4、公众健康问句多标签分类的研究还有助于推动深度学习技术在健康领域的应用和发展。通过设计和实现多标签分类模型,我们可以不断优化模型的性能,探索深度学习技术在健康信息处理中的更多可能性[6]。这不仅有助于提升公众健康服务的智能化水平,也为健康领域的技术创新和发展提供了新的思路和方法。
所以公众健康问句多标签分类的研究具有重要的理论和实践意义,它有助于提升公众健康咨询服务的效率和质量,推动健康信息资源的整合和利用,发现公众关注的健康热点和问题,以及推动深度学习技术在健康领域的应用和发展[7]。
论文的主要工作及结构
本文利用收集到的数据,首先对数据进行清洗和预处理工作,利用该数据训练构建成的卷积神经网络(CNN)模型。本文具体结构如下。
第一章是前言,介绍公众健康问句多标签分类的背景、目的、意义,并分析当前国内外公众健康问句多标签分类研究的现状,介绍本文的结构。
第二章对公众健康问句多标签分类研究所涉及到到的关键技术进行介绍,介绍了卷积神经网络、TensorFlow。
第三章数据的处理,重点叙述了公众健康问句数据的收集与预处理。
第四是模型的实现,重点介绍了卷积神经网络模型的和长短期记忆网络模型的构建。
第五章是模型指标的评估,对卷积神经网络模型通过准确度评估。
第六章是结论,对公众健康问句多标签分类课题的研究过程进行总结,展望未来的研究方向。
标签设计与标注
标签设计:在设计标签时,我们首先需要明确分类的目标和范围,确保标签能够准确反映公众健康问句的主题和内容。以下是一些可能的标签设计示例:
诊断:关于诊断的疑问,通常涵盖了探寻疾病起因、理解临床观测结果的内涵、探究疾病的判别准则以及疾病的外在展现形式等方面。此外,也可能涉及对检验检查项目的咨询,以及对特定疾病或健康状态的详细介绍等。
治疗:与治疗相关的问题,主要涵盖了对药物的用法用量、选择、适应症及效力的询问,同时也涉及对药物可能产生的副作用与不良反应的了解。此外,还包括对用药禁忌和注意事项的探讨,以及药物间相互作用的探究。
解剖学/生理学:与解剖学/生理学有关的问题,主要聚焦于对人体内部构造和运作机制的探究。这些问题涵盖了对人体各个组织器官的结构、位置、功能及其相互关系的深入了解,比如心脏如何泵血以维持血液循环,肺部如何进行气体交换以支持呼吸功能等。
流行病学:与流行病学有关的问题主要围绕疾病的分布、病因、影响及进程展开。这些问题不仅关注疾病在人群中的患病率或发病率,还深入探究疾病的根源,即病因学和病原学,试图揭示疾病发生的内在机制。
健康生活方式:与健康生活方式有关的问题,包括饮食、运动、减肥、压力和情绪管理。
择医:与择医有关的问题,包括询问医疗机构选择、医疗科室选择、医生选择等。
这些标签应该根据公众健康领域的专业知识和实际需求进行定义,确保它们既具有代表性又能覆盖广泛的健康主题。
标签标注:标签标注是将设计好的标签分配给每个问句的过程。这可以通过人工标注或自动标注的方法完成。下面以人工标注为例进行说明:
准备标注工具:选择或开发一个适合的标注工具,用于记录和管理标注结果。
标注人员培训:对参与标注的人员进行培训,确保他们熟悉标签的定义和标注规则。
开始标注:标注人员逐个浏览问句,根据问句的内容和意图为其分配相应的标签。对于多标签分类任务,一个问句可能同时属于多个类别,因此需要仔细判断并分配所有适用的标签。
例如,对于以下问句:
“病情描述:病人是典型的“三高”,想吃拜阿司匹林做为预防用药,但是出现过敏症状。曾经治疗情况和效果:以前血压就高,三年前检查出糖尿病。长期服用二甲双胍和降压药。想得到怎样的帮助:病人是典型的“三高”,想吃拜阿司匹林做为预防用药,但是出现过敏症状。请问可以用血塞通分散片替代白阿司匹林做为预防性用药,长期服用吗?另外还有其他药推荐吗?”
该问句则被标注为治疗标签
在标注过程中,标注人员应确保标注的一致性和准确性,避免主观偏见和错误。同时,可以采用交叉验证的方式,让不同的标注人员对同一批问句进行标注,以评估标注结果的可靠性和一致性。
完成标注后,我们可以得到一个带有标签的问句数据集,用于后续的特征提取、模型训练和评估。
特征提取
我选择多种方法进行特征提取。一种常用的方法是基于词袋模型的特征提取,它将问句视为一个词的集合,统计每个词在问句中出现的频率,并将这些频率作为特征。这种方法简单易行,但可能忽略了词之间的语义关系。为了捕捉词之间的语义信息,我使用词嵌入技术,如Word2Vec或GloVe。这些技术可以将每个词映射到一个高维向量空间,使得语义上相似的词在向量空间中的位置也相近。通过预训练的词嵌入模型,我将问句中的每个词转换为向量表示,进而构建出问句的向量表示。本文中通过CBOW法完成词向量生成,其中主要步骤输入层主要传递的是context word的one-hot,输出层的值为目标值为center word的one-hot,所有输入one-hot共享权重矩阵W_v×N,N 代表隐层神经元个数,自定义,V 代表one-hot编码维度,网络训练后所得的W_v×N即为词向量,如下图所示。以“谁是我们最可爱的人呢?”问句为例的词向量如下图所示。

构建卷积神经网络模型
在文本处理任务中,卷积神经网络(CNN)模型已经展现了其卓越的性能。CNN的核心部分——卷积层,在文本处理中发挥着至关重要的作用。这一层通过一组可学习的卷积核在词嵌入矩阵上进行滑动,从而有效地捕捉文本中的局部特征。接下来,我将详细介绍这一过程以及相关的开展细节。
首先,卷积层中的卷积核是一组权重矩阵,它们在词嵌入矩阵上进行滑动。这个过程类似于图像处理中的卷积操作,但在文本处理中,我处理的是一维的词嵌入矩阵,而不是二维的图像。每个卷积核在滑动过程中与词嵌入矩阵中的局部区域进行点积运算,从而提取出该区域的特征。这种局部连接的方式使得CNN能够关注到文本中的局部上下文信息,如词序、短语等。
权值共享是CNN的另一个重要特性。这意味着在整个词嵌入矩阵上,同一个卷积核使用的权重是固定的。这种设计不仅减少了模型的参数数量,降低了过拟合的风险,还使得模型能够学习到文本中不同位置的相似特征。
为了进一步增强模型的泛化能力,我在CNN模型中使用多个卷积层。每个卷积层都可以提取出不同层次的特征。较低层的卷积核可能更关注于捕捉短语的局部信息,而较高层的卷积核则能够捕捉到更广泛的上下文信息。这种层次化的特征提取方式使得模型能够更全面地理解文本内容。
在每个卷积层之后,我都会添加一个池化层。池化层的作用是对卷积层的输出进行降维,进一步减少模型的复杂度。通过取最大值、平均值等方式,池化层能够选择出最具代表性的特征,使得模型对文本长度的变化具有一定的鲁棒性。这种特性使得CNN在处理不同长度的文本时能够保持稳定的性能。
经过多个卷积和池化层的处理后,我得到了一个较小维度的特征向量。这个特征向量包含了文本的全局信息,是后续分类或回归任务的关键输入。为了将特征向量映射到最终的输出空间,我在模型的最后添加了一个全连接层。全连接层通过权重矩阵将特征向量转换为最终的分类结果或回归值。这一层可以根据具体的任务需求进行定制,例如,在文本分类任务中,我使用softmax激活函数将输出转换为概率分布。
模型的训练
在模型训练的开始阶段,我选择了一个合适的损失函数和优化算法。损失函数用于衡量模型预测值与真实值之间的差距,常用的损失函数包括交叉熵损失、均方误差等。优化算法则用于根据损失函数的梯度来调整模型的权重参数,以最小化损失函数。常用的优化算法包括梯度下降、Adam等。
接下来,进入模型的训练循环。在每个训练步骤中,首先我从训练数据集中取出一批样本,并将它们输入到CNN模型中。模型通过前向传播计算出预测值,并与真实标签进行比较,计算出损失函数的值。然后,我使用反向传播算法计算损失函数对模型参数的梯度,并使用选定的优化算法来更新这些参数。
在训练过程中,我还对模型进行正则化和防止过拟合。正则化技术可以通过在损失函数中添加额外的项来约束模型的复杂度,从而避免模型在训练数据上过拟合。而dropout技术则通过在训练过程中随机丢弃一部分神经元的输出来减少模型对特定特征的依赖,提高模型的泛化能力。
随着训练的进行,模型会逐渐学习到从文本数据中提取有用特征的能力,并在迭代过程中不断优化其参数以减小损失函数的值。我通过观察损失函数的变化和验证集上的性能来评估模型的训练效果。如果损失函数在训练过程中逐渐下降,并且在验证集上的性能稳定或有所提升,那么说明模型的训练是有效的。
模型的训练实现,(1)通过Embedding()方法完成词嵌入层处理,其中设置的参数包括词的个数,输出的纬度,本文中输出的关键词的个数定为100,以及本文问句的长度,通过计算得到问句长度均值为30,所以本文选择30,同时通过参数weights加载词向量矩阵。其中模型构建中基本的词嵌入层处理关键代码如下。
model_input = Input(shape=(max_len,))
x = Embedding(input_dim=embedding_matrix.shape[0], # 输入的词个数
output_dim=100, # 输出维度
input_length=max_len, # 句子长度
trainable=False,
weights=[embedding_matrix] # 词向量矩阵
)(model_input)
(2)构建textCNN模型框架,因为文本公众健康问句多标签分类识别模型采用卷积神经网络模型中的一纬网络模型,所以首先使用Conv1D()来申明模型,设置公众健康问句多标签分类识别模型的学习率是0.001,多标签分类用sigmoid函数,输出的几个数量是6。其关键代码如下。
在公众健康问句多标签分类评估中,准确率(Accuracy)是一个关键指标,用于衡量模型正确分类样本的能力。准确率是正确分类的样本数与总样本数之比。
具体计算步骤如下:
混淆矩阵的构建:首先,我们需要构建一个混淆矩阵(Confusion Matrix),它是一个表格,用于记录模型对各个类别的分类结果。混淆矩阵的行通常代表实际的分类标签(真实值),列代表模型预测的分类标签(预测值)。其中公众健康问句多标签分类模型的6个混淆矩阵如下图所示。

准确率的计算:有了混淆矩阵后,准确率的计算公式为:
准确率 = (TP + TN) / 总样本数
其中,总样本数是混淆矩阵中所有单元格的和。准确率表示在所有样本中,模型正确分类的比例。
从给出的公众健康问句多标签分类模型的准确率来看,不同类别的分类效果确实存在显著差异。以下是对各分类准确率的分析:
诊断类模型:准确率为0.8811,这是相当高的准确率,表明该模型在识别与诊断相关的公众健康问句方面表现良好。这可能是因为与诊断相关的问句通常具有较为明显的特征和模式,使得模型能够较为准确地识别并分类。
治疗类模型:准确率为0.8686,同样表现出较高的分类性能。治疗类问题往往涉及到药物的用法、副作用、治疗方案等具体信息,这些信息在文本中通常有明显的体现,因此模型能够较好地进行分类。
解剖学/生理学类模型:准确率为0.4999,这是所有分类中最低的。如你所述,这主要是由于数据不均衡问题导致的。在5000条数据中不存在该分类的数据,使得模型无法有效学习该类别的特征,从而导致分类效果不佳。为了解决这个问题,可以考虑增加该类别的数据,或者采用数据增强技术来生成更多的解剖学/生理学类问题。
流行病学类模型:准确率为0.6627,虽然不算特别高,但也显示出一定的分类能力。流行病学问题涉及到疾病的传播、影响、预防等方面,可能需要更多的上下文信息才能准确分类,因此模型在这方面的表现还有待提升。
健康生活方式类模型:准确率为0.809,表现出较好的分类性能。健康生活方式类问题通常涉及到饮食、运动、睡眠等方面的建议,这些建议在文本中往往有明显的体现,使得模型能够较为准确地识别并分类。
择医类模型:准确率为0.58153,相对较低。择医类问题可能涉及到医生的专业领域、经验、服务态度等多个方面,这些信息在文本中可能较为隐晦或多样,导致模型难以准确分类。为了提高该类别的分类准确率,可以考虑增加更多的相关数据,并优化模型的特征提取和分类算法。
综上所述,本次训练的公众健康问句多标签分类模型在诊断、治疗、健康生活方式等分类上表现较好,但在解剖学/生理学、流行病学和择医等分类上还存在一定的提升空间。为了进一步提高模型的分类性能,可以考虑优化模型结构、调整参数设置、增加相关数据等方法。同时,对于数据不均衡问题,可以采用数据增强或重采样等技术来解决。
996

被折叠的 条评论
为什么被折叠?



