public List <Buildmodel_word_t> Run4ModelBuilder( string partOfSentText, bool isLastPartOfSentText, NerOutputType nerOutputType, bool prevPartOfSentTextSameNerOutputType) { _buildModelWords.Clear(); if (prevPartOfSentTextSameNerOutputType) { _buildModelNerInputTypeI = nerOutputType.ToBuildModelNerInputTypeI(); _buildModelNerInputTypeB = _buildModelNerInputTypeI; } else { _buildModelNerInputTypeI = nerOutputType.ToBuildModelNerInputTypeI(); _buildModelNerInputTypeB = nerOutputType.ToBuildModelNerInputTypeB(); } _outerProcessSentCallbackDelegate = ProcessSentCallbackModelBuilder; fixed(char *_base = partOfSentText) { _BASE = _base; _dontSkipNonLetterAndNonDigitToTheEnd = !isLastPartOfSentText; var urls = _urlDetector.AllocateUrls(partOfSentText); _buildModelSentence.Set4ModelBuilder(0, partOfSentText.Length, (0 < urls.Count) ? urls : null); SentSplitterProcessSentCallback(_buildModelSentence); _dontSkipNonLetterAndNonDigitToTheEnd = false; } _outerProcessSentCallbackDelegate = null; return(_buildModelWords); }