1.一种基于学习者画像与习题相似度的预科中文习题推送方法,其特征在于,包括:步骤10、基于用户的母语语系与用户的历史做题轨迹构建学习者画像;
步骤20、构建知识点多叉树,然后采用LCA机制计算习题的相似度;
步骤30、基于用户的学习者画像与习题相似度,生成候选习题队列;
步骤40、基于用户交互数据遍历候选习题队列,生成推送习题队列;
其中,所述步骤10具体包括:
步骤11、将用户的母语信息L映射到九大语系与孤立语系LF,LF∈(0,1,2,3,4,5,6,7,
8,9);
步骤12、获取用户的历史做题轨迹数据集H,构建用户习题轨迹向量X,其中,X的长度为预科留学生中文知识大纲一级知识点的规模,X的值为一级知识点的做题准确率;
步骤13:汇总用户的母语信息L、语系数据LF以及用户习题轨迹向量X形成学习者画像UP=(L,LF,X);
步骤14:对于任意两位用户a和用户b,学习者画像分别为Ua(L1,LF1,X1)与Ub(L2,LF2,X2),采用如下公式计算用户a和用户b学习者画像的相似度:其中,n为预科留学生中文知识大纲一级知识点的规模,X1i为用户a在预科留学生中文知识大纲第i个一级知识点下的做题准确率,X2i为用户b在预科留学生中文知识大纲第i个一级知识点下的做题准确率。
2.根据权利要求1所述的方法,其特征在于:所述步骤20具体包括:步骤21、根据预科中文知识大纲构造知识点多叉树T,所述知识点多叉树T的根节点R为一虚拟节点,深度h为0,深度h为1的节点与中文知识大纲的一级知识点对应设置,下层子节点与中文知识大纲的下层知识点对应设置;定义所述知识点多叉树T路径权值函数为:h
d(h)=0.5
步骤22、针对任意两道习题ei,ej,i≠j,i,j=1,2...q,q为题库EL的习题数量,根据两道习题分别对应的知识点组Kei={kei1,kei2,...,kein}与Kej={kej1,kej2,...,kejm},计算Kei与Kej产生的所有知识点对的LCA节点,所述LCA节点为:对于有根树T的两个结点u、v,最近公共祖先LCA节点表示一个结点x,满足x是u和v的祖先且x的深度尽可能大;计算出所有知识点对的LCA节点到根节点的边权值的均值,得到习题ei和ej的习题相似度,公式如下:其中,kLCA(keio,kejp)为keio与kejp对应知识点的LCA节点,Dist(k)为任意节点至根节点路径权值和,Lei为题目ei所对应的知识点组Kei长度,Lej为题目ej所对应的知识点组Kej长度。
3.根据权利要求1所述的方法,其特征在于:所述步骤30具体包括:步骤31、提取用户的错题集WE,然后按照时间戳进行排序,生成错题集队列WEL=[we1,we2,...];
步骤32、对总习题库EL进行遍历,当总习题库EL中的任意习题e,满足 中且在错题集WE中可以找到某一习题we满足Simex(e,we)>0时,将习题e加入相似习题集SEL,得到相似习题集SEL={(ei,ri),j=1,2,...,qsel},其中ri为习题ei加入队列时的Simex(ei,we)的值;当错题集WE中存在多道习题与ei满足Simex>0,取最高值作为加入队列时记录的相似度数据ri;
步骤33、计算用户库U中所有用户与当前用户a的相似度,按相似度值由大到小进行排序,取前1%的用户作为相似组SU,然后获取相似组SU的习题集SUE;
步骤34、对相似习题集SEL按下述排序规则进行双条件排序:对任意两道习题(e1,e2)
当e1,e2∈SUE或e1, 时,按两者加入相似习题集SEL时记录的相似度数据由高到低 排序;
当e1,e2任意一道习题属于SUE且另一道习题不属于SUE时,属于SUE的习题置于不属于SUE的习题之前;
相似习题集SEL双条件排序后的结果即为习题候选队列CEL。
4.根据权利要求1所述的方法,其特征在于:所述步骤40具体包括:步骤41、根据一级知识点对用户的历史习题集进行归类,然后根据简单、中等、困难三个难度等级计算用户的答题正确率(rke,rkn,rkh)(k∈1,2...t);
针对每个一级知识点生成简单、中等、困难三个等级下的推送概率:(pke,pkn,pkh)
其中,pke代表简单难度习题的推送概率,pkn代表简单难度习题的推送概率,pkh代表简单难度习题的推送概率;
然后生成一个t×3的知识点推送概率矩阵M,其中,t为中文知识大纲一级知识点的数量;
步骤42、按顺序遍历生成的习题候选队列CEL,对任一习题e,其对应知识点组为{k1,k2,...,km};根据习题e对应的难度选取对应的知识点推送概率,汇总所有知识点的推送概率得到最终推送概率:基于概率阈值准则,确定习题e是否加入推送习题队列FEL,当所述推送习题队列FEL长度满足要求时,结束遍历,返回推送习题队列FEL中的所有题目推荐给用户。