Example #1
0
        public void Tag(Sentence sentence, TagOptions options)
        {
            // need training to generate model
            if(_contextMapping == null)
            {
                var corpus = new CoNLLReader().Read(new ReaderOptions
                {
                    DataDir = Path.Combine(options.CorpusDir, "CoNLL"),
                    FileName = "conll2000_chunking_train.txt"
                });

                Train(corpus, options);
            }

            Fill(sentence, options);

            for (int pos = options.NGram - 1; pos < sentence.Words.Count; pos++)
            {
                sentence.Words[pos].Pos = _contextMapping.FirstOrDefault(x => x.Context == GetContext(pos, sentence.Words, options))?.Tag;

                // set default tag
                if(sentence.Words[pos].Pos == null)
                {
                    sentence.Words[pos].Pos = options.Tag;
                }
            }

            for(int pos = 0; pos < options.NGram - 1; pos++)
            {
                sentence.Words.RemoveAt(0);
            }
        }
Example #2
0
        public BotSharpTagger()
        {
            string dataDir = Path.Combine(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "Corpus", "CoNLL");
            var    data    = new CoNLLReader().Read(new ReaderOptions
            {
                DataDir  = dataDir,
                FileName = "conll2000_chunking_train.txt"
            });

            _tagger = new TaggerFactory <NGramTagger>(new TagOptions
            {
                NGram  = 1,
                Tag    = "NN",
                Corpus = data
            }, SupportedLanguage.English);
        }