public void Model_Latest() { LuMiiCorpus corpus = new LuMiiCorpus(); List<Sentence> all = new List<Sentence>(); foreach (string resource in ModelLatestData) all.AddRange(corpus.Load(this.GetType().Assembly.GetManifestResourceStream(resource)).ToArray()); LuMiiTagger tagger = new LuMiiTagger(); tagger.Load(); tagger.Tag(all); Token[] tokens = all.SelectMany(t => t).ToArray(); double accuracy = (double)tokens.Count(t => t.IsTagCorrect) / tokens.Count(); Assert.Greater(accuracy, 0.99); }
public void LoadSave() { string trainResource = Analyzed2Train; string testResource = Analyzed2Test; double minAccuracy = 0.93; Sentence[] train = LoadAnalyzedCorpus(trainResource); Sentence[] test = LoadAnalyzedCorpus(testResource); Sentence[] test2 = LoadAnalyzedCorpus(testResource); Assert.Greater(train.Length, 0); Assert.Greater(test.Length, 0); Assert.Greater(train.Length, test.Length); string filename = Path.GetTempFileName(); LuMiiTagger tagger = new LuMiiTagger(); tagger.Train(train); tagger.Save(filename); tagger.Tag(test); LuMiiTagger tagger2 = new LuMiiTagger(); tagger2.Load(filename); tagger2.Tag(test2); Token[] tokens = test.SelectMany(t => t).ToArray(); Token[] tokens2 = test2.SelectMany(t => t).ToArray(); double accuracy = (double)tokens.Count(t => t.IsTagCorrect) / tokens.Count(); double accuracy2 = (double)tokens2.Count(t => t.IsTagCorrect) / tokens2.Count(); Assert.AreEqual(accuracy, accuracy2, 0.0001); Assert.Greater(accuracy, minAccuracy); Assert.Less(accuracy, 0.97); File.Delete(filename); }