ts.Count; +=coincidedHyp [i]. setParents.Count; countPlusHyp=0, countMinusHyp=0; (int i=0; i 0) «+»; if (res <0) «-»; «n»;
/ / /
/ / / Функція класифікації текстів
/ / /
/ / /
/ / /
/ / /
/ / / void Classification (char [] res, List [] coincidedHyp, double k, int typeFuncResolution)
{(int i=0; i
{1: (coincidedHyp [i], k); [i]=ConflictResolution (coincidedHyp [i], k);; 2: (coincidedHyp [i], k); [i]= ConflictResolution (coincidedHyp [i], k);; 3: (coincidedHyp [i], k); [i]=ConflictResolution (coincidedHyp [i], k);; 4: (coincidedHyp [i], k); [i ]=ConflictResolution (coincidedHyp [i], k);; 5: (coincidedHyp [i], k); [i]=ConflictResolution (coincidedHyp [i], k);; 6: (coincidedHyp [i], k); [i]=ConflictResolution (coincidedHyp [i], k);;
}
}
/ / /
/ / / Процедура індукції
/ / /
/ / /
/ / / void Induction (List hypotheses, TextInfo [] setSamples)
{(int i=0; i
{hypCount1=hypotheses.Count; (int j=0; j
{
/ / Знаходимо перетин чергового об'єкта з поточної гіпотезою newIntersection=new HashSet<int>();.UnionWith(setSamples[i].setValues);.IntersectWith(hypotheses[j].setValues);
/ / Якщо перетин збігається з поточною гіпотезою,
/ / то додаємо об'єкт в список батьків гіпотези (hypotheses [j]. setValues.Count == newIntersection.Count && [j]. setValues.SetEquals (newIntersection))
{[j]. setParents.Add (i);
}
/ / інакше перевіряємо в які ще гіпотези входить знайдене перетин / / для визначення всіх батьків нової гіпотези
{newHyp=new Hypothesis ();. setValues ??= new HashSet ();. setValues.UnionWith (newIntersection);. setParents=new HashSet ();. setParents.UnionWith (hypotheses [j]. setParents);. setParents.Add (i);. type=hypotheses [j]. type; hypCount2=hypotheses.Count; k=0; (k
{(hypotheses [k]. setValues.Count == newHyp.setValues.Count && [k]. setValues.SetEquals (newHyp.setValues))
{[k]. setParents.UnionWith (newHyp.setParents);;
}
{(hypotheses[k].setValues.SetEquals(newHyp.setValues)).setParents.UnionWith(hypotheses[k].setParents);