理论教育 基于学习兴趣相似度的分组算法的实现

基于学习兴趣相似度的分组算法的实现

时间:2023-04-14 理论教育 版权反馈
【摘要】:把学习内容和学习兴趣上相同或比较接近的学习者分为协作学习成员组,首先把学习内容相同或相似程度较高的分在一个协作学习班里,然后再根据学习者的其他学习兴趣的相似度进行协作学习小组分组。

基于学习兴趣相似度的分组算法的实现

把学习内容和学习兴趣上相同或比较接近的学习者分为协作学习成员组,首先把学习内容相同或相似程度较高的分在一个协作学习班里,然后再根据学习者的其他学习兴趣的相似度进行协作学习小组分组。

分组算法的主要程序如下:

private String Context;

public String getContext()

{

return Context;

}

public void setContext(String context)

{

Context = context;

}

public String getShare()

{

return share;

}

public void setShare(String share)

{

this.share = share;

}

public String getSearch()

{

return search;

}

public void setSearch(String search)

{

this.search = search;

}

private String share;

private String search;

class Group

{

ArrayList list=new ArrayList();

public ArrayList getList()

{

return list;

}

int groupNum=0;

public void add(s[] s)

{

list.add(s);

}

public void setgroupNum(int num)

{

groupNum=num;

}

}(www.daowen.com)

public class fenzu

{

ArrayList<Group> groups=new ArrayList<Group>();

public static int num=1000;

public ArrayList<Group> grouping(s[][] s1)

{

if(s1.length==1)

{

Group group1=generateGroup();

group1.add(s1[0]);

group1.setgroupNum(num++);

groups.add(group1);

}

else if(alllow(s1))

{

for(int i=0;i<s1.length;i++)

{

onegroup(s1[i],groups);

}

}else

for(int i=0;i<s1.length;i++)

{

Group group1=generateGroup();

group1.setgroupNum(num++);

groupings(s1[i],group1);

groups.add(group1);

}

fix(groups);

for(int i=0;i<groups.size();i++)

{

if(groups.get(i).getList().size()==1)

Group group1=generateGroup();

groups.remove(i);

groups.add(group1);

}

return groups;

}

}

public Group generateGroup(){}; //生成一个新组

public int sim(s[] s1,s[] s2){}; //相似度计算

public void groupings(s[] s2,Group group){}; //把与Si兴趣相同或相似的信息向量放在一个群里

public void fix(ArrayList<E> list){}; //优化组信息,使组的数量能最小并且能满足每个兴趣向量只在一个组里

public boolean alllow(s[][] s1){}; //是否小于相似度临界值

public void onegroup(s[] s1,ArrayList groups){}; //所有成员的兴趣相似度都小于临界值,所以一人分配为一个组

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈