700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 相对熵(relative entropy或 Kullback-Leibler divergence KL距离)的java实现(三)

相对熵(relative entropy或 Kullback-Leibler divergence KL距离)的java实现(三)

时间:2019-07-08 00:29:16

相关推荐

相对熵(relative entropy或 Kullback-Leibler divergence KL距离)的java实现(三)

代码下载

/finallyliuyu/KL.rar

主函数代码

主函数代码 publicstaticvoidmain(String[]args)throwsFileNotFoundException,IOException

{

//TODOAuto-generatedmethodstub;

ArrayList<Entity>enList1=newArrayList<Entity>();

enList1=CalcuP("C:/Users/liuyu/workspace/KL/KL/zhangailing.txt");

ArrayList<Entity>enList2=newArrayList<Entity>();

enList2=CalcuP("C:/Users/liuyu/workspace/KL/KL/zhangailing2.txt");

ArrayList<Entity>enList3=newArrayList<Entity>();

enList3=CalcuP("C:/Users/liuyu/workspace/KL/KL/maozedong.txt"); double f1=CalKL(enList1,enList2);

double f2=CalKL(enList2,enList1);

double f3=CalKL(enList1,enList3);

doublef4=CalKL(enList3,enList1);

doublef5=CalKL(enList2,enList3);

doublef6=CalKL(enList3,enList2);

System.out.println("《《小团圆》究竟泄了张爱玲什么“秘密”?》与《《小团圆》:张爱玲的一个梦》的KL距离:"+f1);

System.out.println("《《小团圆》:张爱玲的一个梦》与《《小团圆》究竟泄了张爱玲什么“秘密”?》的KL距离"+f2);

System.out.println("《《小团圆》究竟泄了张爱玲什么“秘密”?》与《1945年毛和蒋介石在重庆谈判前的秘密情报战》的KL距离"+f3);

System.out.println("《1945年毛和蒋介石在重庆谈判前的秘密情报战》与《《小团圆》究竟泄了张爱玲什么“秘密”?》的KL距离"+f4);

System.out.println("《“小团圆”张爱玲的一个梦》与《1945年毛和蒋介石在重庆谈判前的秘密情报战》的KL距离"+f5);

System.out.println("《1945年毛和蒋介石在重庆谈判前的秘密情报战》与《“小团圆”张爱玲的一个梦》的KL距离"+f6);

a.以字符为单位的计算结果如下:

《《小团圆》究竟泄了张爱玲什么“秘密”?》与《《小团圆》:张爱玲的一个梦》的KL距离: 2.269998592E9

《《小团圆》:张爱玲的一个梦》与《《小团圆》究竟泄了张爱玲什么“秘密”?》的KL距离4.099975168E9

《《小团圆》究竟泄了张爱玲什么“秘密”?》与《1945年毛和蒋介石在重庆谈判前的秘密情报战》的KL距离 3.029988864E9

《1945年毛和蒋介石在重庆谈判前的秘密情报战》与《《小团圆》究竟泄了张爱玲什么“秘密”?》的KL距离 4.289972736E9

《“小团圆”张爱玲的一个梦》与《1945年毛和蒋介石在重庆谈判前的秘密情报战》的KL距离4.10997504E9

《1945年东和蒋介石在重庆谈判前的秘密情报战》与《“小团圆”张爱玲的一个梦》的KL距离3.539982336E9

b.以词为单位计算结果如下

《《小团圆》究竟泄了张爱玲什么“秘密”?》与《《小团圆》:张爱玲的一个梦》的KL距离: 5.629955584E9

《《小团圆》:张爱玲的一个梦》与《《小团圆》究竟泄了张爱玲什么“秘密”?》的KL距离8.62991872E9

《《小团圆》究竟泄了张爱玲什么“秘密”?》与《1945年毛和蒋介石在重庆谈判前的秘密情报战》的KL距离 6.50994432E9

《1945年毛和蒋介石在重庆谈判前的秘密情报战》与《《小团圆》究竟泄了张爱玲什么“秘密”?》的KL距离 8.029924864E9

《“小团圆”张爱玲的一个梦》与《1945年毛和蒋介石在重庆谈判前的秘密情报战》的KL距离9.219941376E9

《1945年毛和蒋介石在重庆谈判前的秘密情报战》与《“小团圆”张爱玲的一个梦》的KL距离7.739928576E9

从上面结果可以看出:《张秘密》与《张梦》之间距离最近,《毛》与《张梦》直接的概率分布距离近于《毛》与《张秘密》之间的概率分布。

另外补充一点java传参的方式:对于简单类型采用值传递的方法;对于复杂类型采用的是引用传递的机制。这有点类似于matlab.所以,

double f1=CalKL(enList1,enList2);

double f2=CalKL(enList2,enList1);

double f3=CalKL(enList1,enList3);

CalKL函数中如果改变了enlist1,enlist2的值就会使结果不正确。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。