数据集依据与“新冠肺炎”相关的230个主题关键词进行数据采集,抓取了2020年1月1日—2020年2月20日期间共计100万条微博数据,并对其中5万条数据进行人工标注,标注分为三类,分别为:1(积极),0(中性)和1(消极)。这里只使用5万人工标注的数据集,字段说明见表2 取值为{-1,0,1} 节点,将微博数据读取进来,部分数据如图2 节点,如图2 节点,按照降序的方式进行排序,查看输出结果如图2数据预处理 节点,将微博中文内容数据中空值数据去除,空值处理方式过滤整行。 节点,将情感倾向中不为0、1、 节点,派生列配置如图2 节点,将微博中文内容重复内容去除,仅保留一条数据。丢弃大量正例数据,从而弱化了正例数据的影响,可能会造成偏差很大的模型。如果数据不平衡类比的数据量较大,影响会相应的减少。数据总是宝贵的,抛弃数据是很奢侈的,有一种做法是反复做欠采样,即将正例数据拆分成n份,每一份跟反例数据构成新的样本数据集,将这些数据集分别用作训练,预测的结果便是它们的集合。通过上述探索得知,分类的0数据有8400条,而分类为1的数据有28912多条,为了解决分类不平衡的问题, 1的数据分布的话数量有一定规模,这里使用简单的欠采样方法,0:1:2采样的比例为1:2:1。接入一个 下采样 节点,设置如图2 下采样设置 节点,将文本内容进行中文分词。参数自定义词典见附件,输出结果如图2 节点,将一些无意义的词组去除,停用词列表详情可以查看本文末附件部分,停用词列表如图2 节点,我们将数组长度计算出来,配置如图2 词向量 节点。词向量 节点采用的是word2vec算法。Word2vec是一种用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构词文本。网络以词表现,并且需猜测相邻位置的输入词,在word2vec中词袋模型假设下,词的顺序是不重要的。训练完成之后,word2vec模型可用来映射每个词到一个向量,可用来表示词对词之间的关系,该向量为神经网络之隐藏层。词向量的参数生成向量的数量这里配置50个,整个处理流程如图2 随机森林 算法。整体的实验流程如图2 节点,特征列选择词向量节点的输出列,如图216所示。拆分节点使用默认参数配置,训练集与测试集的占比为7:3。随机森林的参数配置如图2629。 随机森林参数配置基于LDA模型的主题分析 过滤 节点,保留情感倾向为0的,接入一个 节点,选择特征列如图2 LDA 节点,参数主题词数为50。 过滤 节点,保留情感倾向为2的数据,后面操作与上述操作类似。
微博中文内容
字符串
情感倾向
整型
字段名称
类型
字段说明
微博id
整型
微博发布时间
日期
格式为xx月xx日 xx:xx
发布人账号
字符串