Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 以编程方式确定相对;“大众性”;项目列表(书籍、歌曲、电影等)_Algorithm_Statistics - Fatal编程技术网

Algorithm 以编程方式确定相对;“大众性”;项目列表(书籍、歌曲、电影等)

Algorithm 以编程方式确定相对;“大众性”;项目列表(书籍、歌曲、电影等),algorithm,statistics,Algorithm,Statistics,给出一个歌曲列表,确定它们相对“受欢迎程度”的最佳方法是什么 我的第一个想法是使用谷歌趋势。此歌曲列表: 地下思乡病 帝国心态 加利福尼亚古尔斯 生成以下内容:(为了找出现在流行的内容,我将报告限制在最后30天内) 《帝国精神状态》的流行程度略高于《加利福尼亚古尔斯》,而《地下思乡布鲁斯》则远不及这两部 所以这很有效,但是当你的列表有100或1000首歌曲时会发生什么呢?谷歌趋势只允许你一次比较5个术语,所以如果没有一个大循环,正确的方法是什么 另一种选择是在谷歌上搜索每首歌,看看哪首歌的搜索

给出一个歌曲列表,确定它们相对“受欢迎程度”的最佳方法是什么

我的第一个想法是使用谷歌趋势。此歌曲列表:

  • 地下思乡病
  • 帝国心态
  • 加利福尼亚古尔斯
  • 生成以下内容:(为了找出现在流行的内容,我将报告限制在最后30天内)

    《帝国精神状态》的流行程度略高于《加利福尼亚古尔斯》,而《地下思乡布鲁斯》则远不及这两部

    所以这很有效,但是当你的列表有100或1000首歌曲时会发生什么呢?谷歌趋势只允许你一次比较5个术语,所以如果没有一个大循环,正确的方法是什么


    另一种选择是在谷歌上搜索每首歌,看看哪首歌的搜索结果最多,但这并不能真正衡量同一件事,你可以在推特上搜索这个项目,看看它被提及了多少次。或者在亚马逊上查询一下,看看有多少人对它进行了评论,以及他们对它的评价。Twitter和亚马逊都有api。

    有一个非官方的谷歌趋势api。看,我没有使用它,但也许它有一些帮助。

    我当然会将谷歌的API称为“受限”

    通常,用于排序算法的比较函数非常“二进制”:

    • 投入:2个要素
    • 输出:真/假
    给你:

    • 投入:5个要素
    • 输出:每个元素的相对权重
    因此,您只需要对API进行线性调用(而排序通常需要对比较函数进行O(N logn)调用)

    您将需要准确的
    ceil((N-1)/4)
    调用。您可以并行化,但请仔细阅读用户指南,了解您有权提交的请求数量

    然后,一旦所有这些都被“评级”,你就可以在本地进行简单的排序

    直觉上,为了正确地收集它们,您应该:

    • 洗牌
    • 弹出前5个元素
    • 调用API
    • 在结果中插入已排序的对象(此处使用插入排序)
    • 拿起中位数
    • 弹出前4个元素(如果可用的元素较少,则弹出的元素较少)
    • 首先使用中间值和这4个值调用API
    • 返回“插入”,直到元素用完为止

    如果你的单子上有1000首歌,250个API调用,没什么可怕的。

    好问题——布兰妮·斯皮尔斯的一首歌可能会流行2个月,然后(谢天谢地)被遗忘,而埃尔维斯的另一首歌可能会持续流行30年。如何从数量上区分这两者?我们知道,我们想认为,持续的人气比“昙花一现”更重要,但如何才能得到这个结果呢

    首先,我会在发行日期前后正常化——地下思乡忧郁现在可能不受欢迎(虽然不是在我家),但回到1965年正常化可能会产生不同的结果

    由于大多数歌曲的受欢迎程度都在上升,趋于平稳,然后又在下降,所以让我们在它们趋于平稳时选择一个区域。有人可能会假设,在这段时间内,这两个序列是平稳的、不相关的和正态分布的。现在,您可以应用一个测试来确定方法是否不同

    可能有一些限制性较小的测试来确定两个时间序列之间的差异大小,但我还没有遇到过它们

    有人吗