首页 / 专利库 / 人工智能 / 相似性得分 / 一种在线评测系统的题目推荐方法

一种在线评测系统的题目推荐方法

阅读:379发布:2020-05-12

专利汇可以提供一种在线评测系统的题目推荐方法专利检索,专利查询,专利分析的服务。并且本 发明 提供一种在线评测系统的题目推荐方法。本发明方法,包括:S1、提取在线评测系统 数据库 中的用户提交题目的三元组;S2、建立用户题目关联矩阵;S3、通过用户解出题目的情况,计算用户之间的相似性;S4、计算推荐题目得分;S5、根据题目得分,对题目进行排序,根据题目排序推荐给用户适合做的题目。本发明的技术方案可应用于程序设计课程教学和竞赛的在线评测系统中,能够推荐给用户适合其编程能 力 的题目,避免盲目做题而导致大量错误提交。,下面是一种在线评测系统的题目推荐方法专利的具体信息内容。

1.一种在线评测系统的题目推荐方法,其特征在于,包括如下步骤:
S1、提取在线评测系统数据库中的用户提交题目的三元组;
S2、建立用户题目关联矩阵;
S3、通过用户解出题目的情况,计算用户之间的相似性;
S4、计算推荐题目得分;
S5、根据题目得分,对题目进行排序,根据题目排序推荐给用户适合做的题目。
2.根据权利要求1所述的在线评测系统的题目推荐方法,其特征在于,
所述的数据库中存在一个题目提交的集合S={s1,s2,…,si,…,sn},每次提交的si是一个三元组<用户,问题,判题结果>,表示相应的用户解决相应的问题,给出相应的判决结果。
3.根据权利要求2所述的在线评测系统的题目推荐方法,其特征在于,所述判决结果的类型包括正确、答案错误、超时、运行时错误、编译错误、格式错误。
4.根据权利要求1所述的在线评测系统的题目推荐方法,其特征在于,所述步骤S2中建立的用户题目关联矩阵中,每个用户对应一道题目,有一个布尔型变量,如果用户的代码正确的解出了题目,布尔型变量的值为1,否则值为0。
5.根据权利要求1所述的在线评测系统的题目推荐方法,其特征在于,所述步骤S3中计算用户之间的相似性的具体过程如下:
S31、计算活动用户和用户i一共解出了多少道题目,记作num;
S32、计算活动用户和用户i共同解出的题目,记作c;
S33、活动用户和用户i的相似性为c/num。
6.根据权利要求1所述的在线评测系统的题目推荐方法,其特征在于,所述步骤S4中计算推荐题目得分的具体过程如下:
S41、计算活动用户和其他用户的相似性;
S42、按照相似性大小对其他用户进行排序,取前k名相似性高的用户,根据前k名用户解出题目的情况对活动用户未解决的问题p进行计分;
S43、对于每一个活动用户未解出的问题p,如果排名前k名的用户有1位用户解出,那么问题p的分数加1,如果前k名的用户有n名用户解出了这道题目,则问题p的得分为n。

说明书全文

一种在线评测系统的题目推荐方法

技术领域

[0001] 本发明涉及编程数据处理技术领域,具体而言,尤其涉及一种在线评测系统的题目推荐方法。

背景技术

[0002] 在线评测系统(online judge)能够自动对程序进行评判,并根据题目的评测情况,返回评测结果。在线评测系统一开始用于国际大学生程序设计竞赛的竞赛系统,由于系统对程序判定的公平性,通过此项竞赛培养和选拔了一批优秀的信息技术人才。由于在线评测系统的应用能够有效的提高学生的编程能和程序设计能力,在全球范围内有越来越多的高校应用在线评测系统作为培养提升学生编程能力和程序设计竞赛技能的实验平台。随着互联网应用的普及,各大在线评测系统中都有非常大量的题目和注册用户,大量的题目代码提交,这些提交的代码中有正确的和很多不正确的。每道题目都有数以百计万计的代码提交,并且提交量每天都在增长,关于题目和解题代码提交的大量数据导致了用户无法根据自己的能力选择合适的题目。
[0003] 一种基于服务的可扩展程序竞赛评测系统(申请号:201710046903)克服当前程序评测系统技术上的不足,提供一种基于服务的、可根据实际情况灵活扩展的、能够对外提供服务的分布式程序竞赛评测系统,但是,并未涉及到在线评测系统的题目推荐功能。

发明内容

[0004] 根据上述提出的技术问题,而提供一种在线评测系统的题目推荐方法。本发明根据在线评测系统中的用户提交题目的三元组,建立了用户题目关联矩阵。根据关联矩阵计算活动用户于其他用户的相似性。根据相似性排序对活动用户未解出的题目进行计分。
[0005] 本发明采用的技术手段如下:
[0006] 一种在线评测系统的题目推荐方法,包括如下步骤:
[0007] S1、提取在线评测系统数据库中的用户提交题目的三元组;
[0008] S2、建立用户题目关联矩阵;
[0009] S3、通过用户解出题目的情况,计算用户之间的相似性;
[0010] S4、计算推荐题目得分;
[0011] S5、根据题目得分,对题目进行排序,根据题目排序推荐给用户适合做的题目。
[0012] 进一步地,所述的数据库中存在一个题目提交的集合S={s1,s2,…,si,…,sn},每次提交的si是一个三元组<用户,问题,判题结果>,表示相应的用户解决相应的问题,给出相应的判决结果。
[0013] 进一步地,所述判决结果的类型包括正确、答案错误、超时、运行时错误、编译错误、格式错误。
[0014] 进一步地,所述步骤S2中建立的用户题目关联矩阵中,每个用户对应一道题目,有一个布尔型变量,如果用户的代码正确的解出了题目,布尔型变量的值为1,否则值为0。
[0015] 进一步地,所述步骤S3中计算用户之间的相似性的具体过程如下:
[0016] S31、计算活动用户和用户i一共解出了多少道题目,记作num;
[0017] S32、计算活动用户和用户i共同解出的题目,记作c;
[0018] S33、活动用户和用户i的相似性为c/num。
[0019] 进一步地,所述步骤S4中计算推荐题目得分的具体过程如下:
[0020] S41、计算活动用户和其他用户的相似性;
[0021] S42、按照相似性大小对其他用户进行排序,取前k名相似性高的用户,根据前k名用户解出题目的情况对活动用户未解决的问题p进行计分;
[0022] S43、对于每一个活动用户未解出的问题p,如果排名前k名的用户有1位用户解出,那么问题p的分数加1,如果前k名的用户有n名用户解出了这道题目,则问题p的得分为n。
[0023] 较现有技术相比,本发明具有以下优点:
[0024] 本发明提供的在线评测系统的题目推荐方法,可应用于程序设计课程教学和竞赛的在线评测系统中,能够推荐给用户适合其编程能力的题目,避免盲目做题而导致大量错误提交。
[0025] 基于上述理由本发明可在编程数据处理等领域广泛推广。附图说明
[0026] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0027] 图1为本发明方法流程图

具体实施方式

[0028] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0029] 需要说明的是,本发明的说明书权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0030] 实施例
[0031] 如图1所示,本发明提供了一种在线评测系统的题目推荐方法,包括如下步骤:
[0032] S1、提取在线评测系统数据库中的用户提交题目的三元组;
[0033] 进一步地,作为本发明优选的实施方式,所述的数据库中存在一个题目提交的集合S={s1,s2,…,si,…,sn},每次提交的si是一个三元组<用户,问题,判题结果>,表示相应的用户解决相应的问题,给出相应的判决结果,判决结果的类型包括正确、答案错误、超时、运行时错误、编译错误、格式错误。
[0034] 本实施例中,提取的用户提交题目的三元组具体如下:
[0035] s1:<用户1,问题1,正确>,s2:<用户1,问题2,编译错误>,
[0036] s3:<用户1,问题3,答案错误>,s4:<用户1,问题4,正确>,
[0037] s5:<用户1,问题5,正确>;s6:<用户2,问题1,正确>,
[0038] s7:<用户2,问题2,正确>,s8:<用户2,问题3,超时>,
[0039] s9:<用2,问题4,编译错误>,s10:<用户2,问题5,超时>…
[0040] S2、建立用户题目关联矩阵;
[0041] 进一步地,作为本发明优选的实施方式,所述步骤S2中建立的用户题目关联矩阵中,每个用户对应一道题目,有一个布尔型变量,如果用户的代码正确的解出了题目,布尔型变量的值为1,否则值为0。如下表所示:
[0042]   问题1 问题2 问题3 问题4 问题5用户1 1 0 0 1 1
用户2 1 1 0 0 0
用户3 1 1 0 1 0
用户4 1 1 1 0 0
用户5 1 0 1 1 1
[0043] 用户1正确解出了问题1、问题4和问题5,用户2正确解出了问题1和问题2。
[0044] S3、通过用户解出题目的情况,计算用户之间的相似性;
[0045] 进一步地,作为本发明优选的实施方式,所述步骤S3中计算用户之间的相似性的具体过程如下:
[0046] S31、计算活动用户和用户i一共解出了多少道题目,记作num;
[0047] S32、计算活动用户和用户i共同解出的题目,记作c;
[0048] S33、活动用户和用户i的相似性为c/num。
[0049] 具体的,本实施例中,如果用户1是活动用户,则:
[0050] 活动用户1和用户2的相似性,记作s12=1/4=0.25;
[0051] 活动用户1和用户3的相似性,记作s13=2/4=0.50;
[0052] 活动用户1和用户4的相似性,记作s14=1/5=0.20;
[0053] 活动用户1和用户5的相似性,记作s15=3/4=0.75;
[0054] S4、计算推荐题目得分;
[0055] 进一步地,作为本发明优选的实施方式,所述步骤S4中计算推荐题目得分的具体过程如下:
[0056] S41、计算活动用户和其他用户的相似性;
[0057] S42、按照相似性大小对其他用户进行排序,取前k名相似性高的用户,根据前k名用户解出题目的情况对活动用户未解决的问题p进行计分;
[0058] S43、对于每一个活动用户未解出的问题p,如果排名前k名的用户有1位用户解出,那么问题p的分数加1,如果前k名的用户有n名用户解出了这道题目,则问题p的得分为n。
[0059] 本实施例中,根据相似性取前3位用户,用户2、3、5计算推荐题目得分,题目2推荐得分为P2=2,题目3推荐得分为P3=1。
[0060] S5、根据题目得分,对题目进行排序,根据题目排序推荐给用户适合做的题目。
[0061] 本实施例中,为活动用户1推荐的题目序列为:
[0062] 第1位问题2;
[0063] 第2位问题3;
[0064] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈