示例#1
0
        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);
        }
示例#2
0
        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);
        }