标签:子集 nbsp 文件 lock 文件加载 运算符 model weight 概率
??规则示范如下,权重和平方必须指定具体参数。同时,使用内联语法的变量必须以大写字母开头。
model.add( rule: ( Likes(A, ‘Dogs‘) & Likes(B, ‘Dogs‘) ) >> Friends(A, B), weight: 5.0, squared: true );
??由于内联语法必须是Groovy语法的子集,因此不支持以下运算符变体:
&&
||
->
<<
<-
!
??请注意,所有不受支持的运算符都支持变体。 算术规则是不支持内联语法的。
??规则形如:
model.add( rule: "( Likes(A, ‘Dogs‘) & Likes(B, ‘Dogs‘) ) >> Friends(A, B)", weight: 5.0, squared: true ); // 与上述形式相同作用的规则 model.add( rule: "5.0: ( Likes(A, ‘Dogs‘) && Likes(B, ‘Dogs‘) ) -> Friends(A, B) ^2" ); // 上述规则的未加权(约束)形式 model.add( rule: "( Likes(A, ‘Dogs‘) && Likes(B, ‘Dogs‘) ) -> Friends(A, B)" ); // 算术约束. model.add( rule: "Likes(A, +B) = 1 ." );
??字符串语法因为可以不遵守groovy语法,所以所有运算符的可以用,同时指定权重和平方也灵活的多。
??规则示范如下:
model.addRules(""" 1: ( Likes(A, ‘Dogs‘) & Likes(B, ‘Dogs‘) ) >> Friends(A, B) ^2 Likes(A, +B) = 1 . """); // 从文件加载多个规则。 model.addRules(new FileReader("myRules.txt"));
??可以使用addRules()方法一次添加多个规则,每个规则占一行,每条规则必须定义权重和平方。
??约束(限制条件)是未加权的算术规则。制定一个算术规则,可以明确地指定或者不指定它是未加权的(在规则末尾是否使用句点)。
// 用句点明确指出一个未加权规则(约束) model.add( rule: "Likes(A, +B) = 1 ." ); // 含蓄指出未加权规则 model.add( rule: "Likes(A, +B) = 1" );
概率软逻辑(PSL,Probabilistic soft logic)在Groovy语言中的规则规范
标签:子集 nbsp 文件 lock 文件加载 运算符 model weight 概率
原文地址:https://www.cnblogs.com/zhangjiajia/p/9463150.html