public void TestConcatAbbreviations() { string result = PreProcessTestString("A B C"); result = NormalizeName.ConcatAbbreviations(result); Assert.AreEqual("ABC", result); result = PreProcessTestString("Walt A B C Disney"); result = NormalizeName.ConcatAbbreviations(result); Assert.AreEqual("WALT ABC DISNEY", result); result = PreProcessTestString("Walt A B C"); result = NormalizeName.ConcatAbbreviations(result); Assert.AreEqual("WALT ABC", result); result = PreProcessTestString("A B C Disney"); result = NormalizeName.ConcatAbbreviations(result); Assert.AreEqual("ABC DISNEY", result); result = PreProcessTestString("Walt A B C Disney A B C"); result = NormalizeName.ConcatAbbreviations(result); Assert.AreEqual("WALT ABC DISNEY ABC", result); return; }
public void TestRemoveAllSpaces() { string result = NormalizeName.RemoveAllSpaces("LOTS OF SPACE IS NOT GOOD!"); Assert.AreEqual("LOTSOFSPACEISNOTGOOD!", result); return; }
public void TestRemoveNoiseWords() { string result = NormalizeName.RemoveCompanyTypeWords("ABC COM", out bool foundCompany); Assert.AreEqual("ABC", result); result = NormalizeName.RemoveCompanyTypeWords("ABC MM", out foundCompany); Assert.AreEqual("ABC", result); return; }
public void TestNameSearchMain() { NameSearchMain nameSearchMain = new NameSearchMain("The Walt Disney"); List <string> results = nameSearchMain.GetCleansedCompanyName(); string result = NormalizeName.GetCleansedCompanyName("The Walt Disney"); Assert.AreEqual <string>(result, results[0]); return; }
public static void InitializeCompanyRecords() { CompanyDictionary = new Dictionary <string, CompanyRecord>(); List <string> ExceptionList = new List <string>(); string queryString = @"select Id, CompanyName from NameSearch"; using (SqlConnection connection = new SqlConnection(ConnectionManager.Current.ConnectionString)) { SqlCommand command = new SqlCommand(queryString, connection); connection.Open(); SqlDataReader reader = command.ExecuteReader(); try { while (reader.Read()) { CompanyRecord companyRecord = new CompanyRecord(); companyRecord.CompanyId = reader.GetInt32(0); companyRecord.CompanyName = reader.GetString(1); if (companyRecord.CompanyName != "" && companyRecord.CompanyName != string.Empty && companyRecord.CompanyName != null) { if (!CompanyDictionary.ContainsKey(companyRecord.CompanyName)) { companyRecord.CleansedCompanyName = NormalizeName.GetCleansedCompanyName(companyRecord.CompanyName); companyRecord.CleansedCompanyNameWords = companyRecord.CleansedCompanyName.Split(' '); companyRecord.tokenSoundList = SoundExHash.GetTokenSounds(new List <string>(companyRecord.CleansedCompanyNameWords)); CompanyDictionary.Add(companyRecord.CompanyName, companyRecord); } else { ExceptionList.Add(companyRecord.CompanyName); } } } } finally { reader.Close(); reader = null; } command.Dispose(); command = null; } return; }
public Dictionary <string, CompanyRecordScore> ProcessCompanyRecordScores(string companyName) { Dictionary <string, CompanyRecordScore> result = new Dictionary <string, CompanyRecordScore>(); var ExactMatch = GetCompanyNameExactMatchNoNormalization(companyName); if (ExactMatch.Item1) { result.Add(companyName, new CompanyRecordScore(ExactMatch.Item2, (int)(nameSearchPercentage.ExactMatchNoNormalizationPercentage + 0.5), CompanyScoreType.ExactMatchNoNormalization)); } string cleansedCompanyName = NormalizeName.GetCleansedCompanyName(companyName); string[] cleansedCompanyWords = cleansedCompanyName.Split(' '); Dictionary <string, CompanyRecordScore> getScoresList = null; foreach (var entry in CompanyRecords.CompanyDictionary) { string companyNameEntry = entry.Key; CompanyRecord companyRecord = entry.Value; getScoresList = GetCompanyNameExactMatchWithNormalization(cleansedCompanyName, companyRecord); if (getScoresList.Count > 0) { AddScores(getScoresList, ref result); } // Get word matches, out of order or less or more words... getScoresList = GetCompanyNameExactMatchWithNormalizationOutOfOrder(cleansedCompanyWords, companyRecord); if (getScoresList.Count > 0) { AddScores(getScoresList, ref result); } // Consider sounds like matches getScoresList = GetCompanyNameSoundsLike(cleansedCompanyWords, companyRecord); if (getScoresList.Count > 0) { AddScores(getScoresList, ref result); } } return(result); }
// Helper class to Add or Update CompanyRecords. public static bool InsertCompanyRecord(string companyName, CompanyRecord companyRecord) { bool result = false; if (companyName == null || companyName == string.Empty || companyName == "") { throw new ApplicationException("Invalid string for CompanyName {companyName}"); } if (companyRecord == null) { throw new ApplicationException("Must assign CompanyRecord type value before use"); } if (companyName.CompareTo(companyRecord.CompanyName) != 0) { companyRecord.CompanyName = companyName; } object lockit = new object(); lock (lockit) { companyRecord.CleansedCompanyName = NormalizeName.GetCleansedCompanyName(companyRecord.CompanyName); companyRecord.CleansedCompanyNameWords = companyRecord.CleansedCompanyName.Split(' '); List <TokenSound> tokenSoundList = SoundExHash.GetTokenSounds(new List <string>(companyRecord.CleansedCompanyNameWords)); if (!CompanyDictionary.ContainsKey(companyName)) { CompanyDictionary.Add(companyName, companyRecord); } else { CompanyDictionary[companyName] = companyRecord; } result = true; } return(result); }
public void TestProcessName() { /* * For example, if you searched for "The ABC Company", your results would include: * ABC Co * ABC Company * ABC Inc * ABC LLC * ABC Partnership * The ABC Company */ NormalizeName normalizeName = new NormalizeName("The ABC Company"); List <string> results = normalizeName.ProcessName(); Assert.AreEqual(11, results.Count); Assert.IsTrue(results.Contains("ABC INC")); Assert.IsTrue(results.Contains("ABC LLC")); Assert.IsTrue(results.Contains("THE ABC COMPANY")); Assert.IsTrue(results.Contains("ABC COMPANY")); return; }
public NameSearchMain(string initialString) { normalizeName = new NormalizeName(initialString); }