Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        public void TestRemoveAllSpaces()
        {
            string result = NormalizeName.RemoveAllSpaces("LOTS    OF SPACE IS     NOT GOOD!");

            Assert.AreEqual("LOTSOFSPACEISNOTGOOD!", result);

            return;
        }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        // 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);
        }
Exemplo n.º 8
0
        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;
        }
Exemplo n.º 9
0
 public NameSearchMain(string initialString)
 {
     normalizeName = new NormalizeName(initialString);
 }