static void UpdatePredictor(Predictor predictor) { var predictorName = predictor.Environment.PredictionSettings.Predictor; var setting = Predictors.FirstOrDefault((s) => s.Key == predictorName) ?? Predictors[0]; setting.Updater(predictor); }
public static IPredictor Create(IPredictionEnvironment environment) { LayeredPredictorFactory.Reset(); if (environment != environmentConfigured) { environmentConfigured = environment; environment.PredictionSettings.PredictorNudger.Values = Predictors; environment.PredictionSettings.PropertyChanged += (s, e) => environment.PredictionSettings.PredictorNudger.Values = Predictors; } var innerPredictor = new Predictor(environment, NullWordSuggester.Instance, NullPhraseSuggester.Instance, UpdatePredictor); innerPredictor.QueueUpdate(); var middlePredictor = new NoveltyWordPredictor(innerPredictor); var outerPredictor = new AmbiguousWordPredictor(middlePredictor); return(outerPredictor); }
internal static void UpdatePredictor(Predictor predictor) { if (_luceneWordSuggester == null) { var index = WordIndexFactory.CreateFromWordCountList(predictor.Environment, WordScorePairEnumerable.Instance); _luceneWordSuggester = new LuceneWordSuggester(index); } if (_historicSuggester == null) { _historicSuggester = PredictionDictionary.Create(predictor.Environment); } var newHistory = predictor.ConsumeNewHistory(); var updated = false; foreach (var utterance in newHistory) { updated = true; _historicSuggester.AddRawPhrases(utterance); } if (updated) { using (var stream = predictor.Environment.CreateDynamicDictionaryCache()) { _historicSuggester.Save(stream); } } var historicWithFallbackSuggester = new CompoundWordSuggester(_historicSuggester, SingleLetterSuggester.Instance); var wordSuggester = CreateCompoundWordSuggester(historicWithFallbackSuggester); predictor.UpdateConfiguration(wordSuggester, _historicSuggester); }
static void SetNullPredictor(Predictor predictor) { predictor.UpdateConfiguration(NullWordSuggester.Instance, NullPhraseSuggester.Instance); }