public virtual void Learn(Example correct, Example incorrect, IDictionary <int, CompressedFeatureVector> mentionFeatures, Compressor <string> compressor, MaxMarginMentionRanker.ErrorType errorType) { ICounter <string> cFeatures = meta.GetFeatures(correct, mentionFeatures, compressor); ICounter <string> iFeatures = meta.GetFeatures(incorrect, mentionFeatures, compressor); foreach (KeyValuePair <string, double> e in cFeatures.EntrySet()) { iFeatures.DecrementCount(e.Key, e.Value); } if (multiplicativeCost) { classifier.Learn(iFeatures, 1.0, costs[errorType.id], loss); } else { classifier.Learn(iFeatures, 1.0, 1.0, losses[errorType.id]); } }
public virtual void TestIncrement() { c.Clear(); NUnit.Framework.Assert.AreEqual(0., c.GetCount("r")); NUnit.Framework.Assert.AreEqual(1., c.IncrementCount("r")); NUnit.Framework.Assert.AreEqual(1., c.GetCount("r")); c.SetCount("p", 0); c.SetCount("q", 2); NUnit.Framework.Assert.AreEqual(true, c.ContainsKey("q")); NUnit.Framework.Assert.AreEqual(false, c.ContainsKey("!!!")); NUnit.Framework.Assert.AreEqual(0., c.GetCount("p")); NUnit.Framework.Assert.AreEqual(1., c.IncrementCount("p")); NUnit.Framework.Assert.AreEqual(1., c.GetCount("p")); NUnit.Framework.Assert.AreEqual(4., c.TotalCount()); c.DecrementCount("s", 5.0); NUnit.Framework.Assert.AreEqual(-5.0, c.GetCount("s")); c.Remove("s"); NUnit.Framework.Assert.AreEqual(4.0, c.TotalCount()); }
public virtual void TestFactory() { IFactory <ICounter <string> > fcs = c.GetFactory(); ICounter <string> c2 = fcs.Create(); c2.IncrementCount("fr"); c2.IncrementCount("de"); c2.IncrementCount("es", -3); ICounter <string> c3 = fcs.Create(); c3.DecrementCount("es"); ICounter <string> c4 = fcs.Create(); c4.IncrementCount("fr"); c4.SetCount("es", -3); c4.SetCount("de", 1.0); NUnit.Framework.Assert.AreEqual("Testing factory and counter equality", c2, c4); NUnit.Framework.Assert.AreEqual("Testing factory", c2.TotalCount(), -1.0); c3.AddAll(c2); NUnit.Framework.Assert.AreEqual(c3.KeySet().Count, 3); NUnit.Framework.Assert.AreEqual(c3.Size(), 3); NUnit.Framework.Assert.AreEqual("Testing addAll", -2.0, c3.TotalCount()); }