public static void mainProgram(string pathDocs, string pathQueries, string pathRel, string pathStopWord) { // read file string text = System.IO.File.ReadAllText(@pathDocs); // read queries qs = new Queries(@pathQueries); //qs.print(); // read stopwords StopwordTool.AddDictionaryFromText(@pathStopWord); createInvertedFile(text); //uncomment }
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(); }
public static void findResultQueriesTopK(Queries queries, int k) { }
private void buttonInteractiveSearch_Click(object sender, EventArgs e) { //here Queries interactiveQuery = new Queries(); interactiveQuery.query[0] = textBoxInteractiveQuery.Text; //Program.qs.query = textBoxInteractiveQuery.Text.Split(' '); Program.findResultQueries(interactiveQuery, Program.nRetrieve1); if (Program.relevanceFeedbackMethod.Equals("pseudo")) { RelevanceFeedback.assignRelFeedback(); //kalo pseudo yang top N dianggap relevan Program.createInvertedFileFromListDocuments(); if (Program.useQueryExpansion == 1) { QueryExpansion.doQueryExpansion(); } RelevanceFeedback.reWeightingQuery(); RelevanceFeedback.reCalculateSimilarity(-1); } //reset listdocuments Program.ListDocuments.Clear(); Program.ListDocuments = new List<Document>(Program.ListDocumentsFixed); //// test relevance //RelevanceFeedback.assignRelFeedback(); //QueryExpansion.doQueryExpansion(); //RelevanceFeedback.reWeightingQuery(); listBoxResultInteractive.Items.Clear(); string line; int nd; for (int i = 0; i < Program.allResults.Count(); i++) { for (int j = 0; j < Program.allResults.ElementAt(i).Count(); j++) { line = j + 1 + ". "; line = line + ("similarity = ") + Program.allResults[i][j].val + ("-- "); nd = Int32.Parse(Program.allResults[i][j].docNum)-1; line = line + ("((") + Program.ListDocuments[nd].No + ("))"); line = line + (" ---- "); line = line + Program.ListDocuments[nd].Title; listBoxResultInteractive.Items.Add(line); } } }