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); } }
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); }