public static double findSimilarDictionaryWord(string word, double maxSimilarity, int index, List<string> equalMinDistanceDictWordList)
{
index = index - _minWordLength;
word = word.ToLower();
double NewSimilarity = 0;
int WordLength = word.Length;
if ((WordLength + index) < 0)
return maxSimilarity;
if ((WordLength + index) >= _IndexDictionary.Length)
return maxSimilarity;
if (_IndexDictionary[WordLength + index] == null)
return maxSimilarity;
for (int j = 0; j < _IndexDictionary[WordLength + index].Count; j++)
{
JaroWinklerDistance JaroDist = new JaroWinklerDistance();
NGramDistance ng = new NGramDistance();
JaccardDistance jd = new JaccardDistance();
NewSimilarity = jd.GetDistance(word, _IndexDictionary[WordLength + index][j]);//(double)JaroDist.GetDistance(word, _IndexDictionary[WordLenght - 1 + index][j]);
if (NewSimilarity > maxSimilarity)
{
equalMinDistanceDictWordList.Clear();
equalMinDistanceDictWordList.Add(_IndexDictionary[WordLength + index][j]);
maxSimilarity = NewSimilarity;
}
else if (NewSimilarity == maxSimilarity)
equalMinDistanceDictWordList.Add(_IndexDictionary[WordLength + index][j]);
}
return maxSimilarity;
}