/// <summary> /// Analyze input string (line) and generate its state and populate in-memory Cache /// </summary> /// <param name="line"></param> /// <returns></returns> public Dictionary <string, WordStatistic> AnalyzeSentence(string line) { // Return if input string is empty or null if (string.IsNullOrEmpty(line)) { return(_stats); } List <CacheItem> cacheItemList = new List <CacheItem>(); foreach (var word in RegexStore.SanitizeSentence(line)) { if (_stats.ContainsKey(word)) { _stats[word].IncrementCount(); } else { var wStat = CorpusManager.GetWordStatistic(word); _stats.Add(word, wStat); } // Generate CacheItem for each word if (_definitionService.Dictionary.ContainsKey(word)) { cacheItemList.Add(new CacheItem(word, _definitionService.Dictionary[word])); } } if (cacheItemList.Count > 0) { CacheProvider.Instance.AddToCache(cacheItemList); } return(_stats); }
public static void Init() { DefinitionService.Init(); CorpusManager.Init(); }