// сравнение private List <string[]> Sravn(string[][] data) { List <string[]> rezlist = new List <string[]>(); foreach (string[] str in data) { // количество слов в строке if (str.Count() != 2) { continue; } else { string[] mass; SimMetricsMetricUtilities.Levenstein ex_l = new SimMetricsMetricUtilities.Levenstein(); Stopwatch t = new Stopwatch(); t.Start(); double rj1 = Math.Round(Jaro.Func(str[0], str[1]), 2); string tj1 = Math.Round(t.Elapsed.TotalMilliseconds, 2).ToString(); t = new Stopwatch(); t.Start(); double rj2 = Math.Round(ExJaro.distance(str[0], str[1]), 2); string tj2 = Math.Round(t.Elapsed.TotalMilliseconds, 2).ToString(); // ----- t = new Stopwatch(); t.Start(); double rjv1 = Math.Round(JaroVincler.Func(str[0], str[1]), 2); string tjv1 = Math.Round(t.Elapsed.TotalMilliseconds, 2).ToString(); t = new Stopwatch(); t.Start(); double rjv2 = Math.Round(ExJaroWincler.distance(str[0], str[1]), 2); string tjv2 = Math.Round(t.Elapsed.TotalMilliseconds, 2).ToString(); // ---- t = new Stopwatch(); t.Start(); double rl1 = Math.Round(Levenstein.Func(str[0], str[1]), 2); string tl1 = Math.Round(t.Elapsed.TotalMilliseconds, 2).ToString(); t = new Stopwatch(); t.Start(); double rl2 = Math.Round(ex_l.GetSimilarity(str[0], str[1]), 2); string tl2 = Math.Round(t.Elapsed.TotalMilliseconds, 2).ToString(); rezlist.Add(new string[14] { rj1.ToString(), tj1, rj2.ToString(), tj2, rjv1.ToString(), tjv1, rjv2.ToString(), tjv2, rl1.ToString(), tl1, rl2.ToString(), tl2, str[0], str[1] }); } } return(rezlist); }
private static bool FuzzyMatchesFood(this string unknownText, string knownFood) { var ls = new SimMetricsMetricUtilities.Levenstein(); var similarity = ls.GetSimilarity(unknownText, knownFood); return similarity > 0.75; }