【问题标题】:Algorithm to determine quality of an article确定文章质量的算法
【发布时间】:2013-07-01 23:05:40
【问题描述】:

我正在开展一个项目,该项目需要我解析新闻文章并确定其中最好的文章。我发现要确定一篇文章的质量,我需要三个主要参数:一篇文章的长度、Facebook 分享/转发以及文章发布后的时间。

我现在面临的问题是如何将所有三个参数放在一个数学函数中,并为每篇文章得出一个分数?分配给他们每个人的分数将帮助我对文章进行排名并将其展示给用户。

如果在确定质量时我需要考虑任何其他参数,请告诉我。

【问题讨论】:

  • 如果你能准确解决这个问题,你在学生论文评分自动化方面大有可为!
  • @emschorsch 这并不遥远,几个 Pearson 测试已经自动评分。或者查看开源解决方案kaggle.com/c/ASAP-AES。可以在论坛中找到技术跟进:kaggle.com/c/asap-aes/forums/t/2100/what-approach-did-you-use
  • kaggle 很棒,我真的很想尝试更多他们的比赛。然而,话虽如此,我对任何自动化论文评分的尝试持怀疑态度。这是一个独特的领域,因为它的主要用例,评分,是学生积极尝试操纵系统的地方。学生将很快掌握诸如长度加权、词汇加权等特征。考虑到不断变化的竞争环境,似乎无法准确地做到这一点。

标签: algorithm nlp data-mining data-modeling text-parsing


【解决方案1】:

我不确定您的项目的确切性质是什么,但这项任务很难准确地完成。您如何考虑到最常被分享/喜欢的文章往往是最两极分化的文章这一事实。喜欢/分享的数量也明显受到新闻网站受欢迎程度的影响。我认为任何类型的自动文本分析都不够准确,并且很容易被滥用。那么你最好的选择是寻找指示性代理,例如:

  • 通过在 google 搜索结果中的排名来衡量网站的声誉
  • 按流量衡量的网站受欢迎程度
  • 您提到的 Facebook 喜欢/分享的数量
  • 互联网上链接到文章的地方的数量。

由于很难获得包含文章等级的数据集,因此您可能无法进行任何类型的统计分析。相反,您只需要制定一个公式并根据您的最佳判断权衡参数。为了稍微支持这一点,也许可以对几篇文章进行手工评分,看看有什么不同的公式给你。

【讨论】:

  • 这是一个网络应用程序,它收集来自不同来源的最新新闻项目并将最好的新闻项目展示给用户,我一定会考虑您列出的其他参数。 “喜欢/分享的数量也明显受到新闻网站受欢迎程度的影响”。这是我担心的事情。
  • 如果您的应用适合重复访问者,您可能还需要考虑跟踪人们点击的文章长度,并根据您确定的特定用户的首选长度对文章进行排名。
  • 是的,肯定会有回头客。有了所有参数,我现在唯一担心的是如何将它们全部放入一个简单的数学函数中。
  • 一旦你得到一些数据,你可以对每个参数进行标准化,这样你就可以比较不同的参数值(减去平均值并除以标准偏差)。然后最简单的就是对标准化参数进行加权平均。权重将是您对每个参数的相对重要性。对于这种任务,我的猜测是权重可能最好通过反复试验和人为判断来确定。
  • 非常感谢@emschorsch 的建议。我会试试看。
【解决方案2】:

您的愿望很容易实现。您必须处理您感兴趣的各种数据:增加和减少数据。增加数据被认为是“好”,好吧,只要它增加。数据越接近零,越被认为是“更好”。

原来这四个数据集都是简单的整数:

增加数据

  • shares:正整数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|))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 2011-04-25
    • 1970-01-01
    • 2014-08-20
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    相关资源
    最近更新 更多