kl距离 java_相对熵(relative entropy或 Kullback-Leibler divergence,KL距离)的java实现(三)...
代碼下載
http://files.cnblogs.com/finallyliuyu/KL.rar
主函數(shù)代碼
主函數(shù)代碼
publicstaticvoidmain(String[]?args)throwsFileNotFoundException,IOException
{//TODO?Auto-generated?method?stub;ArrayListenList1=newArrayList();
enList1=CalcuP("C:/Users/liuyu/workspace/KL/KL/zhangailing.txt");
ArrayListenList2=newArrayList();
enList2=CalcuP("C:/Users/liuyu/workspace/KL/KL/zhangailing2.txt");
ArrayListenList3=newArrayList();
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("《《小團(tuán)圓》究竟泄了張愛玲什么“秘密”?》與《《小團(tuán)圓》:張愛玲的一個夢》的KL距離:"+f1);
System.out.println("《《小團(tuán)圓》:張愛玲的一個夢》與《《小團(tuán)圓》究竟泄了張愛玲什么“秘密”?》的KL距離"+f2);
System.out.println("《《小團(tuán)圓》究竟泄了張愛玲什么“秘密”?》與《1945年毛和蔣介石在重慶談判前的秘密情報(bào)戰(zhàn)》的KL距離"+f3);
System.out.println("《1945年毛和蔣介石在重慶談判前的秘密情報(bào)戰(zhàn)》與《《小團(tuán)圓》究竟泄了張愛玲什么“秘密”?》的KL距離"+f4);
System.out.println("《“小團(tuán)圓”張愛玲的一個夢》與《1945年毛和蔣介石在重慶談判前的秘密情報(bào)戰(zhàn)》的KL距離"+f5);
System.out.println("《1945年毛和蔣介石在重慶談判前的秘密情報(bào)戰(zhàn)》與《“小團(tuán)圓”張愛玲的一個夢》的KL距離"+f6);
a.以字符為單位的計(jì)算結(jié)果如下:
《《小團(tuán)圓》究竟泄了張愛玲什么“秘密”?》與《《小團(tuán)圓》:張愛玲的一個夢》的KL距離: 2.269998592E9
《《小團(tuán)圓》:張愛玲的一個夢》與《《小團(tuán)圓》究竟泄了張愛玲什么“秘密”?》的KL距離4.099975168E9
《《小團(tuán)圓》究竟泄了張愛玲什么“秘密”?》與《1945年毛和蔣介石在重慶談判前的秘密情報(bào)戰(zhàn)》的KL距離 3.029988864E9
《1945年毛和蔣介石在重慶談判前的秘密情報(bào)戰(zhàn)》與《《小團(tuán)圓》究竟泄了張愛玲什么“秘密”?》的KL距離 4.289972736E9
《“小團(tuán)圓”張愛玲的一個夢》與《1945年毛和蔣介石在重慶談判前的秘密情報(bào)戰(zhàn)》的KL距離4.10997504E9
《1945年東和蔣介石在重慶談判前的秘密情報(bào)戰(zhàn)》與《“小團(tuán)圓”張愛玲的一個夢》的KL距離3.539982336E9
b.以詞為單位計(jì)算結(jié)果如下
《《小團(tuán)圓》究竟泄了張愛玲什么“秘密”?》與《《小團(tuán)圓》:張愛玲的一個夢》的KL距離: 5.629955584E9
《《小團(tuán)圓》:張愛玲的一個夢》與《《小團(tuán)圓》究竟泄了張愛玲什么“秘密”?》的KL距離8.62991872E9
《《小團(tuán)圓》究竟泄了張愛玲什么“秘密”?》與《1945年毛和蔣介石在重慶談判前的秘密情報(bào)戰(zhàn)》的KL距離 6.50994432E9
《1945年毛和蔣介石在重慶談判前的秘密情報(bào)戰(zhàn)》與《《小團(tuán)圓》究竟泄了張愛玲什么“秘密”?》的KL距離 8.029924864E9
《“小團(tuán)圓”張愛玲的一個夢》與《1945年毛和蔣介石在重慶談判前的秘密情報(bào)戰(zhàn)》的KL距離9.219941376E9
《1945年毛和蔣介石在重慶談判前的秘密情報(bào)戰(zhàn)》與《“小團(tuán)圓”張愛玲的一個夢》的KL距離7.739928576E9
從上面結(jié)果可以看出:《張秘密》與《張夢》之間距離最近,《毛》與《張夢》直接的概率分布距離近于《毛》與《張秘密》之間的概率分布。
另外補(bǔ)充一點(diǎn)java傳參的方式:對于簡單類型采用值傳遞的方法;對于復(fù)雜類型采用的是引用傳遞的機(jī)制。這有點(diǎn)類似于matlab.所以,
double f1=CalKL(enList1,enList2);
double f2=CalKL(enList2,enList1);
double f3=CalKL(enList1,enList3);
CalKL函數(shù)中如果改變了enlist1,enlist2的值就會使結(jié)果不正確。
總結(jié)
以上是生活随笔為你收集整理的kl距离 java_相对熵(relative entropy或 Kullback-Leibler divergence,KL距离)的java实现(三)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Maven(五)使用Nexus搭建Mav
- 下一篇: 判断DataRow中某列是否为空的方法