1.一种微博文本分类系统,其特征在于,包括:
数据预处理模块:用python爬虫软件爬取微博博文信息和微博用户信息,清洗缺失的数据,并根据情感极性进行人工打标;
词向量词性增强模块:通过word2vec构造微博博文信息的词向量,在原始词向量的基础上,根据情感词词典和程度副词词典增强词性信息;
新特征构造模块:用于对微博用户信息进行特征提取工作,在原始特征的基础上构造出用户活跃度和用户影响力两个新特征;
分类模块:利用改进的textCNN卷积神经网络模型,先通过卷积层和池化层学习词向量信息,再通过全连接层融入用户信息,最后用softmax函数激活,得到最终的分类结果。
textCNN模型的改进主要在全连接层对语义特征和用户特征进行融合,使其在学习语义信息的同时还学习到用户信息。
2.根据权利要求1所述的一种微博文本分类系统,其特征在于,所述数据预处理模块中,数据清洗和打标具体包括:去除爬取的数据中包含缺失字段的样本,使每个样本都包含博文内容和用户的性别、发博时间、粉丝数、关注数、博文数、点赞数七个字段;
根据博文内容对每个样本的情感极性打标,其中0代表中性,1代表积极,2代表消极,为保证数据的多样性,打标的样本量大于等于10000条。
3.根据权利要求1所述的一种微博文本分类系统,其特征在于,所述词向量词性增强模块具体包括:计算Hownet词典中所有情感词和程度副词的词向量T{t1,t1,t3,...,tn},ti表示词典中第i个词的词向量,n表示词典中所有情感词的数量,并利用语料库中的得分进行词性增强;
将词性增强后的情感词和程度副词替换原有的word2vec模型中的情感词和程度副词;
利用结巴对样本进行分词和去停用词的处理,通过训练好优化后的word2vec模型计算所有样本的词向量集合,由于微博客户端限制了博文的长度,因此每条微博的词汇量不会超过100,不足100的微博用0补齐。
4.根据权利要求3所述的一种微博文本分类系统,其特征在于,所述词向量词性增强模块根据情感词词典和程度副词词典增强词性信息,具体包括:找出距待词性增强目标词ti最相似的 个词 表示离第i个目标词最近的第j个词的词向量,根据Hownet词典中的词性相似度重新对Si排序,计算ti到 的距离权重wij,其公式如下:移动ti至ti′,ti′表示经过一次迭代后目标词的位置,使ti′距离Si的距离之和最小,为了预防所有目标词朝同一个方向移动,约束了ti的移动距离,其目标函数公式如下:其中,dist表示两个向量的欧几里得距离,ti表示待增强词向量的初始位置位置,ti′表示经过一次增强后词向量的位置,参数α和β为权值系数,用于约束ti的移动距离和ti′与其最近的k个词的距离的比重,α越大表示ti′更接近其原始向量,相反,β越大表示ti′更接近Si,且有:α+β=1
当α=1,β=0时目标词将不会移动。随着比值的减小,约束也逐渐减小,Ti′可以更接近Si;α=0,β=1意味着约束是失效的,两个词向量的距离为他们的欧几里得距离,其公式如下:其中,和q表示任意两个词的词向量,D为词向量的维度,最后,对目标函数求偏导得到ti′,更新原目标词向量ti,使得:ti=ti′
迭代上述步骤,直至ti的移动距离收敛到某个阈值。
5.根据权利要求4所述的一种微博文本分类系统,其特征在于,所述新特征构造模块在微博用户特征提取中,需要提取用户活跃度、用户影响力、用户发博时间和用户性别。
6.根据权利要求书5所述的微博文本分类系统,其特征在于,所述用户活跃度的计算步骤包括:对用户累计博文数和用户关注数进行归一化处理,用户活跃度factivation(u)的具体公式如下:其中,upost表示用户主动发布的次数,urepost表示用户主转发的次数,uattention表示用户关注的人数,T为时间周期。
7.根据权利要求书5所述的微博文本分类系统,其特征在于,所述用户影响力的计算步骤包括:对用户粉丝数和其他用户对该条博文的点赞数进行归一化处理,用户影响力finfluence(u)的具体公式如下:finfluence(u)=λ1ufans+λ2ulike+λ3uverified其中,ufans表示用户粉丝数,ulike表示用户被点赞数,uverified表示用户身份认证值,其计算公式如下:λ1、λ2、λ3分别为用户粉丝数、用户被点赞数、用户身份认证值的权值。
8.根据权利要求书5所述的微博文本分类系统,其特征在于,所述用户性别特征提取步骤包括:利用one_hot编码方式对性别特征进行编码,最终得到一个长度为二的向量。
9.根据权利要求书5所述的微博文本分类系统,其特征在于,所述用户发博时间特征提取步骤包括:先对连续型时间数据进行分箱处理,再利用one_hot编码方式对时间特征进行编码,最终得到一个长度为七的向量。
10.根据权利要求书5所述的微博文本分类系统,其特征在于,所述分类模块对模型训练的步骤包括:将预先训练好的词向量集合W送入textCNN,分别用宽度为2、3、4的卷积核进行训练;
将卷积层的输出送入最大池化层,得到博文内容的知识表示;
将博文信息与用户特征拼接,利用交叉熵作为损失函数,放入全连接层训练;
用softmax函数激活,得到最终的训练结果。