probabilistic latent semantic analysis Java code