Beispiel #1
0
        private void RunTagInference()
        {
            this.InitializeScorer();
            if (Thread.Interrupted())
            {
                // Allow interrupting
                throw new RuntimeInterruptedException();
            }
            IBestSequenceFinder ti = new ExactBestSequenceFinder();

            //new BeamBestSequenceFinder(50);
            //new KBestSequenceFinder()
            int[] bestTags = ti.BestSequence(this);
            finalTags = new string[bestTags.Length];
            for (int j = 0; j < size; j++)
            {
                finalTags[j] = maxentTagger.tags.GetTag(bestTags[j + LeftWindow()]);
            }
            if (Thread.Interrupted())
            {
                // Allow interrupting
                throw new RuntimeInterruptedException();
            }
            CleanUpScorer();
        }
        public virtual void TestExactBestSequenceFinder()
        {
            IBestSequenceFinder bsf = new ExactBestSequenceFinder();

            BestSequenceFinderTest.ITestSequenceModel tsm = new BestSequenceFinderTest.TestSequenceModel1();
            RunSequenceFinder(tsm, bsf);
            RunPossibleValuesChecker(tsm, bsf);
            BestSequenceFinderTest.ITestSequenceModel tsm2 = new BestSequenceFinderTest.TestSequenceModel2();
            RunSequenceFinder(tsm2, bsf);
            RunPossibleValuesChecker(tsm2, bsf);
            BestSequenceFinderTest.ITestSequenceModel tsm2nr = new BestSequenceFinderTest.TestSequenceModel2nr();
            RunSequenceFinder(tsm2nr, bsf);
            RunPossibleValuesChecker(tsm2nr, bsf);
            BestSequenceFinderTest.ITestSequenceModel tsm3 = new BestSequenceFinderTest.TestSequenceModel3();
            RunSequenceFinder(tsm3, bsf);
            RunPossibleValuesChecker(tsm3, bsf);
        }