public static void doQueryExpansion() { for (int i = 0; i < Program.relFeedback.Count; i++) { foreach (var item in Program.relFeedback[i]) { if (item.val == 1) { int no = Int32.Parse(item.docNum); foreach (string term in Program.ListDocuments[no - 1].Content) { if (!Program.lDQueryWeightNew[i].ContainsKey(term)) { WeightedTermQuery wQuery = new WeightedTermQuery(); wQuery.term = term; wQuery.weight = 0; Program.lQueryWeightNew[i].Add(wQuery); Program.lDQueryWeightNew[i].Add(term, 0); } } } } } }
public static void findResultQueries(Queries queries, int k) { // list of hasil tiap query (list of list of result) allResults = new List<List<Docvalue>>(); // list of list query old and new lQueryWeightOld = new List<List<WeightedTermQuery>>(); lQueryWeightOld.Clear(); lQueryWeightNew = new List<List<WeightedTermQuery>>(); lDQueryWeightNew = new List<Dictionary<string, double>>(); //for each query for (int i = 0; i < queries.nQuery(); i++) { List<Docvalue> result = new List<Docvalue>(); List<WeightedTermQuery> queryWithWeight = new List<WeightedTermQuery>(); queryWithWeight = weightingQuery(queries.getQuery(i), ListDocuments); lQueryWeightOld.Add(queryWithWeight); // add list of query // initialize list new query, same as list old query List<WeightedTermQuery> lQueryWeight = new List<WeightedTermQuery>(); foreach (var item in queryWithWeight) { WeightedTermQuery queryWeight = new WeightedTermQuery(item.term, item.weight); lQueryWeight.Add(queryWeight); } lQueryWeightNew.Add(lQueryWeight); // initialize dictionary new query Dictionary<string, double> dQueryWeight = new Dictionary<string, double>(); foreach(var item in queryWithWeight) { if(!dQueryWeight.ContainsKey(item.term)) { dQueryWeight.Add(item.term, item.weight); } } lDQueryWeightNew.Add(dQueryWeight); //Console.WriteLine("query ke : " + i); Similarity sim = new Similarity(queryWithWeight); result = sim.calculateDocumentsValue(); result = result.OrderByDescending(o => o.val).ToList(); if (k != -1) //-1 kalau hasil diretrieve semua { result = result.Take(k).ToList(); } allResults.Add(result); } //print hasil pencarian to console /* Console.WriteLine("RESULT : "); for (int i = 0; i < allResults.Count(); i++) { Console.WriteLine("result for query" + i); for (int j = 0; j < allResults.ElementAt(i).Count(); j++) { Console.Write(allResults[i][j].docNum); Console.Write("-"); Console.Write(allResults[i][j].val); Console.Write("\n"); } }*/ //print hasil ke file /* string outputResult = "D:/SearchResult.txt"; string line; using (StreamWriter writer = new StreamWriter(outputResult)) { //Console.WriteLine("jumlah allresult count " + allResults.Count()); for (int i = 0; i < allResults.Count(); i++) { //Console.WriteLine("jumlah result count " + i + (" : ") + allResults.ElementAt(i).Count()); for (int j = 0; j < allResults.ElementAt(i).Count(); j++) { line = i + 1 + " "; line = line + allResults[i][j].docNum; writer.WriteLine(line); } } }*/ Console.WriteLine("Selesai!!"); Console.ReadLine(); }