public Task <bool> TryLoad() { AppSearchFrequency.Load(); foreach (var file in LoadFileList()) { var name = Path.GetFileName(file.ToLower()); _trie.Add(name, file); if (!file.Contains(" ")) { continue; } // Support search for "Mozilla Firefox" through both "Mozilla" and "Firefox" var variations = name.Split(" "); foreach (var variation in variations) { _trie.Add(variation, file); } // Support "Visual Studio Code" -> "VSC" if (variations.Length > 1) { var fuzz = string.Join(',', variations.Select(part => part[0]).ToArray()).Replace(",", ""); _trie.Add(fuzz, file); } } IsLoaded = true; return(Task.FromResult(IsLoaded)); }
public Task <bool> TryLoad() { // Load actual control panel items var items = LoadControlPanelItems(); // Lookup registry details for each item var registryRoot = Registry.LocalMachine.OpenSubKey(ControlPanelRegistryPath); foreach (var subKeyName in registryRoot?.GetSubKeyNames()) { // Get default value var value = registryRoot.OpenSubKey(subKeyName)?.GetValue(""); // Ensure registry entry actually is a control panel item var item = items.FirstOrDefault(i => i.Name.ToLower().Equals(value?.ToString().ToLower())); if (item != null) { item.RegistryKey = subKeyName; } } foreach (var controlPanelItem in items) { _controlPanelItems.Add(controlPanelItem.Name.ToLower(), controlPanelItem); } IsLoaded = true; return(Task.FromResult(IsLoaded)); }
private void LoadFile(string fileName) { var word = File.ReadAllText(fileName); m_Trie.Add(word.AsMemory(), Path.GetFileName(fileName)); m_WordCount += word.Split(delimiters, StringSplitOptions.RemoveEmptyEntries).Length; Debug.WriteLine($"Loaded {word.Length} characters."); Debug.WriteLine($"Trie size = {m_Trie.Size}"); }
public Card ClosestCard(string input) { var trie = new UkkonenTrie <int>(); for (int i = 0; i < cards.Length; i++) { trie.Add(cards[i].name, i); } return(cards[trie.Retrieve(input).First()]); }
public bool TryLoad() { foreach (var browserType in Enum.GetValues(typeof(BrowserType)).Cast <BrowserType>()) { var _bookmarkExtractor = MapBrowserTypeToExtractor(browserType); foreach (var bookmarkModel in _bookmarkExtractor.Extract()) { var tuple = new Tuple <BrowserType, AbstractBookmarkModel>(browserType, bookmarkModel); _trie.Add(bookmarkModel.Name.ToLower(), tuple); } } return(true); }
public bool TryLoad() { AppSearchFrequency.Load(); foreach (var file in LoadFileList()) { var name = Path.GetFileName(file.ToLower()); _trie.Add(name, file); // Support search for "Mozilla Firefox" through both "Mozilla" and "Firefox" if (file.Contains(" ")) { var variations = name.Split(" "); foreach (var variation in variations) { _trie.Add(variation, file); } } } return(true); }
public async Task <bool> TryLoad() { foreach (var browserType in Enum.GetValues(typeof(BrowserType)).Cast <BrowserType>()) { var bookmarkExtractor = MapBrowserTypeToExtractor(browserType); foreach (var bookmarkModel in await bookmarkExtractor.Extract().ConfigureAwait(false)) { var tuple = new Tuple <BrowserType, AbstractBookmarkModel>(browserType, bookmarkModel); _trie.Add(bookmarkModel.Name.ToLower(), tuple); } } IsLoaded = true; return(IsLoaded); }
public bool TryLoad() { _defaultBrowserType = DetectDefaultBrowser(); if (_defaultBrowserType == BrowserType.Unknown) { return(false); } _bookmarkExtractor = MapBrowserTypeToExtractor(_defaultBrowserType); foreach (var bookmarkModel in _bookmarkExtractor.Extract()) { _trie.Add(bookmarkModel.Name.ToLower(), bookmarkModel); } return(true); }
static void Main(string[] args) { var fileHelperEngine = new FileHelperEngine <GeoLocation>(); var geoLocations = fileHelperEngine.ReadFile(@"C:\Users\Gautham\Downloads\IN\IN.txt"); Console.WriteLine($"Count={geoLocations.Length}"); var indexer = new UkkonenTrie <GeoLocation>(geoLocations.Length); foreach (var geoLocation in geoLocations) { indexer.Add(geoLocation.AsciiName, geoLocation); } Console.WriteLine("Finished indexing"); var result = indexer.Retrieve("Bangalore"); foreach (var geoLocation in result) { Console.WriteLine($"Id={geoLocation.Id} Name={geoLocation.Name}"); } }
//Load a frequency dictionary or create a frequency dictionary from a text corpus public static void Main(string[] args) { var path = AppDomain.CurrentDomain.BaseDirectory + @"all-suggests-cleaned.txt"; Console.Write("Creating trie ..."); long memSize = GC.GetTotalMemory(true); Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); var wordToIndex = new Dictionary <string, int>(); var wordFrequency = new Dictionary <string, int>(); var phraseList = new List <string>(); int count = 0; using (StreamReader sr = new StreamReader(path)) { while (sr.Peek() >= 0) { var s = sr.ReadLine(); phraseList.Add(s.Trim()); var tokens = s.Trim().Split(' '); for (int i = 0; i < tokens.Length; ++i) { int index = 0, freq = 0; if (!wordToIndex.TryGetValue(tokens[i], out index)) { wordToIndex[tokens[i]] = count++; } if (!wordFrequency.TryGetValue(tokens[i], out freq)) { wordFrequency[tokens[i]] = 1; } else { wordFrequency[tokens[i]] = freq + 1; } } } } long memDeltaForStoringValues = GC.GetTotalMemory(true) - memSize; Console.WriteLine("Memory for storing value: " + memDeltaForStoringValues + ". Going to add to trie"); var trie = new UkkonenTrie <int>(1); int value = 0; foreach (var phrase in phraseList) { trie.Add(phrase, value++); } //Load a frequency dictionary stopWatch.Stop(); long memDelta = GC.GetTotalMemory(true) - memSize; Console.WriteLine("Done in " + stopWatch.Elapsed.TotalMilliseconds.ToString("0.0") + "ms " + (memDelta / 1024 / 1024.0).ToString("N0") + " MB. Token count: " + wordToIndex.Count); // spell checker var spellChecker = new SymSpell(wordToIndex.Count, 2); foreach (var entry in wordFrequency) { spellChecker.CreateDictionaryEntry(entry.Key, entry.Value); } while (true) { Console.WriteLine("Input string to search:"); var s = Console.ReadLine(); if (s == "exit") { return; } var normalized = s.ToLower(); var suggests = spellChecker.LookupCompound(normalized, 2); // lookup in trie var results = trie.Retrieve(normalized); var resultCount = 0; foreach (var result in results) { Console.WriteLine("--> " + phraseList[result]); resultCount++; } var suggest = suggests[0].term; foreach (var sug in suggests) { Console.WriteLine("Can search for: " + sug.term); } if (suggest != normalized) { Console.WriteLine("Did you mean: " + suggest + "?"); } Console.WriteLine(String.Format("Found {0} result", resultCount)); } }