val v1 = new BooleanVariable(true)val v2 = new BooleanVariable(false)val v3 = new BooleanVariable(true)val v4 = new BooleanVariable(false)val v5 = new BooleanVariable(false)
val globalFactor = new Factor { outer ⇒ def numVariables: Int = variables.length def variables: Seq[factorie.Var] = Array(v1, v2, v3, v4, v5) def currentScore: Double = assignmentScore(currentAssignment) def assignmentScore(a: Assignment): Double = { ... } def variable(index: Int): factorie.Var = variables(index)
def currentAssignment: Assignment = new Assignment { inner ⇒ def variables: Iterable[factorie.Var] = outer.variables def get(v: factorie.Var): Option[v.Value] = Some(v.value) def apply(v: factorie.Var): v.Value = v.value def contains(v: factorie.Var): Boolean = outer.variables contains v }}
val model = new ItemizedModel(globalFactor)val summary = InferByBPLoopy.infer(List(v1, v2, v3, v4, v5), model)
// Excerpt from cc.factorie.infer.BP.scala
41 factor match {42 case factor:Factor1[DiscreteVar @unchecked] => { ... }44 case factor:Factor2[DiscreteVar @unchecked,DiscreteVar @unchecked] => { ... }49 case factor:Factor3[VectorVar @unchecked,
VectorVar @unchecked,VectorVar @unchecked] => { ... }58 case factor: Factor4[DiscreteVar @unchecked, DiscreteVar @unchecked, DiscreteVar @unchecked, DiscreteVar @unchecked] => { ... }63 }
val vs = Vars(Array(v1, v2, v3, v4, v5))
val globalFactor = new Factor1(vs) { def score(vs: Seq[BooleanValue]): Double = { ... }}
val model = new ItemizedModel(globalFactor)val summary = InferByBPLoopy.infer(vs, model)summary.marginal(globalFactor)
Method threw 'java.util.NoSuchElementException' exception.
detailMessage = key not found: Factor(Vars(BooleanVariable(true),BooleanVariable(false),BooleanVariable(true),BooleanVariable(false),BooleanVariable(false)))