Esempio n. 1
0
        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);
        }