概率软逻辑(PSL,Probabilistic soft logic)是用于开发概率模型的机器学习框架,由加州大学圣克鲁兹分校和马里兰大学联合开发。目前其复杂的环境构建方式和Groovy语言表达给像作者一样的初学者带来了不小的困难,而且诸多的依赖项使原本已经构建好的模型小错误频繁。
经过努力,作者将其构建成单个jar包,并且加入编码机制使其可以支持各种语言的数据。主要贡献有三:
1.将PSL原本复杂的依赖打包为单个jar包,加入依赖即可开始使用。
2. 将不够熟悉的Groovy语言模型构建方式全部转化为java支持,只需一个.java文件便可进行模型构建。
3.加入编码机制,使PSL可以处理除英文以外的语言。
链接:https://pan.baidu.com/s/1PybpNoPpvk4jmSMw7Rm_7A 密码:g1cx
链接文件夹里有三个文件:
PSL_swust1.0.jar 修改过的PSL模型
SimpleAcquaintances.zip PSL官方例子的改编版本(不包含权重学习和函数)
Entity_resolution.zip PSL官方例子的改编版本(包含权重学习和函数)
以SimpleAcquaintances内SimpleAcquaintances.java为例进行阐述。
1.配置项/* * ======【配置项】====== */ Tool tool = new Tool(); DataStore datastore; HashMap<String, Partition> partitions = new HashMap<String, Partition>(); String path = tool.getPath(new SimpleAcquaintances().getClass()) + "/../data/";// SimpleAcquaintances改为当前类名 String[] paths = tool.getFiles(path); PSLMODEL psl = new PSLMODEL(paths, "H2");// 在安装了postgresql数据库时可H2改为postgresql datastore = psl.getDatastore(); psl.transcoding = false;//是否给数据编码(此值只决定数据是否编码,谓词默认都要编码)