internal Predictor(IPredictionEnvironment environment, IWordSuggester wordSuggester, IPhraseSuggester phraseSuggester, Action <Predictor> predictorUpdater)
        {
            _updater = new LazyUpdater(environment.QueueWorkItem);

            _environment      = environment;
            _wordSuggester    = wordSuggester;
            _phraseSuggester  = phraseSuggester;
            _predictorUpdater = predictorUpdater;
        }
        internal void UpdateConfiguration(IWordSuggester wordSuggester, IPhraseSuggester phraseSuggester)
        {
            _wordSuggester   = wordSuggester;
            _phraseSuggester = phraseSuggester;

            var predictionChangedHandler = PredictionChanged;

            if (predictionChangedHandler != null)
            {
                predictionChangedHandler(this, EventArgs.Empty);
            }
        }
        internal Prediction(IPredictionEnvironment environment, IWordSuggester wordSuggester, IPhraseSuggester phraseSuggester, string text, int selectionStart, int selectionLength, bool isAutoSpace)
        {
            Debug.Assert(text != null);

            this.environment     = environment;
            this.wordSuggester   = wordSuggester;
            this.phraseSuggester = phraseSuggester;
            this.text            = text;
            this.selectionStart  = selectionStart;
            this.selectionLength = selectionLength;
            this.isAutoSpace     = isAutoSpace;
        }
Example #4
0
        /// <summary>
        /// The phrase suggester adds additional logic on top of the term suggester to select entire corrected phrases
        /// instead of individual tokens weighted based on ngram-langugage models.
        /// </summary>
        public SearchDescriptor <T> SuggestPhrase(string name, Func <PhraseSuggesterDescriptor <T>, PhraseSuggesterDescriptor <T> > suggest) => Assign(a =>
        {
            name.ThrowIfNullOrEmpty(nameof(name));
            suggest.ThrowIfNull(nameof(suggest));
            if (a.Suggest == null)
            {
                a.Suggest = new Dictionary <string, ISuggestBucket>();
            }

            var desc           = new PhraseSuggesterDescriptor <T>();
            var item           = suggest(desc);
            IPhraseSuggester i = item;
            var bucket         = new SuggestBucket {
                Text = i.Text, Phrase = item
            };
            a.Suggest.Add(name, bucket);
        });
Example #5
0
        /// <summary>
        /// The phrase suggester adds additional logic on top of the term suggester to select entire corrected phrases
        /// instead of individual tokens weighted based on ngram-langugage models.
        /// </summary>
        public SearchDescriptor <T> SuggestPhrase(string name, Func <PhraseSuggestDescriptor <T>, PhraseSuggestDescriptor <T> > suggest)
        {
            name.ThrowIfNullOrEmpty("name");
            suggest.ThrowIfNull("suggest");
            if (Self.Suggest == null)
            {
                Self.Suggest = new Dictionary <string, ISuggestBucket>();
            }

            var desc           = new PhraseSuggestDescriptor <T>();
            var item           = suggest(desc);
            IPhraseSuggester i = item;
            var bucket         = new SuggestBucket {
                Text = i.Text, Phrase = item
            };

            Self.Suggest.Add(name, bucket);
            return(this);
        }