加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

概率软逻辑(PSL,Probabilistic soft logic)在Groovy语言中的

发布时间:2020-12-14 16:36:45 所属栏目:大数据 来源:网络整理
导读:1. 内联语法 ??规则示范如下,权重和平方必须指定具体参数。同时,使用内联语法的变量必须以大写字母开头。 model.add( rule: ( Likes(A, ‘Dogs‘) Likes(B,‘Dogs‘) ) Friends(A,B),weight: 5.0 ,squared: true ); ??由于内联语法必须是Groovy语法的子集

1. 内联语法

??规则示范如下,权重和平方必须指定具体参数。同时,使用内联语法的变量必须以大写字母开头。

model.add(
   rule: ( Likes(A,‘Dogs‘) & Likes(B,‘Dogs‘) ) >> Friends(A,B),weight: 5.0,squared: true
);

??由于内联语法必须是Groovy语法的子集,因此不支持以下运算符变体:

&&
||
->
<<
<-
!

??请注意,所有不受支持的运算符都支持变体。 算术规则是不支持内联语法的。

2. 字符串语法

??规则形如:

model.add( 
       rule: "( Likes(A,‘Dogs‘) & Likes(B,‘Dogs‘) ) >> Friends(A,B)",squared: true 
); 
// 与上述形式相同作用的规则 
model.add( 
       rule: "5.0: ( Likes(A,‘Dogs‘) && Likes(B,‘Dogs‘) ) -> Friends(A,B) ^2" 
); 
// 上述规则的未加权(约束)形式
model.add( 
       rule: "( Likes(A,B)" 
); 
// 算术约束. 
model.add( 
       rule: "Likes(A,+B) = 1 ." 
);

??字符串语法因为可以不遵守groovy语法,所以所有运算符的可以用,同时指定权重和平方也灵活的多。

3. 批量字符串语法

??规则示范如下:

model.addRules(""" 
          1: ( Likes(A,B) ^2 
          Likes(A,+B) = 1 . 
"""); 
// 从文件加载多个规则。 
model.addRules(new FileReader("myRules.txt"));

??可以使用addRules()方法一次添加多个规则,每个规则占一行,每条规则必须定义权重和平方。

4. 约束

??约束(限制条件)是未加权的算术规则。制定一个算术规则,可以明确地指定或者不指定它是未加权的(在规则末尾是否使用句点)。

// 用句点明确指出一个未加权规则(约束)
model.add( 
       rule: "Likes(A,+B) = 1 ." 
); 
// 含蓄指出未加权规则
model.add( 
       rule: "Likes(A,+B) = 1" 
);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读