本发明涉及一种预测方法,具体是关于一种微信公众号文章阅读量的预测方法及系统。
背景技术:
自从进入到网络2.0时代,对于网络上某些特定内容受欢迎程度的研究工作逐渐增多,这些工作的研究对象主要包括网上新闻、网上视频以及用户在社交平台上发表的内容。对于网上新闻而言,现有的工作通常将评论数作为受欢迎程度的衡量标准,且将预测评论数的任务分为先判断这个新闻是否能够收到评论、再基于此定性预测评论数的高低两个阶段。为更进一步地估计评论数,新闻发布后短时间内观察到的评论数被用于预测后续可能获得的总评论数的分布情况。对于网上视频来说,大部分工作以其播放量作为衡量标准,且利用历史的播放量信息来对当前视频进行预测。此外,还有一些工作关注于用户在社交平台上发布的内容,例如facebook、twitter等,通过社交平台上的好友关系和社交网的网络结构,对发布内容的受关注程度进行预测。到目前为止,这些现有工作取得一定的效果。
然而,现有的预测某特定内容受欢迎程度的方法主要关注于网页新闻、视频和用户在社交平台上发布的内容,无法运用到在微信公众号文章阅读量的预测,主要体现在:1)微信公众号文章阅读量的预测一般希望在文章发布前即能预测其阅读量,但是目前的方法几乎均是在内容发布后展开预测,并需要使用到内容发布后观测到的信息;2)在能够获得的数据中,无法得到微信用户与公众号之间的关联关系,用户的社交好友关系也是未知的,因此无法根据算法构建一个社交关系网络来对阅读量进行预测。因此,需要一种仅基于有限的信息在文章发布前对阅读量进行预测的方法。
技术实现要素:
针对上述问题,本发明的目的是提供一种在文章发布前对阅读量进行预测的微信公众号文章阅读量的预测方法及系统。
为实现上述目的,本发明采取以下技术方案:一种微信公众号文章阅读量的预测方法,其特征在于,包括以下内容:1)在微信文章数据集上分别训练xgboost分类模型和xgboost回归模型;2)获取待测文章的文章特征;3)采用训练后的xgboost分类模型,根据待测文章的文章特征,判断待测文章是否为超级文章,若是,则该待测文章的阅读量预测值为超过10万;若不是,则进入步骤4);4)采用训练后的xgboost回归模型,根据待测文章的文章特征,确定待测文章的阅读量预测值。
进一步地,所述步骤1)的具体过程为:1.1)根据文章的发布时间,将微信文章数据集划分为训练集、验证集和测试集,且每一集合之间没有重叠;1.2)确定微信文章数据集中各微信文章的样本正负,其中,微信文章为超级文章,则表示为正样本;微信文章为非超级文章,则表示为负样本;1.3)在微信文章数据集上训练xgboost分类模型;1.4)在微信文章数据集上训练xgboost回归模型。
进一步地,所述步骤1.3)的具体过程为:1.3.1)构建xgboost分类模型,其中,xgboost分类模型的分类任务采用的评价指标包括准确率、精确率、召回率和f1分数;1.3.2)通过训练集中表示为正样本的微信文章和部分表示为负样本的微信文章训练xgboost分类模型;1.3.3)在验证集调整xgboost分类模型的参数,在测试集测试xgboost分类模型,得到训练后的xgboost分类模型。
进一步地,所述步骤1.4)的具体过程为:1.4.1)构建xgboost回归模型,其中,xgboost回归模型的评价指标包括平均绝对误差mae、均方根误差rmse和决定系数r2:
其中,yi表示第i篇微信文章的目标值;
其中,
进一步地,所述文章特征包括历史信息特征,历史信息特征包括待测文章所属公众号的历史发文频率和历史阅读量,其中:历史发文频率为在时间t内公众号o在文章a前的发文总数;历史阅读量为时间t内公众号o所获阅读量的总数、平均数、方差和中位数。
进一步地,所述文章特征包括标题特征,标题特征包括标题基本组成、情感属性和标题实体,其中:标题基本组成为文章标题的标题长度、单词个数和数字个数;情感属性为采用情感分类模型对文章的标题进行情感分类得到的情感属性,包括积极、消极和中性;标题实体为文章标题中出现的地名、人名和机构名。
进一步地,所述文章特征包括正文特征,正文特征包括正文基本组成、正文实体、组成元素、平均段落长度、文章所属话题,其中:正文基本组成为文章正文的文章长度、单词个数和数字个数;正文实体为文章正文中出现的地名、人名和机构名;组成元素为文章正文的段落数、图片数、网页链接数和音乐视频数;平均段落长度为文章正文中各段落的平均词数;文章所属话题为采用分类模型对文章正文的主题进行分类得到的话题类别。
进一步地,所述文章特征包括“标题党”特征,“标题党”特征包括标题是否含糊不清、标点符号、疑问词数、指代词数、程度副词数和情感词数,其中:标题是否含糊不清为文章标题中是否存在不明确的代词;标点符号为文章标题中标点符号“?”和“!”的个数;疑问词数、指代词数、程度副词数和情感词数为文章标题中出现的疑问词数、指代词数、程度副词数和情感词数。
进一步地,所述文章特征包括时间特征,时间特征包括文章发布时间、时间阅读量和抓取间隔,其中:文章发布时间为文章发布的包括月、日、时间和星期数;时间阅读量为文章发布时间同一小时和星期数的平均阅读量和方差;抓取间隔为文章的发布时间与抓取阅读量时间之间的时间间隔。
一种微信公众号文章阅读量的预测系统,该系统包括:模型训练模块,用于在微信文章数据集上分别训练xgboost分类模型和xgboost回归模型;数据获取模块,用于获取待测文章的文章特征;超级文章预测模块,用于采用训练后的xgboost分类模型,根据待测文章的文章特征,判断待测文章是否为超级文章;阅读量预测模块,用于采用训练后的xgboost回归模型,根据待测文章的文章特征,确定待测文章的阅读量预测值。
本发明由于采取以上技术方案,其具有以下优点:
1、本发明通过xgboost模型,根据待测文章的文章特征,在文章发布前即能得到阅读量的预测值,为文章的作者提供修改意见,在提高文章作者工作效率的同时,能够获得更多的阅读量。
2、本发明将文章阅读量的预测分为两部分,包括预测文章是否为超级文章和对非超级文章的阅读量的精确预测,对于是否为超级文章的预测采用xgboost分类模型,对于非超级文章的阅读量的精确预测采用xgboost回归模型,根据获取的待测文章的文章特征,有效地对文章的结构、内容等各个方面进行详细分析,确定待测文章的阅读量预测值,进而能够为作者修改文章提供一定的指导意见,提高作者和相关工作人员的工作效率,并获得更高的阅读量,可以广泛应用于数据预测领域中。
附图说明
图1是本发明中获取的微信文章数据集的基本信息示意图,其中,图1(a)为微信文章数据集的标题基本信息示意图,横坐标为标题长度,纵坐标为文章数量,图1(b)为微信文章数据集的正文基本信息示意图,横坐标为正文长度,纵坐标为文章数量;
图2是本发明中微信文章数据集公众号的月均发文数统计条形图,其中,横坐标为文章数量,纵坐标为公众号数量;
图3是本发明中微信文章数据集发布的微信文章数与文章阅读量的统计示意图,其中,图3(a)为不同小时发布的微信文章百分数,横坐标为小时,纵坐标为百分数,图3(b)为不同星期数发布的微信文章数,横坐标为星期数,纵坐标为百分数,图3(c)为不同时间发布的微信文章的平均阅读次数,横坐标为小时,纵坐标为平均阅读次数,图3(d)为每周不同日期发布的微信文章的平均文章阅读量,横坐标为星期数,纵坐标为平均阅读次数;
图4是本发明的微信文章数据集中文章发布后的阅读量增长率和日均阅读量示意图。
具体实施方式
以下结合附图来对本发明进行详细的描绘。然而应当理解,附图的提供仅为了更好地理解本发明,它们不应该理解成对本发明的限制。
由于本发明提出的微信公众号文章阅读量的预测方法涉及到微信公众号和阅读量预测的相关内容,下面对相关内容进行介绍,以便本领域技术人员对本发明的内容更加清楚。
微信是中国用户量最多的社交平台之一,其为用户提供了两种类型的账号——个人账号和公众号,其中,公众号是面向多数用户的,它的一个主要功能就是发布文章。个人用户可以关注公众号,接收并阅读其发布的文章,还可以通过个人账号转发文章分享给更多的个人用户。基于这样的机制,利用公众号向用户推送文章成为了信息传播的一个重要途径,而获得高的阅读量也成为了公众号所追求的目标。为确定合理的特征来预测文章的阅读量,本发明获取一个微信文章数据集,并对该数据集进行观测和分析,具体过程如下:
1、基本信息
获取由1,692,012个公众号在一个月内(2018年2月10日到3月10日)发布的22,554,445篇文章作为微信文章数据集,其中,总共包括26,460,684个阅读量,且对上述文章的标题和正文长度等基本信息进行统计,结果如图1(a)和(b)所示,部分文章正文中仅包含图片或其他形式的信息。
2、公众号信息
获取的微信文章数据集中各公众号发布文章的频率差异显著,其中,最活跃的公众号一个月内共发布了695篇文章(日均23篇),频率最低的公众号在一个月内只发布一篇文章,总体的频率分布如图2所示。可以看出,大部分的公众号(72.32%)月均发布文章数在10左右,11.81%的公众号一个月内的发文数超过30篇(日均1篇)。本发明认为公众号的活跃程度(发文频率)对于其文章的阅读量有所影响。
3、时间信息
本发明观察到在一天中不同的时间点,公众号发布的文章数也不一样,具体分布情况如图3(a)~(d)所示,存在几个显著的特点:a)一天中存在几个发文的高峰时段,分别出现在11am、5pm和8pm,刚好与一般的下班时间重合,因此,本发明推测公众号选择上述时间发文是为了增加文章的阅读量。b)一周中每天的发文数各不相同,峰值出现在周六。基于上述特点,本发明考虑将不同时间阅读量的平均值和方差作为预测阅读量的一部分特征。
4、阅读量信息
微信文章的阅读量是随着时间持续动态递增的,为研究这种阅读量增长的规律,本发明选取1600篇发布于2018年7月4日的公众号文章,从发布时间开始每隔24小时获取一次其阅读量,获取的阅读量的变化情况如图4所示,可以看出,阅读量的增长率和绝对值均逐渐递减,在一周之后,每天的阅读量几乎低于10。
由于阅读量超过10万的文章被看作超级文章,且其阅读量表示为100,000 ,无法得到其精确的阅读量,无法直接将阅读量预测这一任务看为一个纯粹的回归问题。因此,本发明将预测任务分为两个连续的子任务:预测某篇文章是否为超级文章;若不是超级文章,则预测其可能获得的具体阅读数。
实施例一
基于上述说明,本发明提供的微信公众号文章阅读量的预测方法,包括以下步骤:
1)在微信文章数据集上分别训练xgboost分类模型和xgboost回归模型,具体为:
1.1)根据文章的发布时间,将微信文章数据集划分为训练集、验证集和测试集,且每一集合之间没有重叠,其中,训练集用于训练xgboost模型,验证集用于调整xgboost模型的参数(例如max_depth、learning_rate、n_estimators等),测试集用于对xgboost模型进行测试。
1.2)确定微信文章数据集中各微信文章的样本正负(标签),其中,超级文章为阅读量超过10万的文章,微信文章为超级文章(superarticle),则表示为正样本;微信文章为非超级文章,则表示为负样本。
1.3)在微信文章数据集上训练xgboost分类模型:
1.3.1)构建xgboost分类模型,其中,xgboost分类模型的分类任务采用的评价指标包括准确率、精确率、召回率和f1分数,xgboost分类模型的构建为现有技术公开的方法,具体过程在此不多做赘述。
1.3.2)通过训练集中表示为正样本的微信文章和部分表示为负样本的微信文章训练xgboost分类模型,得到超级文章分类模型,其中,由于微信文章数据集中非超级文章的数量远远多于超级文章的数量,因此本发明仅选取其中的部分非超级文章标注为负样本,使得用于模型训练的表示为负样本的微信文章与表示为正样本的微信文章的数量比例为1:1。
1.3.3)在验证集调整超级文章分类模型的参数,在测试集测试超级文章分类模型,得到训练后的超级文章分类模型。
1.4)在微信文章数据集上训练xgboost回归模型:
1.4.1)构建xgboost回归模型,其中,xgboost回归模型的评价指标包括平均绝对误差mae、均方根误差rmse和决定系数r2,xgboost回归模型的构建为现有技术公开的方法,具体过程在此不多做赘述。
平均绝对误差mae、均方根误差rmse和决定系数r2分别为:
其中,yi表示第i篇微信文章的目标值;
1.4.2)将训练集中微信文章的文章特征作为样本、微信文章的阅读量作为标签训练xgboost回归模型,得到预测微信文章阅读量回归模型。
1.4.3)在验证集调整预测微信文章阅读量回归模型的参数,在测试集测试预测微信文章阅读量回归模型,得到训练后的预测微信文章阅读量回归模型。
2)获取待测文章及其文章特征,包括历史信息特征、标题特征、正文特征、“标题党”特征、时间特征和其他特征,其中:
2.1)获取待测文章的历史信息特征,包括待测文章所属公众号的历史发文频率和历史阅读量:
2.1.1)给定当前待测文章a及其所在的公众号o,将历史发文频率定义为在时间t内公众号o在待测文章a前的发文总数,并将时间t分别设置为一个月、两周、一周、3天和1天,这一特征主要用于度量公众号的活跃程度。
2.1.2)获取时间t内公众号o所获阅读量的总数、平均数、方差和中位数等信息,上述信息作为历史阅读量主要用于反映公众号本身的受欢迎程度。
通过实验可知,历史信息特征对于阅读量的预测非常有效,分析原因如下:一个历史上受欢迎的公众号会拥有更多的关注者,因此发布的文章也能被更多用户看到;历史信息能够反映出公众号的文章质量,也从侧面上保证当前发文的质量。
2.2)获取待测文章的标题特征,包括标题基本组成、情感属性和标题实体:
2.2.1)确定待测文章标题的标题基本组成,包括标题长度、单词个数和数字个数。
2.2.2)采用情感分类模型,对待测文章的标题进行情感分类,获取待测文章标题的情感属性,包括积极、消极和中性,情感分类模型可以采用现有技术公开的情感分类模型,具体分类过程在此不多做赘述。
2.2.3)确定待测文章标题中出现的地名、人名和机构名等实体的个数。
2.3)获取待测文章的正文特征,包括正文基本组成、正文实体、组成元素、平均段落长度、文章所属话题:
2.3.1)确定待测文章正文的正文基本组成,包括文章长度、单词个数和数字个数。
2.3.2)确定待测文章正文中出现的地名、人名和机构名等实体的个数。
2.3.3)确定待测文章正文的组成元素,包括段落数、图片数、网页链接数和音乐视频数等,并确定待测文章正文的平均段落长度,即正文中各段落的平均词数。
2.3.4)采用分类模型,对待测文章正文的主题进行分类,确定待测文章正文的话题类别,其中,话题类别包括文学、教育、娱乐、文化、科技、军事、历史、社会和法律,分类模型可以采用现有技术公开的分类模型,具体分类过程在此不多做赘述。
2.4)获取待测文章的“标题党”特征,包括标题是否含糊不清、标点符号、疑问词数、指代词数、程度副词数和情感词数:
2.4.1)确定待测文章的标题是否含糊不清,例如确定待测文章的标题中是否存在不明确的代词等,例如“他是今年演艺圈最大的赢家”中的代词“他”并没有给出具体的指代,该待测文章的标题含糊不清。具体来说,是先标注少量文章的标题训练一个分类模型,然后再采用该分类模型对待测文章的标题进行分类,确定待测文章的标题是否含糊不清。
2.4.2)确定待测文章标题中标点符号“?”和“!”的个数。
2.4.3)确定待测文章标题中的疑问词数、指代词数、程度副词数(例如非常、及其等)和情感词数,其中,情感词数为表达正面或负面评价,正面或负面情绪的词数。
2.5)获取待测文章的时间特征,包括文章发布时间、时间阅读量和抓取间隔:
2.5.1)获取待测文章的发布时间,包括待测文章发布的月、日、时间和星期数。
2.5.2)获取待测文章发布时间同一小时和星期数的平均阅读量和方差作为时间阅读量。
2.5.3)获取待测文章的抓取间隔,其中,将待测文章的发布时间与抓取阅读量时间之间的时间间隔作为抓取间隔。
2.6)获取待测文章的其他特征,包括排序位置,即获取文章发布时待测文章所在列表中的排序位置。
3)采用训练后的xgboost分类模型,根据待测文章的文章特征,判断待测文章是否为超级文章(superarticle),若是,则该待测文章的阅读量预测值为超过10万;若不是,则进入步骤4)。
4)采用训练后的xgboost回归模型,根据待测文章的文章特征,确定待测文章的阅读量预测值。
实施例二
本实施例提供一种微信公众号文章阅读量的预测系统,该系统包括:
模型训练模块,用于在微信文章数据集上分别训练xgboost分类模型和xgboost回归模型。
数据获取模块,用于获取待测文章的文章特征。
超级文章预测模块,用于采用训练后的xgboost分类模型,根据待测文章的文章特征,判断待测文章是否为超级文章。
阅读量预测模块,用于采用训练后的xgboost回归模型,根据待测文章的文章特征,确定待测文章的阅读量预测值。
上述各实施例仅用于说明本发明,其中各部件的结构、连接方式和制作工艺等都是可以有所变化的,凡是在本发明技术方案的基础上进行的等同变换和改进,均不应排除在本发明的保护范围之外。
1.一种微信公众号文章阅读量的预测方法,其特征在于,包括以下内容:
1)在微信文章数据集上分别训练xgboost分类模型和xgboost回归模型;
2)获取待测文章的文章特征;
3)采用训练后的xgboost分类模型,根据待测文章的文章特征,判断待测文章是否为超级文章,若是,则该待测文章的阅读量预测值为超过10万;若不是,则进入步骤4);
4)采用训练后的xgboost回归模型,根据待测文章的文章特征,确定待测文章的阅读量预测值。
2.如权利要求1所述的一种微信公众号文章阅读量的预测方法,其特征在于,所述步骤1)的具体过程为:
1.1)根据文章的发布时间,将微信文章数据集划分为训练集、验证集和测试集,且每一集合之间没有重叠;
1.2)确定微信文章数据集中各微信文章的样本正负,其中,微信文章为超级文章,则表示为正样本;微信文章为非超级文章,则表示为负样本;
1.3)在微信文章数据集上训练xgboost分类模型;
1.4)在微信文章数据集上训练xgboost回归模型。
3.如权利要求2所述的一种微信公众号文章阅读量的预测方法,其特征在于,所述步骤1.3)的具体过程为:
1.3.1)构建xgboost分类模型,其中,xgboost分类模型的分类任务采用的评价指标包括准确率、精确率、召回率和f1分数;
1.3.2)通过训练集中表示为正样本的微信文章和部分表示为负样本的微信文章训练xgboost分类模型;
1.3.3)在验证集调整xgboost分类模型的参数,在测试集测试xgboost分类模型,得到训练后的xgboost分类模型。
4.如权利要求2所述的一种微信公众号文章阅读量的预测方法,其特征在于,所述步骤1.4)的具体过程为:
1.4.1)构建xgboost回归模型,其中,xgboost回归模型的评价指标包括平均绝对误差mae、均方根误差rmse和决定系数r2:
其中,yi表示第i篇微信文章的目标值;
其中,
1.4.2)将训练集中微信文章的文章特征作为样本、微信文章的阅读量作为标签训练xgboost回归模型;
1.4.3)在验证集调整xgboost回归模型的参数,在测试集测试xgboost回归模型,得到训练后的xgboost回归模型。
5.如权利要求1所述的一种微信公众号文章阅读量的预测方法,其特征在于,所述文章特征包括历史信息特征,历史信息特征包括待测文章所属公众号的历史发文频率和历史阅读量,其中:
历史发文频率为在时间t内公众号o在文章a前的发文总数;
历史阅读量为时间t内公众号o所获阅读量的总数、平均数、方差和中位数。
6.如权利要求1所述的一种微信公众号文章阅读量的预测方法,其特征在于,所述文章特征包括标题特征,标题特征包括标题基本组成、情感属性和标题实体,其中:
标题基本组成为文章标题的标题长度、单词个数和数字个数;
情感属性为采用情感分类模型对文章的标题进行情感分类得到的情感属性,包括积极、消极和中性;
标题实体为文章标题中出现的地名、人名和机构名。
7.如权利要求1所述的一种微信公众号文章阅读量的预测方法,其特征在于,所述文章特征包括正文特征,正文特征包括正文基本组成、正文实体、组成元素、平均段落长度、文章所属话题,其中:
正文基本组成为文章正文的文章长度、单词个数和数字个数;
正文实体为文章正文中出现的地名、人名和机构名;
组成元素为文章正文的段落数、图片数、网页链接数和音乐视频数;
平均段落长度为文章正文中各段落的平均词数;
文章所属话题为采用分类模型对文章正文的主题进行分类得到的话题类别。
8.如权利要求1所述的一种微信公众号文章阅读量的预测方法,其特征在于,所述文章特征包括“标题党”特征,“标题党”特征包括标题是否含糊不清、标点符号、疑问词数、指代词数、程度副词数和情感词数,其中:
标题是否含糊不清为文章标题中是否存在不明确的代词;
标点符号为文章标题中标点符号“?”和“!”的个数;
疑问词数、指代词数、程度副词数和情感词数为文章标题中出现的疑问词数、指代词数、程度副词数和情感词数。
9.如权利要求1所述的一种微信公众号文章阅读量的预测方法,其特征在于,所述文章特征包括时间特征,时间特征包括文章发布时间、时间阅读量和抓取间隔,其中:
文章发布时间为文章发布的包括月、日、时间和星期数;
时间阅读量为文章发布时间同一小时和星期数的平均阅读量和方差;
抓取间隔为文章的发布时间与抓取阅读量时间之间的时间间隔。
10.一种微信公众号文章阅读量的预测系统,其特征在于,该系统包括:
模型训练模块,用于在微信文章数据集上分别训练xgboost分类模型和xgboost回归模型;
数据获取模块,用于获取待测文章的文章特征;
超级文章预测模块,用于采用训练后的xgboost分类模型,根据待测文章的文章特征,判断待测文章是否为超级文章;
阅读量预测模块,用于采用训练后的xgboost回归模型,根据待测文章的文章特征,确定待测文章的阅读量预测值。
技术总结