融合推文信息和行为特征的社交网络用户抑郁症检测方法转让专利

申请号 : CN202310045687.X

文献号 : CN115935075B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王李冬曹世华胡克用李文娟安康

申请人 : 杭州师范大学钱江学院

摘要 :

本发明公开了一种融合推文信息和行为特征的社交网络用户抑郁症检测方法。首先从新浪微博数据库爬取用户数据集并进行文本清洗,通过手动标注生成抑郁用户数据集和非抑郁用户数据集;然后融合多通道CNN和基于注意力机制的BiGRU对用户每条推文的情感倾向进行分析,过滤掉部分正向情感推文,形成用户历史文本;其次提取用户的发帖时间、转发行为和图像发布行为等特征构成用户行为特征向量;最后搭建融合用户历史文本和用户行为的抑郁检测模型,利用Adam优化方法对检测模型进行训练,训练结束后利用模型对待检测用户进行检测。本发明能有效融合用户推文信息和用户行为特征进行用户的抑郁状态自动检测,具有检测成本低、操作方便等特点。

权利要求 :

1.融合推文信息和行为特征的社交网络用户抑郁症检测方法,其特征在于包括如下步骤:步骤1、从新浪微博数据库爬取用户数据集并进行文本清洗,通过手动标注生成抑郁用户数据集和非抑郁用户数据集;

步骤2、融合多通道CNN和基于注意力机制的BiGRU对用户每条推文的情感倾向进行分析,获得用户推文的情感倾向概率值;从每个用户的历史推文中,随机移除一定比例p的正情感倾向推文,将剩下的推文拼接成用户历史文本T;

步骤3、提取用户的发帖时间、转发行为和图像发布行为的特征构成用户行为特征向量;

步骤4、搭建融合用户历史文本T和用户行为特征向量的抑郁检测模型,将T输入BiGRU层和前馈注意力层得到每个用户历史文本的特征向量,融合用户历史文本的特征向量和用户行为特征向量,后输入到全连接层和softmax层;

步骤5、利用Adam优化方法对抑郁检测模型进行训练,训练完后用测试集对用户的抑郁状态进行检测;

步骤1具体实现如下:

1‑1.从新浪微博上收集候选抑郁用户数据集;随机选择几个与抑郁相关话题,然后从每个相关话题中爬取候选抑郁用户;爬取的这些候选抑郁用户的历史数据,包括历史推文、发布时间、是否为转发推文、是否发布图像信息;

1‑2.针对候选抑郁用户数据集,选择在其推文中提到抑郁症诊断病史的用户,设定为抑郁用户;此外,如果用户的推文中包含抑郁领域相关的症状词包括“自杀”、“抑郁”,以及一些相关的治疗药物包括“舍曲林”、“氟西汀”,同样设定为抑郁用户;

1‑3.从抑郁非相关主题中随机选取用户,并爬取这些用户的历史数据,包括历史推文、发布时间、是否为转发推文、是否发布图像信息,构成非抑郁用户数据集;

1‑4.针对每个用户的文本数据,通过分词和数据过滤进行文本数据的清洗;使用“Jieba”分词包进行文本分词;数据过滤主要是去除“#”主题、URL信息、不规则字符、停用词,以及官方账号用户,并将表情符号转化成文本信息;

步骤2具体实现如下:

2‑1.利用大规模中文Wikipedia数据集预训练CBOW模型,以此得到中文词的嵌入向量;

n×d

将每个用户的历史推文ti经过CBOW模型后用一个矩阵S∈R 来表示,其中n表示推文中词的个数,d表示每个词的嵌入向量维度;

2‑2.将矩阵S输入到多通道CNN中,多通道CNN包含卷积层和池化层;在卷积层中,假定h×d卷积核W∈R ,h={2,3,4}为卷积核的大小,通过卷积核W获得特征向量a=[a0,a1,...,n‑h+1an‑h]∈R ,aj=σ(W·Si:i+h‑1+b);其中,σ表示非线性函数,b代表偏置项,Si:i+h‑1表示矩阵S的第i行到第i+h‑1行;池化层中:将不同卷积核下的卷积层的输出输入到池化层,提取出固定维数下最重要的特征O;

2‑3.将每个推文输入到基于注意力的BiGRU模型中;将第一层设计为具有正向GRU和后向GRU结构的BiGRU层;第一层中,来自两个方向的隐藏层的输出被连接为BiGRU层的最终输出;将第二层设计为前馈(feed‑forward)注意层,以获得一个具有固定长度的表示向量:ci=tanh(Wihi+bi)

1×d

其中,hi表示单词si在BiGRU层的输出向量,ci表示全连接层的输出,Wi∈R 和bi∈R是注意力计算过程中的权重和偏置,h代表注意力层的输出,αi代表单词si的注意力分配系数;

2‑4.将步骤2‑2的输出的特征O和步骤2‑3注意力层的输出h进行拼接得到向量V=[O,h];将V输入到全连接层中,并在全连接层后加入dropout层以防止过拟合;在dropout层之后设计softmax层,输出得到用户特定推文ti的正负情感倾向概率值p(yi='positive')和p(yi='negative');p(yi='positive')代表推文为正向情感倾向的概率值,p(yi='negative')代表推文为负向情感倾向的概率值;

2‑5.利用Adam优化器对模型进行训练;

2‑6.从每个用户的历史推文中,随机移除一定比例p的正情感推文,将剩下的推文拼接成历史文本T;

步骤3具体实现如下:

3‑1.为了提取某用户的发布时间特征,提取每个用户一周内每小时发布的推文比例;

根据特定某小时发布的推文数计算其比例 一天内的推文

发布时间可以形成24维特征,一周内的推文形成168维的发布时间特征,记为ft;

3‑2.为了提取某用户的转发行为特征,提取某用户前150条历史推文的转发标签作为转发行为特征向量;若某推文转发自其他人的推文,则转发标签设定为1,否则为0;如果某个用户的历史推文少于150条,则用1填充向量;生成的用户转发行为特征向量记为fr;

3‑3.为了提取用户的图像发布特征,提取某用户前150条历史推文的图像发布标签组成特征向量;若用户发布的某推文含有图像信息,则图像发布标签设定为1,否则为0;如果某个用户的历史推文少于150条,则用0填充向量;生成的图像发布特征向量记为fg;

3‑4.由于不同特征的取值范围不同,将特征ft通过min‑max归一化方法归一化到[0,1],得到f't,再将f't、fr和fg特征向量进行拼接得到f;f为用户的行为特征向量,维度为468;

所述步骤4具体实现如下:

4‑1.利用步骤2‑1训练得到的CBOW模型,获得某用户历史文本T中每个词的嵌入向量,m×d形成历史推文序列S'∈R ,其中m表示历史推文序列中词的总个数,d表示每个词的嵌入向量维度,d=300;

4‑2.将每个用户的历史推文序列S'输入基于注意力的BiGRU模型中;将第一层设计为具有正向GRU和后向GRU结构的BiGRU层;在这一层中,来自两个方向的隐藏层的输出被连接为BiGRU的最终输出;将第二层设计为前馈注意层,以获得一个具有固定长度的表示向量:ci'=tanh(Wi'hi'+bi')

其中,hi'表示历史推文序列S'中的单词s'i在BiGRU的输出向量,ci'表示全连接层的输

1×d

出,Wi'∈R 和bi'∈R是注意力计算过程中的权重和偏置,αi'代表词汇si'的注意力分配系数,h'代表注意力层的输出,即用户历史文本的特征向量;

4‑3.将用户历史文本的特征向量h'和用户行为特征向量f进行拼接,输入到全连接层中,之后设计sigmoid层,输出得到用户的抑郁概率值其中, 表示全连接层的输出,Wf和bf代表权重和偏置,并定义交叉熵损失函数为:其中,K代表训练集的个数。

2.根据权利要求1所述的融合推文信息和行为特征的社交网络用户抑郁症检测方法,其特征在于所述步骤3具体实现如下:抑郁检测模型训练完后,将测试集输入抑郁检测模型,过滤一定比例p的正情感推文,然后将每个用户剩下的推文组成用户的历史推文,并根据步骤3提取用户的行为特征向量,将两者输入到训练好的抑郁检测模型中,输出某用户患有抑郁症的概率值。

说明书 :

融合推文信息和行为特征的社交网络用户抑郁症检测方法

技术领域

[0001] 本发明涉及抑郁症自动检测领域,具体为基于推文信息和用户行为特征的社交网络用户抑郁症的检测技术。

背景技术

[0002] 作为一种较严重的情绪障碍疾病,抑郁症会影响患者的身心健康。据世界卫生组织统计,全球抑郁症患者高达3.22亿。对抑郁症患者的准确诊断是治疗的前提,但抑郁症患者必须主动与心理健康专业人员联系并主动就医,才能有机会得到诊断。然而,由于大多数人缺乏医学知识,没有意识到疾病的风险,或出于心里羞愧等因素,使得超过70%的早期抑郁症患者并无受到有效治疗。因此,急需一种无需面诊的抑郁症自动筛查技术,挖掘出潜在的抑郁症患者,通过自动预警或者为相应的医疗机构提供辅助诊断等方式降低抑郁症给人们和社会带来的危害。
[0003] 当前抑郁症的自动检测方法主要是使用语音或者视频特征来实现,如Srimadhur等人提出基于光谱程序的卷积神经网络对语音信号进行处理,基于该方法可以获得约60%的准确率。Negi等人利用声音的高低、音调和节奏等属性,建立抑郁症检测模型。Melo等人能够在人脸面部表情分析的基础上,提出基于分布学习的精准预测方法,探索面部图像和抑郁水平之间的关系,对噪声数据和不确定的标签具有鲁棒性。上述的研究方法有一个共性,即大多数的方法需要通过诊疗时的语音、面像以及视频数据进行分析,而这些数据的获取需要用户主动就医。
[0004] 随着社交网络的普及,越来越多的用户开始在社交媒体上,如Twitter和Facebook分享自己的情绪和感受。越来越多的研究人员发现,社交媒体可以作为观察用户心理健康状况的窗口。例如,Shen等人面向Twitter平台发现抑郁用户和非抑郁用户在社交平台上的行为表现是不一样的。Chiu等人利用社交网络上的图像和文本等特征预测Instagram上每个帖子的综合抑郁评分,并充分考虑了推文间的时间间隔因素。Zogan等人针对文本对象通过多层注意力机制进行文本语义的编码,利用神经网络预测用户患抑郁症的概率值。然而,上述方法依然存在以下几个问题:
[0005] 1)现有用户的推文文本中包含较多的无用噪声推文,这些推文对抑郁用户的检测存在干扰,影响检测的准确性。然而,大多数算法都是对用户所有历史推文进行分析,无法取得满意的检测效果。
[0006] 2)现有的多数方法忽略用户发布推文的行为属性,比如发布的时间,发布的推文中是否包含图像,以及发布推文中是否具备转发属性等。

发明内容

[0007] 本发明的目的是克服现有技术的不足,提供一种融合推文文本和用户行为特征的抑郁症检测方法。
[0008] 本发明解决其技术问题所采用的技术方案包括以下步骤:
[0009] 步骤1、从新浪微博数据库爬取用户数据集并进行文本清洗,通过手动标注生成抑郁用户数据集和非抑郁用户数据集,即数据采集模块。
[0010] 步骤2、融合多通道CNN和基于注意力机制的BiGRU对用户每条推文的情感倾向进行分析,获得用户推文的情感倾向概率值。从每个用户的历史推文中,随机移除一定比例p的正情感倾向推文,将剩下的推文拼接成用户历史文本T;即推文情感倾向分析模块。
[0011] 步骤3、提取用户的发帖时间、转发行为和图像发布行为等特征构成用户行为特征向量,即用户行为特征模块。
[0012] 步骤4、搭建融合用户历史文本T和用户行为特征向量的抑郁检测模型,将T输入BiGRU层和前馈(feed‑forward)注意力层得到每个用户历史文本的特征向量,融合用户历史文本的特征向量和用户行为特征向量后输入到全连接层和softmax层。
[0013] 步骤5、利用Adam优化方法对抑郁检测模型进行训练,训练完后用测试集对用户的抑郁状态进行检测。
[0014] 进一步的,所述步骤1具体实现如下:
[0015] 1‑1.从新浪微博上收集候选抑郁用户数据集。随机选择几个与抑郁相关的话题,如“抑郁”、“青少年抑郁”,然后从每个话题中爬取候选抑郁用户。爬取这些候选抑郁用户的历史数据,包括历史推文、发布时间、是否为转发推文、是否发布图像等信息。
[0016] 1‑2.针对候选抑郁用户数据集,选择在其推文中提到抑郁症诊断病史的用户,设定为抑郁用户;此外,如果用户的推文中包含抑郁领域相关的症状词包括“抑郁”,以及一些相关的治疗药物包括“舍曲林”、“氟西汀”等,同样设定为抑郁用户。
[0017] 1‑3.从抑郁非相关主题中随机选取用户,例如从“今日份开心”、“美食”、“旅游”等主题中随机选取用户,并爬取这些用户的历史数据,包括历史推文、发布时间、是否为转发推文、是否发布图像等信息,构成非抑郁用户数据集。
[0018] 1‑4.针对每个用户的文本数据,通过分词和数据过滤进行文本数据的清洗。使用“Jieba”分词包进行文本分词。数据过滤主要是去除“#”主题、URL信息、不规则字符、停用词,以及官方账号用户,并将表情符号转化成文本信息。
[0019] 进一步的,所述步骤2具体实现如下:
[0020] 2‑1.利用大规模中文Wikipedia数据集预训练CBOW模型,以此得到中文词的嵌入n×d向量。将每个用户的历史推文ti经过CBOW模型后用一个矩阵S∈R 来表示,其中n表示推文中词的个数,d表示每个词的嵌入向量维度。
[0021] 2‑2.如图2所示,将矩阵S输入到多通道CNN中,多通道CNN包含卷积层和池化层。在h×d卷积层中,假定卷积核W∈R ,h={2,3,4}为卷积核的大小,通过卷积核W获得特征向量a=n‑h+1
[a0,a1,...,an‑h]∈R ,aj=σ(W·Si:i+h‑1+b);其中,σ表示非线性函数,b代表偏置项,Si:i+h‑1表示矩阵S的第i行到第i+h‑1行。池化层中:将不同卷积核下的卷积层的输出输入到池化层,提取出固定维数下最重要的特征O。
[0022] 2‑3.将每个推文ti输入到基于注意力的BiGRU模型中。将第一层设计为具有正向GRU和后向GRU结构的BiGRU层。第一层中,来自两个方向的隐藏层的输出被连接为BiGRU层的最终输出。将第二层设计为前馈(feed‑forward)注意层,以获得一个具有固定长度的表示向量:
[0023] ci=tanh(Wihi+bi)
[0024]
[0025]
[0026] 其中,hi表示单词si在BiGRU层的输出向量,ci表示全连接层的输出,Wi∈R1×d和bi∈R是注意力计算过程中的权重和偏置,h代表注意力层的输出,αi代表单词si的注意力分配系数。
[0027] 2‑4.如图2所示,将步骤2‑2的输出的特征O和步骤2‑3注意力层的输出h进行拼接得到向量V=[O,h]。将V输入到全连接层中,并在全连接层后加入dropout层以防止过拟合。在dropout层之后设计softmax层,输出得到用户特定推文ti的正负情感倾向概率值p(yi='positive')和p(yi='negative')。p(yi='positive')代表推文为正向情感倾向的概率值,p(yi='negative')代表推文为负向情感倾向的概率值。
[0028] 2‑5.利用Adam优化器对模型进行训练。
[0029] 2‑6.从每个用户的历史推文中,随机移除一定比例p的正情感推文,将剩下的推文拼接成历史文本T。
[0030] 进一步的,所述步骤3实现如下:
[0031] 3‑1.为了提取某用户的发布时间特征,提取每个用户一周内每小时发布的推文比例。具体实现上,根据特定某小时发布的推文数计算其比例 一天内的推文发布时间可以形成24维特征,一周内的推文形成168维的特征,记为ft。
[0032] 3‑2.为了提取某用户的转发行为特征,提取某用户前150条历史推文的转发标签作为转发行为特征向量。若某推文转发自其他人的推文,则转发标签设定为1,否则为0。如果某个用户的历史推文少于150条,则用1填充向量。生成的用户转发行为特征向量记为fr。
[0033] 3‑3.为了提取用户的图像发布特征,提取某用户前150条历史推文的图像发布标签组成特征向量。若用户发布的某推文含有图像信息,则图像发布标签设定为1,否则为0。如果某个用户的历史推文少于150条,则用0填充向量。生成的图像发布特征向量记为fg。
[0034] 3‑4.由于不同特征的取值范围不同,将特征ft通过min‑max归一化方法归一化到[0,1],得到f't,再将f't、fr和fg特征向量进行拼接得到f。f为用户的行为特征向量,维度为468。
[0035] 进一步的,所述步骤4实现如下:
[0036] 4‑1.利用步骤2‑1训练得到的CBOW模型,获得某用户历史文本T中每个词的嵌入向m×d量,形成历史推文序列S'∈R ,其中m表示历史推文序列中词的总个数,d表示每个词的嵌入向量维度,d=300。
[0037] 4‑2.如图3所示,将每个用户的历史推文序列S'输入基于注意力的BiGRU模型中。将第一层设计为具有正向GRU和后向GRU结构的BiGRU层。在这一层中,来自两个方向的隐藏层的输出被连接为BiGRU的最终输出。将第二层设计为前馈(feed‑forward)注意层,以获得一个具有固定长度的表示向量:
[0038] ci'=tanh(Wi'hi'+bi')
[0039]
[0040]
[0041] 其中,hi'表示历史推文序列S'中的单词s'i在BiGRU的输出向量,ci'表示全连接层1×d
的输出,Wi'∈R 和bi'∈R是注意力计算过程中的权重和偏置,αi'代表词汇si'的注意力分配系数,h'代表注意力层的输出,即用户历史文本的特征向量。
[0042] 4‑3.如图3所示,将用户历史文本的特征向量h'和用户行为特征向量f进行拼接,输入到全连接层中,之后设计sigmoid层,输出得到用户的抑郁概率值
[0043]
[0044] 其中, 表示全连接层的输出,Wf和bf代表权重和偏置,并定义交叉熵损失函数为:
[0045]
[0046] 其中,K代表训练集的个数。
[0047] 进一步的,所述步骤5实现如下:
[0048] 5‑1.利用Adam优化器对图3中的模型在训练集上进行训练。
[0049] 5‑2.训练完后,将测试集输入推文情感判断模型,过滤一定比例p的正情感推文,然后将每个用户剩下的推文组成用户的历史推文,并根据步骤3提取用户的行为特征向量,将两者输入到训练好的的自动检测模型中,输出某用户患有抑郁症的概率值。
[0050] 本发明有益效果如下:
[0051] 本发明的关注点在于如何有效融合用户推文信息和用户行为特征进行用户的抑郁状态自动检测。本发明基于公开的社交平台数据,可随时跟踪用户的心理行为状况,用于抑郁症用户的自动检测,也可以作为社交网络抑郁用户的早期自动筛查技术,具有检测成本低、操作方便等特点。本发明基于提取用户的发帖时间、转发行为和图像发布行为等特征构成用户行为特征向量;最后搭建融合用户历史文本和用户行为的抑郁检测模型。本发明能够自动预测社交网络潜在的抑郁用户,为医院的抑郁症辅助诊断,高校学生的早期心理问题预警与跟踪,企事业单位员工的入职评估等提供有利的技术手段。

附图说明

[0052] 图1为本发明方法流程图;
[0053] 图2为融合多通道CNN和注意力BiGRU的推文情感判断模型图;
[0054] 图3为融合历史文本序列和用户行为的抑郁症自动检测模型图。

具体实施方式

[0055] 下面结合附图对本发明作进一步说明。
[0056] 如图1所示,融合推文信息和行为特征的社交网络用户抑郁症检测方法,包括以下步骤:
[0057] 步骤1、从新浪微博数据库爬取用户数据集并进行文本清洗,通过手动标注生成抑郁用户数据集和非抑郁用户数据集。
[0058] 步骤2、融合多通道CNN和基于注意力机制的BiGRU对用户每条推文的情感倾向进行分析,获得用户推文的情感倾向概率值。从每个用户的历史推文中,随机移除一定比例p的正情感倾向推文,将剩下的推文拼接成用户的历史文本T。
[0059] 步骤3、提取用户的发帖时间、转发行为和图像发布行为等特征构成用户行为特征向量。
[0060] 步骤4、搭建融合用户历史文本和用户行为的抑郁检测模型,将T输入BiGRU层和前馈(feed‑forward)注意力层得到每个用户历史文本的特征向量,融合用户历史文本的特征向量和用户行为特征向量,输入到全连接层和softmax层。
[0061] 步骤5、利用Adam优化方法对检测模型进行训练,训练完后用测试集对用户的抑郁状态进行检测。
[0062] 进一步的,所述步骤1具体实现如下:
[0063] 1‑5.从新浪微博上收集候选抑郁用户数据集。选择几个与抑郁相关的话题,如“抑郁”、“青少年抑郁”,然后从每个话题中爬取候选抑郁用户。我们爬取这些用户的历史数据,包括历史推文、发布时间、是否为转发推文、是否发布图像等信息。
[0064] 1‑6.针对候选抑郁用户数据集,选择在其推文中提到抑郁症诊断病史的用户,设定为抑郁用户;此外,如果用户的推文中包含抑郁领域相关的症状词,如“抑郁”,以及一些相关的治疗药物,如“舍曲林”、“氟西汀”等,同样设定为抑郁用户。
[0065] 1‑7.从“今日份开心”、“美食”、“旅游”等主题中随机选取用户,并爬取这些用户的历史数据,包括历史推文、发布时间、是否为转发推文、是否发布图像等信息,构成非抑郁用户数据集。
[0066] 根据上述步骤,本发明面向国内社交平台新浪微博,爬取数据并生成一个较大抑郁用户和非抑郁用户数据集。该数据集包含6423名抑郁用户和8617名正常用户。具体情况如下:
[0067] 表1新浪微博用户数据集具体信息
[0068] 用户数 推文数抑郁用户 6423 207322
非抑郁用户 8617 496327
合计 15040 703649
[0069] 1‑8.针对每个用户的文本数据,通过分词和数据过滤进行文本数据的清洗。使用“Jieba”分词包进行文本分词。数据过滤主要是去除“#”主题、URL信息、不规则字符、停用词,以及官方账号用户,并将表情符号转化成文本信息。
[0070] 进一步的,所述步骤2具体实现如下:
[0071] 2‑1.利用大规模中文Wikipedia数据集预训练CBOW模型,以此得到中文词[0072] 的嵌入向量。本发明将词向量大小设定为300。将每个用户的历史推文ti经过CBOWn×d模型后用一个矩阵S∈R 来表示,其中n表示推文中词的个数,d表示每个词的嵌入向量维度。
[0073] 2‑2.如图2所示,将S输入到多通道CNN中,多通道CNN包含卷积层和池化层。在卷积h×d层中,假定卷积核W∈R ,h={2,3,4}为卷积核的大小,通过卷积核W获得特征向量a=[a0,n‑h+1
a1,...,an‑h]∈R ,aj=σ(W·Si:i+h‑1+b);其中,σ表示非线性函数,b代表偏置项,Si:i+h‑1表示矩阵S的第i行到第i+h‑1行。本发明将每种卷积核的数目设定为128,步长为1。池化层中,将不同卷积核下的卷积层的输出输入到池化层,提取出固定维数下最重要的特征O,维度为
128*3。
[0074] 2‑3.将每个推文输入到基于注意力的BiGRU模型中。将第一层设计为具有正向GRU和后向GRU结构的BiGRU层,本发明将隐藏层的维度设置为128。在这一层中,来自两个方向的隐藏层的输出被连接为BiGRU的最终输出。将第二层设计为前馈(feed‑forward)注意层,以获得一个具有固定长度的表示向量:
[0075] ci=tanh(Wihi+bi)
[0076]
[0077]
[0078] 其中,hi表示词汇si在BiGRU的输出向量,ci表示全连接层的输出,Wi∈R1×d和bi∈R是注意力计算过程中的权重和偏置,h代表注意力层的输出,具备固定长度128,αi代表单词si的注意力分配系数。
[0079] 2‑4.如图2所示,将步骤2‑2的输出O和步骤2‑3的输出h进行拼接得到向量V=[O,h],维度为512。将V输入到全连接层中,并在全连接层后加入dropout层以防止过拟合。在dropout层之后设计softmax层,输出得到用户特定推文ti的正负情感倾向概率值p(yi='positive')和p(yi='negative')。p(yi='positive')代表推文为正向情感倾向的概率值,p(yi='negative')代表推文为负向情感倾向的概率值。
[0080] 2‑5.利用Adam优化器对图2中的模型进行训练。具体实现上,将Mini‑batch size设定为100,学习率设定为0.001,epoch设定为50,dropout rate设定为0.5。2‑6.从每个用户的历史推文中,随机移除一定比例p的正情感推文,将剩下的推文拼接成历史文本T。具体实现上,设定比例p=0.5。
[0081] 进一步的,所述步骤3实现如下:
[0082] 3‑1.为了提取某用户的发布时间特征,提取每个用户一周内每小时发布的推文比例。具体实现上,根据特定某小时发布的推文数计算其比例 一天内的推文发布时间可以形成24维特征,一周内的推文形成168维的特征,记为ft。例如,某用户在一周内总共发20条推文,在星期一的0时到23时,各发表[0,0,0,0,0,2,0,0,1,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0]条推文,则一天内的推文发布时间可以形成24维的特征向量[0,0,0,0,0,0.1,0,0,0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]。
[0083] 3‑2.为了提取某用户的转发行为特征,提取某用户前150条历史推文的转发标签作为转发行为特征向量。若某推文转发自其他人的推文,则转发标签设定为1,否则为0。如果某个用户的历史推文少于150条,则用1填充向量。生成的用户转发行为特征向量记为fr。
[0084] 3‑3.为了提取用户的图像发布特征,提取某用户前150条历史推文的图像发布标签组成特征向量。若用户发布的某推文含有图像信息,则图像发布标签设定为1,否则为0。如果某个用户的历史推文少于150条,则用0填充向量。生成的图像发布特征向量记为fg。
[0085] 3‑4.由于不同特征的取值范围不同,将特征ft通过min‑max归一化方法归一化到[0,1],得到f't,再将f't,fr和fg特征向量进行拼接得到f。f为用户的行为特征向量,维度为468。
[0086] 进一步的,所述步骤4实现如下:
[0087] 4‑1.利用步骤2‑1训练得到的CBOW模型,获得某用户历史文本T中每个词的嵌入向m×d量,形成矩阵S'∈R ,其中m表示历史推文序列中词的总个数,d表示每个词的嵌入向量维度,d=300。
[0088] 4‑2.如图3所示,将每个用户的历史推文序列S'输入基于注意力的BiGRU模型中。将第一层设计为具有正向GRU和后向GRU结构的BiGRU层,本发明将隐藏层的维数设置为
128。在这一层中,来自两个方向的隐藏层的输出被连接为BiGRU的最终输出。将第二层设计为前馈(feed‑forward)注意层,以获得一个具有固定长度的表示向量:
[0089] ci'=tanh(Wi'hi'+bi')
[0090]
[0091]
[0092] 其中,hi'表示历史推文序列S'中的词汇s'i在BiGRU的输出向量,ci'表示全连接层1×d
的输出,Wi'∈R 和bi'∈R是注意力计算过程中的权重和偏置,αi'代表词汇si'的注意力分配系数,h'代表注意力层的输出。具体实现上,h'具备固定长度128。
[0093] 4‑3.如图3所示,将用户历史文本的特征向量h'和用户行为特征向量f进行拼接,输入到全连接层中,之后设计sigmoid层,输出得到用户的抑郁概率值
[0094]
[0095] 其中, 表示全连接层的输出,Wf和bf代表权重和偏置,并定义交叉熵损失函数为:
[0096]
[0097] 其中,K代表训练集的个数。
[0098] 进一步的,所述步骤5实现如下:
[0099] 5‑1.利用Adam优化器对图3中的模型在训练集上进行训练。具体实现上,将Mini‑batch size设定为200,学习率设定为0.001,epoch设定为100,dropout rate设定为0.5。
[0100] 5‑2.训练完后,将测试集输入推文情感判断模型,过滤一定比例p的正情感推文,然后将每个用户剩下的推文组成用户的历史推文,并根据步骤3提取用户的行为特征向量,将两者输入到训练好的的自动检测模型中,输出某用户患有抑郁症的概率值。本发明将爬取的新浪用户数据库按照7:3的比例划分训练集和测试集,具体评判标准包括:F1‑Score、Recall和Precision,测试结果如表2所示。
[0101] 表2测试结果
[0102] 方法 Precision Recall F1_scoreTBF 0.8581 0.7258 0.7864
EHLM 0.8723 0.7896 0.8289
本专利 0.8887 0.8749 0.8823
[0103] 此外,将本发明和TBF(Chiong等人提出)和EHLM(Ansari等人提出)方法作比较,由表2的结果可得,本发明的效果明显优越于其他两种方法。不管在Precision上还是Recall上,都取得了较大的改进。相比TBF方法,本发明在F1_Score上取得了0.0959的提升;相比EHLM方法,本发明在F1_Score上取得了0.0534的提升。