private static string TrigramMinHashing(MultiplicativeHash mult, Hw2 hw2) { var sb = new StringBuilder(); var stopWatch = new Stopwatch(); decimal tenDist = 0; stopWatch.Start(); tenDist = TrigramMinHash(mult, hw2.D1, hw2.D2, 10); stopWatch.Stop(); sb.AppendLine("t=10: normalized-L0(a, b):" + tenDist + " in " + stopWatch.Elapsed.Milliseconds + " milliseconds"); stopWatch.Reset(); decimal fiftyDist = 0; stopWatch.Start(); fiftyDist = TrigramMinHash(mult, hw2.D1, hw2.D2, 50); stopWatch.Stop(); sb.AppendLine("t=50: normalized-L0(a, b):" + fiftyDist + " in " + stopWatch.Elapsed.Milliseconds + " milliseconds"); decimal hundredDist = 0; stopWatch.Reset(); stopWatch.Start(); hundredDist = TrigramMinHash(mult, hw2.D1, hw2.D2, 100); stopWatch.Stop(); sb.AppendLine("t=100: normalized-L0(a, b):" + hundredDist + " in " + stopWatch.Elapsed.Milliseconds + " milliseconds"); stopWatch.Reset(); decimal threeHundred = 0; stopWatch.Start(); threeHundred = TrigramMinHash(mult, hw2.D1, hw2.D2, 300); stopWatch.Stop(); sb.AppendLine("t=300: normalized-L0(a, b):" + threeHundred + " in " + stopWatch.Elapsed.Milliseconds + " milliseconds"); decimal sixHundred = 0; stopWatch.Reset(); stopWatch.Start(); sixHundred = TrigramMinHash(mult, hw2.D1, hw2.D2, 600); stopWatch.Stop(); sb.AppendLine("t=600: normalized-L0(a, b):" + sixHundred + " in " + stopWatch.Elapsed.Milliseconds + " milliseconds"); Console.WriteLine(sb.ToString()); return sb.ToString(); }
static void Main(string[] args) { var argsNotNull = args != null; if (argsNotNull && args.Any(t => t == "Hw2")) { var hw2 = new Hw2(); HowManyDistinctNgrams(hw2); CalculateJaccard(hw2); var mult = new MultiplicativeHash(); var sb = new StringBuilder(); for (var i = 0; i < 10; i++) { sb.AppendLine(TrigramMinHashing(mult, hw2)); } var sb2 = new StringBuilder(); var d1d2 = TrigramMinHash(mult, hw2.D1, hw2.D2, 100); var d1d3 = TrigramMinHash(mult, hw2.D1, hw2.D3, 100); var d1d4 = TrigramMinHash(mult, hw2.D1, hw2.D4, 100); var d2d3 = TrigramMinHash(mult, hw2.D2, hw2.D3, 100); var d2d4 = TrigramMinHash(mult, hw2.D2, hw2.D4, 100); var d3d4 = TrigramMinHash(mult, hw2.D3, hw2.D4, 100); sb2.AppendLine(d1d2.ToString()); sb2.AppendLine(d1d3.ToString()); sb2.AppendLine(d1d4.ToString()); sb2.AppendLine(d2d3.ToString()); sb2.AppendLine(d2d4.ToString()); sb2.AppendLine(d3d4.ToString()); Console.ReadLine(); } else if (argsNotNull && args.Any(t => t == "Hw3")) { var hw3 = new Hw3(); Console.ReadLine(); } else if (argsNotNull && args.Any(t => t == "Hw4")) { var hw4 = new Hw4(); Console.ReadLine(); } }
private static decimal TrigramMinHash(MultiplicativeHash mult, Document d1, Document d2, int hashFunctionCount) { return mult.TrigramCharMinHashing(d1.TrigramChars, d2.TrigramChars, hashFunctionCount); }