我有超过1000个调查,其中许多包含开放式回复.
我希望能够"解析"所有单词并获得最常用单词的排名(忽略常用单词)以发现趋势.
我怎样才能做到这一点?我有可以使用的程序吗?
编辑如果没有第三方解决方案,如果我们只能继续讨论微软技术,那就太棒了.干杯.
我有一张USER桌子,有桌子userId和point田地.在运行时,我想知道特定用户群的排名是什么.实现此目的的最佳方法是:
1:将所有用户查询到列表中.基于点对列表进行排序并进行二进制搜索以查找该用户的排名.这听起来像个坏主意.
2:是否可以通过创建数据库查询来完成这些任务?
我期待2000-5000用户.
给出一个得分列表(例如5,5,4,2,2,0),我希望返回标准比赛排名(1,1,3,4,4,6).
从维基百科的排名页面,这里是SRC的摘要:
标准比赛排名("1224"排名)
在比赛排名中,比较相等的项目接收相同的排名数字,然后在排名数字中留下差距.在此差距中遗漏的排名数量比比较相等的项目数量少一个.同样地,每个项目的排名数字是1加上排在其上方的项目数量.这种排名策略经常被用于比赛,因为这意味着如果两个(或更多)竞争者在排名中占据一席之地,那么排名低于他们的所有人的位置不受影响(即,如果恰好一个人,竞争者只会来到第二位)得分比他们好,第三,如果恰好两个人的得分比他们好,第四个,如果恰好有三个人得分比他们好,等等).
因此,如果A排在B和C之前(比较相等),它们都排在D之前,则A获得排名第1("第一"),B排名第2("联合第二"),C也获得排名数字2("联合秒")和D获得排名第4("第四").在这种情况下,没有人会得到排名第3("第三"),这将留下差距.
任何语言的代码都非常有用.
另外,我有兴趣看到其他排名类型的算法(修改后的竞争排名,密集排名,序数排名和小数排名).
我在CouchDB中的文档结构如下所示:
{
"_id": "0a68cdbe4a7f3abf4046bc",
"_rev": "1-1508",
"score": {"math":90, "physics": 88, "chemistry": 60},
"student_name": "Mike"
}
Run Code Online (Sandbox Code Playgroud)
我需要在前端显示以下统计信息以设置学生的个人资料:
假设我只有2名学生,第二名学生的记录如下:
{
"_id": "0a68cdbe2344a3abf4046bc",
"_rev": "1-1608",
"score": {"math":80, "physics": 98, "chemistry": 90},
"student_name": "Jane"
}
Run Code Online (Sandbox Code Playgroud)
所以迈克的排名应该是:
math: 1
physics: 2
chemistry: 2
total: 2
Run Code Online (Sandbox Code Playgroud)
和Jane的排名应该是
math: 2
physics: 1
chemistry: 1
total: 1
Run Code Online (Sandbox Code Playgroud)
如果我没有明确说明问题,请告诉我.
我没有想出创建视图以获得排名的方法.我尝试过的:
编辑:用户名查询和排名检索的功能不需要仅由视图实现.欢迎任何想法!
Edit2:课程数量为1K到3K.学生人数将在1M到2M之间.
我有一个带有该结构的'user_score'表:
|id|user_id|group_id|score| timestamp |
| 1| 1| 1| 500| 2013-02-24 18:00:00|
| 2| 2| 1| 200| 2013-02-24 18:01:50|
| 3| 1| 2| 100| 2013-02-24 18:06:00|
| 4| 1| 1| 6000| 2013-02-24 18:07:30|
Run Code Online (Sandbox Code Playgroud)
我需要做的是从该表中选择来自确切组的所有用户.选择该组中的实际(根据时间戳)得分及其排名.
我所拥有的是(编辑:在Jocachin的评论之后我发现我自己的查询不能像我预期的那样工作,对所有人抱歉):
SELECT user_id, score, @curRank := @curRank + 1 AS rank
FROM (
SELECT *
FROM (
SELECT * FROM `user_score`
WHERE `group_id` = 1
ORDER BY `timestamp` DESC
) AS sub2
GROUP BY `user_id`
) AS sub, (SELECT @curRank := 0) r
ORDER BY …Run Code Online (Sandbox Code Playgroud) 在R程序中,我需要使用什么函数来排列列表中前四个最常用的单词?
例如,
c("apple", "banana", "apple", "banana", "banana",
"desk", "pen", "pen", "pen", "pen")
Run Code Online (Sandbox Code Playgroud)
使它像
"pen"
"banana"
"apple"
"desk"
Run Code Online (Sandbox Code Playgroud)
谢谢
如果我想使用共享案例(又名关系)的最小排名对一组数字进行排名:
dat <- c(13,13,14,15,15,15,15,15,15,16,17,22,45,46,112)
rank(dat, ties = 'min')
Run Code Online (Sandbox Code Playgroud)
我得到结果:
1 1 3 4 4 4 4 4 4 10 11 12 13 14 15
Run Code Online (Sandbox Code Playgroud)
但是,我希望等级是由 1,2,3,... n组成的连续系列,其中n是唯一等级的数量。
有没有办法rank通过将关系分配给上述最低等级来使(或类似功能)对一系列数字进行排名, 而不是按先前关系的数量跳过后续等级值,而是继续从前一个等级开始排名?
例如,我希望上述排名结果为:
1 1 2 3 3 3 3 3 3 4 5 6 7 8 9
Run Code Online (Sandbox Code Playgroud) 我有多个包含公司/属性名称和排名的表。
我想编写一段代码,它允许根据与表格总分相关的分数的百分位数将一系列分数放入特定的组中。我提供了一个非常简单的用例来演示我正在寻找的内容,将一组 10 家公司分成 5 组,但我想对其进行扩展,以便将这 5 组应用于具有多行的数据集,而无需指定值在 CASE 语句中。
我试图模拟NetLogo中的容量限制和优先级(5.3.1,在Mac Sierra上).它归结为要求有限数量的海龟(比方说n)做某些事情,并选择那些海龟,以便(1)它们满足某些条件,(2)它们是n具有最大变量值的海龟my-variable.
我试图这样做:
let subset-of-turtles turtles with [ condition-variable = some-value ]
ask max-n-of n subset-of-turtles [ my-variable ] [< do something >]
Run Code Online (Sandbox Code Playgroud)
但它有多个问题.
首先,如果没有乌龟满足条件[ condition-variable = some-value ],NetLogo会抛出错误
从一组仅0个代理请求n个随机代理.
我尝试通过在ask命令之前插入一行来解决:
let subset-of-turtles turtles with [ condition-variable = some-value ]
if subset-of-turtles != nobody [
ask max-n-of n subset-of-turtles [ my-variable ] [< do something >]
]
Run Code Online (Sandbox Code Playgroud)
但它不起作用:
observer> show turtles with [ condition-variable = some-value ]
observer: (agentset, 0 …Run Code Online (Sandbox Code Playgroud) 我想知道如何为排名任务配置 catboost。catboost 主页暗示它可以用于排名任务。然而,排名任务的文档似乎很少:https : //tech.yandex.com/catboost/doc/dg/concepts/cli-reference_train-model-docpage/
并且所有教程都专注于对单个实例进行分类:https : //github.com/catboost/catboost/tree/master/catboost/tutorials
理想情况下,会有一些类似于 LightGBM 的文档或示例用于排名:https : //github.com/Microsoft/LightGBM/tree/master/examples/lambdarank
有没有人用过 catboost 进行排名?