예제 #1
0
        double GetActualSimilarity(Collection <string> firstTokens, Collection <string> secondTokens)
        {
            Collection <string> allTokens = tokenUtilities.CreateMergedList(firstTokens, secondTokens);

            int totalDistance = 0;

            foreach (string token in allTokens)
            {
                int countInfirstWord  = 0;
                int countInsecondWord = 0;
                if (firstTokens.Contains(token))
                {
                    countInfirstWord++;
                }
                if (secondTokens.Contains(token))
                {
                    countInsecondWord++;
                }

                if (countInfirstWord > countInsecondWord)
                {
                    totalDistance += countInfirstWord - countInsecondWord;
                }
                else
                {
                    totalDistance += countInsecondWord - countInfirstWord;
                }
            }
            return(totalDistance);
        }
예제 #2
0
        private double GetActualSimilarity(Collection <string> firstTokens, Collection <string> secondTokens)
        {
            Collection <string> collection = _tokenUtilities.CreateMergedList(firstTokens, secondTokens);
            int num = 0;

            foreach (string str in collection)
            {
                int num2 = 0;
                int num3 = 0;
                if (firstTokens.Contains(str))
                {
                    num2++;
                }
                if (secondTokens.Contains(str))
                {
                    num3++;
                }
                if (num2 > num3)
                {
                    num += num2 - num3;
                }
                else
                {
                    num += num3 - num2;
                }
            }
            return(num);
        }
예제 #3
0
        /// <summary>
        /// gets the un-normalised similarity measure of the metric for the given strings.</summary>
        /// <param name="firstWord">first word</param>
        /// <param name="secondWord">second word</param>
        /// <returns> returns the score of the similarity measure (un-normalised)</returns>
        public override double GetUnnormalisedSimilarity(string firstWord, string secondWord)
        {
            Collection <string> firstTokens  = tokeniser.Tokenize(firstWord);
            Collection <string> secondTokens = tokeniser.Tokenize(secondWord);

            tokenUtilities.CreateMergedList(firstTokens, secondTokens);
            return(GetActualSimilarity(firstTokens, secondTokens));
        }
예제 #4
0
        private double GetActualSimilarity(Collection <string> firstTokens, Collection <string> secondTokens)
        {
            _tokenUtilities.CreateMergedList(firstTokens, secondTokens);
            int num = 0;

            foreach (string str in firstTokens)
            {
                if (secondTokens.Contains(str))
                {
                    num++;
                }
            }
            return(num);
        }
예제 #5
0
        double GetActualSimilarity(Collection <string> firstTokens, Collection <string> secondTokens)
        {
            Collection <string> allTokens = tokenUtilities.CreateMergedList(firstTokens, secondTokens);
            int totalFound = 0;

            foreach (string token in firstTokens)
            {
                if (secondTokens.Contains(token))
                {
                    totalFound++;
                }
            }
            return(totalFound);
        }
예제 #6
0
        private double GetActualDistance(Collection <string> firstTokens, Collection <string> secondTokens)
        {
            Collection <string> collection = _tokenUtilities.CreateMergedList(firstTokens, secondTokens);
            int num = 0;

            foreach (string str in collection)
            {
                int num2 = 0;
                int num3 = 0;
                if (firstTokens.Contains(str))
                {
                    num2++;
                }
                if (secondTokens.Contains(str))
                {
                    num3++;
                }
                num += (num2 - num3) * (num2 - num3);
            }
            return(Math.Sqrt(num));
        }
        double GetActualDistance(Collection <string> firstTokens, Collection <string> secondTokens)
        {
            Collection <string> allTokens = tokenUtilities.CreateMergedList(firstTokens, secondTokens);

            int totalDistance = 0;

            foreach (string token in allTokens)
            {
                int countInfirstWord  = 0;
                int countInsecondWord = 0;
                if (firstTokens.Contains(token))
                {
                    countInfirstWord++;
                }
                if (secondTokens.Contains(token))
                {
                    countInsecondWord++;
                }

                totalDistance += (countInfirstWord - countInsecondWord) * (countInfirstWord - countInsecondWord);
            }
            return(Math.Sqrt(totalDistance));
        }