问题标签 [ranking]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 优化慢排名查询
我需要优化一个查询,以获得永远需要的排名(查询本身有效,但我知道这很糟糕,我刚刚用大量记录尝试过它,它给出了超时)。
我将简要解释模型。我有 3 张桌子:player、team 和 player_team。我有球员,他们可以属于一个球队。听起来很明显,球员存储在球员表中,球队存储在球队中。在我的应用程序中,每个玩家都可以随时切换团队,并且必须保留日志。但是,在给定时间,一名球员被认为只属于一个球队。玩家的当前团队是他加入的最后一个团队。
我认为球员和球队的结构并不相关。我每个都有一个 id 列 PK。在 player_team 我有:
现在,每支球队都会为每个加入的球员分配一个积分。所以,现在,我想得到前 N 支拥有最多球员的球队的排名。
我的第一个想法是首先从 player_team 获取当前玩家(即每个玩家的最高记录;该记录必须是玩家当前的团队)。我没有找到一个简单的方法来做到这一点(尝试 GROUP BY player_team.player_id HAVING player_team.id = MAX(player_team.id),但这并没有削减它。
我尝试了一些不起作用的查询,但设法让它工作。
正如我所说,它可以工作,但看起来很糟糕,性能更差,所以我确信一定有更好的方法。有人对优化这个有什么想法吗?
顺便说一句,我正在使用mysql。
提前致谢
添加解释。(抱歉,不知道如何正确格式化)
algorithm - 信任度量和相关算法
我正在尝试更多地了解信任指标(包括相关算法)以及用户投票、排名和评级系统如何连接到严厉的滥用。我已经阅读了描述信任指标的抽象文章和论文,但还没有看到任何实际的实现。我的目标是创建一个系统,允许用户对其他用户和其他用户的内容进行投票,并通过这些投票和相关元数据,确定这些投票是否可以应用于用户级别或受欢迎程度。
您是否在社交图谱中使用或看到过某种信任系统?它是如何工作的,它的优势和劣势是什么?
c# - 关键字排序算法
我有 1000 多项调查,其中许多包含开放式答复。
我希望能够“解析”所有单词并获得最常用单词的排名(不考虑常用单词)以发现趋势。
我怎样才能做到这一点?有我可以使用的程序吗?
编辑如果第 3 方解决方案不可用,如果我们可以只讨论微软技术,那就太好了。干杯。
algorithm - 基于其视图/评论计算页面重要性的算法
我需要一种算法,允许我根据页面的浏览量和评论数确定我网站站点地图的适当<priority>
字段。
对于那些不熟悉站点地图的人,优先级字段用于表示一个页面相对于同一网站上其他页面的重要性。它必须是 0 到 1 之间的十进制数。
该算法将接受两个参数,viewCount
和commentCount
,并将返回优先级值。例如:
algorithm - Groovy 中的简单排名算法
我有一个简短的常规算法,用于根据食物的评级为食物分配排名。这可以在 groovy 控制台中运行。代码运行良好,但我想知道是否有更 Groovy 或功能性更强的方式来编写代码。如果可能的话,认为摆脱previousItem
和rank
局部变量会很好。
建议?
format - 将 rank-per-candidate 格式转换为 OpenSTV BLT 格式
我最近使用问卷收集了一组关于各种软件组件重要性的意见。考虑到某种形式的 Condorcet 投票方法将是获得总排名的最佳方式,我选择使用 OpenSTV 对其进行分析。
我的数据采用表格格式,以空格分隔,看起来或多或少类似于:
在这种格式中,数字表示排名,顺序表示候选。 每个“候选人”都有一个从 1 到 7 的等级(必需),其中 1 表示最重要,7 表示最不重要。不允许重复。
这种格式让我印象深刻,因为它是表示输出的最自然的方式,是选票格式的直接表示。
OpenSTV/BLT 格式使用不同的方法来表示相同的信息,概念上如下:
实际的数字文件格式使用候选的(基于 1 的)索引,而不是标签,因此更像:
在这种格式中,数字表示候选,序列顺序表示排名。实际的、真实的 BLT 格式还包括一个前导权重和一个后面的零,以指示每张选票的结束,对此我不太关心。
我的问题是,从第一种格式转换为(数字)第二种格式的最优雅的方法是什么?
sql - 如何为 SQL Server 全文搜索中的列分配不同的权重?
我正在使用 SQL Server 2008 FTS,我希望能够将加权排名集成到我的搜索结果中。但是,我想对在不同的搜索词中找到的列进行加权。例如,如果我有一个 Title 列和一个 Description 列,我希望 Title 中的匹配项排名高于 Description 中的匹配项。
这在 SQL Server 2008 中可行吗?据我所知,我只能为特定术语添加权重,而不是列位置。
c# - 如何实现等级结构
实施等级系统的最佳方法是什么:
这是我将使用的代码
你认为这是最有效的方法吗?
sql - 我如何找到每年排名前 N 的击球手?
我在 MySQL 实例中使用Lahman 棒球数据库。我想找到每年都在本垒打(HR)中名列前茅的球员。Batting 表的架构具有以下(相关部分):
对于每一年,每个玩家都有一个条目(每年数百到 12k,可以追溯到 1871 年)。一年内获得前 N 名击球手很容易:
但我有兴趣找到每年的前三名。我找到了这样的解决方案,描述了如何从一个类别中选择顶部,我试图将它应用于我的问题,但最终得到一个永远不会返回的查询:
我哪里出错了?
python - Efficient method to calculate the rank vector of a list in Python
I'm looking for an efficient way to calculate the rank vector of a list in Python, similar to R's rank
function. In a simple list with no ties between the elements, element i of the rank vector of a list l
should be x if and only if l[i]
is the x-th element in the sorted list. This is simple so far, the following code snippet does the trick:
Things get complicated, however, if the original list has ties (i.e. multiple elements with the same value). In that case, all the elements having the same value should have the same rank, which is the average of their ranks obtained using the naive method above. So, for instance, if I have [1, 2, 3, 3, 3, 4, 5]
, the naive ranking gives me [0, 1, 2, 3, 4, 5, 6]
, but what I would like to have is [0, 1, 3, 3, 3, 5, 6]
. Which one would be the most efficient way to do this in Python?
Footnote: I don't know if NumPy already has a method to achieve this or not; if it does, please let me know, but I would be interested in a pure Python solution anyway as I'm developing a tool which should work without NumPy as well.