工作笔记

杂谈:当年未竟之遗憾,小段代码笔记。当时苦思冥想未解当中奥妙,如今轻松信手拈来,丝毫不费力气。感叹机缘未到纵使踏破铁鞋也无用,转角回眸,那人却在灯火阑珊处。

package plsa;

public class Plsa {
    double[][][] Pz_dw;
    double[][] Pz_d;
    double[][] Pw_z;
    int[][] nd_w;
    int kz, kd, kw;

    public Plsa(int kz, int kd, int kw, int[][] nd_w) {
        this.kz = kz;
        this.kd = kd;
        this.kw = kw;

        this.Pz_dw = new double[kz][kd][kw];
        this.Pz_d = new double[kz][kd];
        this.Pw_z = new double[kw][kz];

        for (int i = 0; i < kz; i++) {
            for (int j = 0; j < kd; j++) {
                for (int k = 0; k < kw; k++) {
                    this.Pz_dw[i][j][k] = (double) 1 / kz / kd / kw;
                }
            }
        }

        for (int i = 0; i < kz; i++) {
            for (int j = 0; j < kd; j++) {
                this.Pz_d[i][j] = (double) 1 / kz / kd;
            }
        }

        for (int i = 0; i < kw; i++) {
            for (int j = 0; j < kz; j++) {
                this.Pw_z[i][j] = (double) 1 / kw / kz;
            }
        }

        this.nd_w = nd_w;
    }

    public void run() {
        for (int i = 0; i < 10; i++) {
            MStep();
        }

        for (int i = 0; i < kz; i++) {
            for (int j = 0; j < kd; j++) {
                System.out.printf("%.2f\t", Pz_d[i][j]);
            }
            System.out.println();
        }
    }

    public void EStep() {
        for (int z = 0; z < kz; z++) {
            for (int d = 0; d < kd; d++) {
                for (int w = 0; w < kw; w++) {
                    double Pt = 0;
                    for (int ptz = 0; ptz < kz; ptz++) {
                        Pt += Pz_d[ptz][d] * Pw_z[w][ptz];
                    }
                    Pz_dw[z][d][w] = Pz_d[z][d] * Pw_z[w][z] / Pt;
                }
            }
        }
    }

    public void MStep() {
        for (int w = 0; w < kw; w++) {
            for (int z = 0; z < kz; z++) {
                double Pta = 0;
                for (int id = 0; id < kd; id++) {
                    Pta += nd_w[id][w] * Pz_dw[z][id][w];
                }

                double Ptb = 0;
                for (int id = 0; id < kd; id++) {
                    for (int iw = 0; iw < kw; iw++) {
                        Ptb += nd_w[id][iw] * Pz_dw[z][id][iw];
                    }
                }

                Pw_z[w][z] = Pta / Ptb;
                EStep();
            }
        }

        for (int z = 0; z < kz; z++) {
            for (int d = 0; d < kd; d++) {
                double Pta = 0;
                for (int iw = 0; iw < kw; iw++) {
                    Pta += nd_w[d][iw] * Pz_dw[z][d][iw];
                }

                double Ptb = 0;
                for (int iw = 0; iw < kw; iw++) {
                    for (int iz = 0; iz < kz; iz++) {
                        Ptb += nd_w[d][iw] * Pz_dw[iz][d][iw];
                    }
                }

                Pz_d[z][d] = Pta / Ptb;
                EStep();
            }
        }
    }
}
时间: 2025-01-07 00:52:03

工作笔记的相关文章

工作笔记3.手把手教你搭建SSH(struts2+hibernate+spring)环境

上文中我们介绍<工作笔记2.软件开发常用工具> 从今天开始本文将教大家如何进行开发?本文以搭建SSH(struts2+hibernate+spring)框架为例,共分为3步: 1)3个独立配置:struts2. Hibernate. Spring 2)2个整合:整合Sring和struts2. 整合Spring和Hibernate 3)资源分类 开发包.软件.框架源码,已经共享到百度网盘:http://pan.baidu.com/s/1o6FkbA6 一.3个独立配置 1.Struts2: 1

七月工作笔记 7.7 - 7.11

1. vs第二次单步调试崩溃..一开始不知道为什么,重装无数次..后来发现是VAssistX 插件的问题...将下载下来的插件包中的VA_X.dll  拷贝到VAssistX 的安装路径下即可. 2. 发现了一个很棒的vs配色方案的网站   http://studiostyl.es/ 3. sendmessage和postmessage的区别PostMessage只负责将消息放到消息队列中,不确定何时及是否处理SendMessage要等到受到消息处理的返回码(DWord类型)后才继续PostMe

工作笔记5.JAVA图片验证码

本文主要内容为:利用JAVA图片制作验证码. 设计思路: 1.拷贝AuthImageServlet.class图片验证码 2.配置web.xml 3.JSP中,调用封装好的AuthImageServlet,实现载入验证码的功能. 4.取出存放在Session中的验证码.在Action中推断验证码的正确性 相比較上一篇博客<工作笔记5.JAVA文本框验证码>而言,图片验证码添加了安全性. 在Action中,通过取出Session中的验证码与输入的验证码是否匹配进行推断. 步骤: 1.拷贝Auth

工作笔记(一)

1.The GetCurrentDirectory function retrieves the current directory for the current process DWORD GetCurrentDirectory(  DWORD nBufferLength,  // size of directory buffer  LPTSTR lpBuffer       // directory buffer); 用法: TCHAR tszModule[MAX_PATH ] = { 0

iOS核心动画工作笔记

1.图层和UIVIew的区别:图层不能和用户进行交互,图层性能高 2.imageVIew的图片显示是在图层上面的子层.用maskBounds剪切时剪的是图层,用户看不到是因为子层挡住了 3.CAlayer的代理方法没有协议,任何对象都能成为他的代理,即NSObject的方法 4.UIVIew内部的根图层的代理就是View本身,所以在UIVIew中的drawRect方法绘图.一个view不能设置代理.因为已经是它图层的代理 5.Core Animation直接作用于CALayer,缺点是动画后图片

【工作笔记】npapi插件编写

虽然chrome已经不再支持npapi插件,不过公司的浏览器外壳是基于低版本的chromium开发,所以由于工作需要,还是学习了一下npapi插件的开发. 此次开发主要参考了以下博客和文档: http://blog.csdn.net/z6482/article/details/7660748 http://mozilla.com.cn/post/21666/ [工作笔记]npapi插件编写,布布扣,bubuko.com

SEDA工作笔记(一)

摘要 在普遍认知中,软件开发实践是一项充满不确定性的工作,这是由于编码工作占据了其绝大部分的工作,而编码本身就是具有极大不确定性的.同样,计算机科学被视作一门门槛低,基于经验,而无理论意义的纯工程类学科.这种观念不仅为广泛非本专业内人士所共持,即便本门师生,从业人员也偶有赞同.本文试图通过一次对SEDA服务器架构的编程实践的学习与研究,找寻一种科学的解决问题思路.在本次实践中,笔者将强调数学在软件开发中的重要地位,同时指出在核心算法的制定工作阶段,数学是其最重要的工作,而非经验性的设计模式套用.

Android工作笔记之——7月第2周

一.Android TextView内容过长加省略号 android:ellipsize="end"   省略号在结尾 android:singleline="true" android:ellipsize="marquee"  跑马灯 :: 跑马灯这个属性似乎直接这样还不行,TextView只有在获取焦点后才会滚动显示隐藏文字,因此需要在包中新建一个类,继承TextView.重写isFocused方法,这个方法默认行为是,如果TextView获

【工作笔记】VLC播放器在chrome中的调用

VLC 是一款自由.开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD.音频 CD.VCD 及各类流媒体协议. ---------引用自官网http://www.videolan.org/ 在自己的html代码中调用vlc插件其实非常简单,以下代码来自官方demohttps://wiki.videolan.org/Documentation:WebPlugin/ 详细demo可以参考安装目录\sdk\activex\test.html <html> <title>

javascript - 工作笔记 (事件四)

在javascript - 工作笔记 (事件绑定二)篇中,我将事件的方法做了简单的包装, JavaScript Code 12345   yx.bind(item, "click", function (e) {         //console.log("Div Click 1 !");         alert("Div Click 1 !");         e.stopPropagation();     }); 但是这样用起来有些