public override ResultInterpreterOpt check(ResultInterpreterOpt interpreter, String dbText, String userText) { int sliceIndex = 0; int resultIndexId = 0; foreach (String slice in Splitter.SplitByNGram(userText, 1)) { if (slice == "") { sliceIndex++; continue; } //Console.Out.WriteLine(slice); String r = findPattern(dbText, " "+slice+" "); var indexes = r.Split(';').Where(x => x != "").Select(x => Convert.ToInt32(x)).ToList(); //Console.Out.WriteLine(indexes.Count) foreach (int i in indexes) { interpreter.addIndex(resultIndexId, sliceIndex+1, sliceIndex + slice.Length+1, i+1, i+slice.Length+1); resultIndexId++; // Console.Out.WriteLine(); //Console.Out.WriteLine(slice); } sliceIndex = sliceIndex + slice.Length+1; } interpreter.getNormalizedIndexes(); return interpreter; }
public override ResultInterpreterOpt check(ResultInterpreterOpt interpreter, String dbText, String userText) { int sliceIndex = 0; int resultIndexId = 0; foreach (String slice in Splitter.SplitBySentence(userText)) { //Console.Out.WriteLine(slice); if (slice == ""){ continue; } String r = findPattern(dbText, slice+". "); var indexes = r.Split(';').Where(x => x != "").Select(x => Convert.ToInt32(x)).ToList(); foreach (int i in indexes) { interpreter.addIndex(resultIndexId, sliceIndex, sliceIndex + slice.Length, i, i + slice.Length); resultIndexId++; // Console.Out.WriteLine(); } sliceIndex = sliceIndex + slice.Length + 2; } //Console.ReadKey(); interpreter.getNormalizedIndexes(); return interpreter; }
public override ResultInterpreterOpt check(ResultInterpreterOpt interpreter, String dbText, String userText) { int sliceIndex = 0; int resultIndexId = 0; foreach (String slice in Splitter.SplitByLength(userText, this.width)) { String r = findPattern(dbText, slice); var indexes = r.Split(';').Where(x => x != "").Select(x => Convert.ToInt32(x)).ToList(); foreach (int i in indexes) { //Console.Out.WriteLine(dbText.Substring(i, slice.Length)); interpreter.addIndex(resultIndexId, sliceIndex * slice.Length, (sliceIndex + 1) * slice.Length, i, i + slice.Length); resultIndexId++; } sliceIndex++; } interpreter.getNormalizedIndexes(); return interpreter; }
public void AddInterpreter(String name, String docId, ResultInterpreterOpt interpreter) { List<JsonMatchedModel> matched = new List<JsonMatchedModel>(); foreach (ResultIndex r in interpreter.indexes){ JsonMatchedModel d = new JsonMatchedModel(); d.id = docId; d.us = r.userStart; d.ue = r.userEnd; d.ds = r.dbStart; d.de = r.dbEnd; matched.Add(d); } lock (addJsonResultLock) { JsonDataModel m = JsonConvert.DeserializeObject<JsonDataModel>(System.IO.File.ReadAllText(jsonFilePath)); m.matched.AddRange(matched); System.IO.File.WriteAllText(jsonFilePath, JsonConvert.SerializeObject(m)); } interpreter = null; }
public override ResultInterpreterOpt check(ResultInterpreterOpt interpreter, String dbText, String userText) { int n = 3; int sliceIndex = 0; int resultIndexId = 0; Console.Out.WriteLine("before search"); foreach (String slice in Splitter.SplitByNGram(userText, n)) { if (slice == "") { sliceIndex++; continue; } //Console.Out.WriteLine(slice); // Console.Out.WriteLine(dbText.Substring(sliceIndex, 30)); // Console.Out.WriteLine("|"); String r = findPattern(dbText, slice); //Console.Out.WriteLine(r); //Console.ReadLine(); var indexes = r.Split(';').Where(x => x != "").Select(x => Convert.ToInt32(x)).ToList(); //Console.Out.WriteLine(indexes.Count) int skipValue = slice.Split(' ')[0].Length; foreach (int i in indexes) { //Console.Out.WriteLine(slice); interpreter.addIndex(resultIndexId, sliceIndex , sliceIndex + slice.Length , i , i + slice.Length ); resultIndexId++; // Console.Out.WriteLine(); //Console.Out.WriteLine(slice); } sliceIndex = sliceIndex + skipValue + 1; } Console.Out.WriteLine("found"); interpreter.getNormalizedIndexes(); Console.Out.WriteLine("normalized"); return interpreter; }
public SingleStatistic(ResultInterpreterOpt interpreter, String userText, String dbText) { this.dbText = dbText; this.userText = userText; this.interpreter = interpreter; }
static void Main(string[] args) { String patternAlgName = "KMP"; String compareAlgName = "SentenceSplit"; int noThreads = 1; DbInterface i = new DbInterface("localhost"); CompareAlgorithm compareAlgorithm; if (args.Length > 0) { Console.Out.WriteLine(args[0] + " " + args[1]); compareAlgName = args[0]; patternAlgName = args[1]; noThreads = Int32.Parse(args[2]); var assembly = Assembly.GetExecutingAssembly().GetTypes(); compareAlgorithm = (CompareAlgorithm)Activator.CreateInstance(Type.GetType("TestApp1.Algorithm." + compareAlgName)); compareAlgorithm.patternAlgorithmName = patternAlgName; } else { compareAlgorithm = new SentenceSplit(); } //var userId = "63a169a4-f05b-4072-b747-83651eb0a0fd"; var path = ""; if (args.Length >3 ) { path = args[3]; } path = "8c439958-2ad2-4dee-85e9-42df67b1dec1"; //String userText = Utils.normalizeText(Utils.getDocumentFromFile(path)); String userText = Utils.normalizeDbText(i.GetDocument(path)); Console.Out.WriteLine(userText); //Console.ReadKey(); //String userText = i.GetDocument(userId); var jsonReport = new JsonReportBuilder(Path.GetFileName(path), userText, compareAlgName, patternAlgName, noThreads); ParallelOptions parallelOptions = new ParallelOptions(); parallelOptions.MaxDegreeOfParallelism = noThreads; DateTime startTime = DateTime.Now; int progress = 0; Object progressLock = new Object(); Parallel.ForEach (i.GetDocumentIds(), parallelOptions, id =>{ if (path == id) { return; } lock (progressLock) { progress++; } Console.Out.Write(progress + " "); String dbText = Utils.normalizeDbText(i.GetDocument(id)); // Console.Out.WriteLine(dbText); //Console.Out.WriteLine(userText); //Console.ReadKey(); String name = i.GetDocumentName(id); ResultInterpreterOpt interpreter = new ResultInterpreterOpt(dbText, userText); interpreter.isBenchmark = false; Console.Out.WriteLine("Checking"); interpreter = compareAlgorithm.check(interpreter, dbText, userText); Console.Out.WriteLine("Updating report"); jsonReport.AddInterpreter(name, id, interpreter); Console.Out.WriteLine("Report updated"); }); foreach (String id in i.GetDocumentIds()) { jsonReport.setIdMapping(id, i.GetDocumentName(id)); } DateTime endTime = DateTime.Now; jsonReport.setTime((float)endTime.Subtract(startTime).TotalMilliseconds/1000); jsonReport.generate(); Console.Out.WriteLine("Koniec"); //Console.ReadKey(); }