我正在进行一个项目,该项目要求我解析新闻文章并确定其中最好的。我发现,要确定一篇文章的质量,我需要三个主要参数:文章的长度、脸书的分享/转发次数和文章发布后的时间。
我现在面临的问题是,如何将所有三个参数放在一个数学函数中,并为每一篇文章得出分数?分配给每一篇文章的分数将帮助我对文章进行排名,并将其展示给用户。
此外,请告诉我在确定质量时是否需要考虑任何其他参数。
我不确定你的项目的确切性质,但这项任务很难准确完成。你如何考虑到这样一个事实,即最受分享/点赞的文章往往是最两极分化的。点赞/分享的数量也明显受到新闻网站受欢迎程度的影响。我认为任何类型的自动文本分析都不够准确,很容易被滥用。然后,你最好的选择是寻找指示性代理,如:
- 通过在谷歌搜索结果中的排名来衡量网站的信誉
- 以流量衡量的网站人气
- 你提到的facebook点赞/分享数量
- 互联网上链接到文章的位置数
由于包含文章等级的数据集很难获得,您可能无法进行任何类型的统计分析。相反,你只需要制定一个公式,并用你的最佳判断来衡量参数。为了支持这一点,也许可以手工评分几篇文章,看看有什么不同的公式。
你想要的东西很容易实现。你必须有你感兴趣的各种数据:增加和减少的数据。增加数据被认为是"好的",只要它增加。数据越接近零,就被认为是"更好"的。
事实证明,所有四个数据集都是简单的整数:
增加数据
- 共享:正整数
s in N_0
(从零到无穷大的每个整数) - 转发:正整数
r in N_0
递减数据
对于递减数据,您希望使用绝对值作为度量:
- 让
t_0
是文章的时间戳(unix左右) - 设
T
为当前时间戳 - 设
l_0
表示被认为是"最佳"的文章的长度 - 设
L
表示文章的实际长度
然后:
- 时间:
|t_0 - T|
越接近零越好 - 长度:
|l_0 - L|
越接近零越好
由于绝对值是正整数,因此如下所示:
随着|t_0 - T|
和|l_0 - L|
更接近零,|l_0 - L| + |t_0 - T|
更接近零。
不断增加的数字也是如此。
因此,一篇文章越有可能是"正确"的长度和新的,这个数字就越接近零。
结论
一个递增数与一个递减数的商本身就是递增的。想想看:分母越小,商就越大。分子越大,商就越大。
这意味着:如果认为商"更好"
(s+r) / (|l_0 - L| + |t_0 - T|)
上升。
这不一定是一个整数。
增强
你可以缓和股票和转发的上涨,所以使用ln
得分会变得更加"自然"。
ln(s+r) / (|l_0 - L| + |t_0 - T|)
您可以使用exp
来软化分母:
ln(s+r) / exp(-(|l_0 - L| + |t_0 - T|))