我正在做一个项目,该项目需要我解析新闻文章并确定其中最好的。我发现要确定一篇文章的质量,我需要三个主要参数:一篇文章的长度、Facebook 分享/转发以及文章发布后的时间。
我现在面临的问题是如何将所有三个参数放在一个数学函数中并为每篇文章得出一个分数?分配给他们每个人的分数将帮助我对文章进行排名并将其展示给用户。
也让我知道在确定质量时是否需要考虑任何其他参数。
我正在做一个项目,该项目需要我解析新闻文章并确定其中最好的。我发现要确定一篇文章的质量,我需要三个主要参数:一篇文章的长度、Facebook 分享/转发以及文章发布后的时间。
我现在面临的问题是如何将所有三个参数放在一个数学函数中并为每篇文章得出一个分数?分配给他们每个人的分数将帮助我对文章进行排名并将其展示给用户。
也让我知道在确定质量时是否需要考虑任何其他参数。
我不确定您的项目的确切性质是什么,但这项任务很难准确地完成。您如何考虑到分享/喜欢最多的文章往往是最两极分化的文章这一事实。喜欢/分享的数量也明显受到新闻网站受欢迎程度的影响。我认为任何类型的自动文本分析都不够准确,并且很容易被滥用。那么你最好的选择是寻找指示性代理,例如:
由于很难获得包含文章等级的数据集,因此您可能无法进行任何类型的统计分析。相反,您只需要制定一个公式并根据您的最佳判断权衡参数。为了支持这一点,也许可以对几篇文章进行手工评分,看看有什么不同的公式给你。
你想要的很容易实现。您必须处理您感兴趣的各种数据:增加和减少数据。增加数据被认为是“好”,好吧,只要它增加。越来越接近零的数据被认为是“更好”。
事实证明,所有四个数据集都是简单的整数:
增加数据
s \in N_0
(从零到无穷大的每个整数)r \in N_0
递减数据
对于减少数据,您希望使用绝对值作为指标:
t_0
文章的时间戳(unix 左右)。T
当前时间戳。l_0
表示被认为是“最佳”的文章的长度。L
表示文章的实际长度。然后:
|t_0 - T|
越接近零越好|l_0 - L|
越接近零越好因为绝对值是正整数,所以它遵循:
|l_0 - L| + |t_0 - T|
更接近于零,|t_0 - T|
并且 |l_0 - L|
更接近于零。
对于不断增加的数字也是如此。
因此,一篇文章越有可能是“正确”的长度和新的,这个数字越接近于零。
结论
增加数与减少数的商本身就是增加的。想一想:分母越小商越大。分子越大商越大。
这意味着:如果被认为是“更好”的商
(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|))