Example #1
0
        /// <summary>
        /// Reads the next sentence.
        /// </summary>
        /// <returns>Sentence or null if reached the end of file.</returns>
        public string ReadSentence()
        {
            if (_disposed)
            {
                throw new ObjectDisposedException("Segmenter disposed.");
            }

            int len;

            if ((len = GrammarApi.sol_FetchSentence(_hObject)) < 0)
            {
                CanRead = false;
                return(null);
            }

            if (len == 0)
            {
                return(string.Empty);
            }

            var b = new StringBuilder(len + 2);

            GrammarApi.sol_GetFetchedSentence(_hObject, b);
            return(b.ToString());
        }
Example #2
0
        public List <string> SplitSentences(string input)
        {
            var broker = GrammarApi.sol_CreateSentenceBrokerMemW(_engine, input, (int)Languages.RUSSIAN_LANGUAGE);
            var result = new List <string>();

            int len;

            while ((len = GrammarApi.sol_FetchSentence(broker)) >= 0)
            {
                if (len > 0)
                {
                    var b = new StringBuilder(len + 2);
                    GrammarApi.sol_GetFetchedSentence(broker, b);
                    result.Add(b.ToString());
                }
            }

            GrammarApi.sol_DeleteSentenceBroker(broker);

            return(result);
        }