public void makeExcel(String filePath) { Database data = new Database(filePath); String[] attNames = data.allAttributes.Keys.ToArray<String>(); int columns = attNames.Length + 1; Console.WriteLine("DATASIZE: " + data.Count()); Console.WriteLine("Atts: " ); String[][] spreadsheet = new String[data.Count() + 1][]; for(int i=0; i<spreadsheet.Length; i++){ spreadsheet[i] = new String[columns]; } //String[,] spreadsheet = new String[data.Count() + 1, columns]; //fill in first row of attributes spreadsheet[0][0] = "index"; for (int i = 1; i < columns; i++) { spreadsheet[0][i] = attNames[i - 1]; } //fill in columns for (int i = 1; i < spreadsheet.Length; i++) { spreadsheet[i][0] = "" + i; } for (int i=0; i< data.allEntries.Count; i++){ Entry e = data.allEntries[i]; foreach (KeyValuePair<String, object> pair in e.attributes) { int index = Array.IndexOf(spreadsheet[0], pair.Key); // if(index > columns || index < 0) // Console.WriteLine(pair.Key + ": " + index); Console.WriteLine(i + "," + index); String noCommas = pair.Value.ToString().Replace(",", " "); spreadsheet[i + 1][index] = noCommas; } } //join for string array to be written String[] toWrite = new String[spreadsheet.Length]; for(int i=0; i < spreadsheet.Length; i++){ toWrite[i] = String.Join(",", spreadsheet[i]); } System.IO.File.WriteAllLines("C:\\Users\\prairierose\\Downloads\\NLP\\Habilis.csv", toWrite); }
/// <summary> /// Default constructor. /// </summary> public SurfaceWindow1() { InitializeComponent(); ClusterButton.Tag = 1; Double ScreenWidth = MyScatterView.Width; Console.WriteLine("WIDTH OF SCREEN" + MyScatterView.Width); trash = new TrashCan(); MyScatterView.Items.Add(trash); #region make and display the database Database dataSet = new Database(); List<KeyValuePair<string, Type>> myList = dataSet.allAttributes.ToList(); myList.Sort( delegate(KeyValuePair<string, Type> firstPair, KeyValuePair<string, Type> nextPair) { return firstPair.Key.CompareTo(nextPair.Key); }); #region Make Database Attribute Buttons for (int i = 0; i < myList.Count; i++) { String str = myList.ElementAt(i).Key; ScatterViewItem newButton = new ScatterViewItem(); Double buttonsOnScreen = Math.Floor((MyScatterView.Width - 280) / 180); newButton.Orientation = 0; newButton.Center = new Point(280 + (180 * (i % buttonsOnScreen)), 40 + 65 * (int)(i / buttonsOnScreen)); //newButton.Center = new Point(280 + (180 * (i % buttonsOnScreen)), 40 + 75 * (int)(i / buttonsOnScreen)); newButton.Height = 50; newButton.Width = 160; //newButton.Background = Brushes.DarkSlateGray; newButton.MinHeight = 0; newButton.CanMove = false; newButton.CanRotate = false; SurfaceButton myButton = new SurfaceButton(); myButton.FontSize = 15; myButton.Content = "Add " + str + " label"; myButton.Height = 50; myButton.Width = 160; myButton.Foreground = Brushes.White; newButton.Content = myButton; MyScatterView.Items.Add(newButton); myButton.Tag = str; if (dataSet.allAttributes[str].Equals(typeof(System.String))) { myButton.Background = Brushes.DarkSlateGray; myButton.Click += new RoutedEventHandler(AddStringFilter_Click); } else if (dataSet.allAttributes[str].Equals(typeof(List<String>))) { myButton.Background = Brushes.SlateGray; myButton.Click += new RoutedEventHandler(AddStringListFilter_Click); } else if (dataSet.allAttributes[str].Equals(typeof(DateTime))) { myButton.Background = Brushes.LightGray; myButton.Foreground = Brushes.Black; myButton.Click += new RoutedEventHandler(AddDateFilter_Click); } else if (dataSet.allAttributes[str].Equals(typeof(int))) { myButton.Background = Brushes.LightGray; myButton.Foreground = Brushes.Black; myButton.Click += new RoutedEventHandler(AddIntFilter_Click); } else if (dataSet.allAttributes[str].Equals(typeof(List<int>))) { myButton.Background = Brushes.Gray; myButton.Click += new RoutedEventHandler(AddIntListFilter_Click); } //Console.WriteLine("ALL ATTRIBUTES: " + str + ", " + dataSet.allAttributes[str].ToString()); } #endregion #region make entries and display to screen //List<Entry> listy = dataSet.allEntries.ToList(); // Console.WriteLine("NUMBER OF PAPERS: " + listy.Count()); //For every paper in the database, make a scatterview that shows the details foreach (Entry e in dataSet.allEntries) { AddToScreen(e); // EventSubscriber.SubscribeAll(e); } #endregion #endregion #region Autosave System.Timers.Timer timer = new System.Timers.Timer(60000); timer.Elapsed += new System.Timers.ElapsedEventHandler(delegate(object delSender, System.Timers.ElapsedEventArgs delE) { this.autoSave("autoSave.txt"); timer.Enabled = true; }); timer.Enabled = true; #endregion // Add handlers for window availability events AddWindowAvailabilityHandlers(); }
public MainWindow() { InitializeComponent(); #if histogram getHistogram("C:\\Users\\PrairieRose\\Documents\\GitHub\\HabilisX\\Infer.NET 2.5\\Samples\\C#\\LDA\\TestLDA\\890.bib"); return; #endif #if excel makeExcel("C:\\Users\\prairierose\\Documents\\GitHub\\HabilisX\\HabilisX\\HabilisX\\Resources\\bibtexUnrelated.txt"); return; #endif String Path = "C:\\Users\\prairierose\\Documents\\GitHub\\HabilisX\\HabilisX\\AnalyzeResults\\Results\\"; String[] files = { "ThomasRelatedMendeley.bib", "ThomasRelatedHabilis.bib", "AdamRelatedMendeley.bib", "AdamRelatedHabilis.bib", "MikeRelatedMendeley.bib", "MikeRelatedHabilis.bib", "StephenRelatedMendeley.bib", "StephenRelatedHabilis.bib", "TonyRelatedMendeley.bib", "TonyRelatedHabilis.bib", "WillRelatedMendeley.bib", "WillRelatedHabilis.bib", "JimRelatedMendeley.bib", "JimRelatedHabilis.bib", "ChrisRelatedMendeley.bib", "ChrisRelatedHabilis.bib", }; Database sources = new Database(0); Database distractors = new Database(1); Database dataset1 = new Database(2); Database dataset2 = new Database(3); String TabDeliniatedOutput = "MTP\tMFP\tMTN\tMFN\tHTP\tHFP\tHTN\tHFN\n"; for (int i = 0; i < files.Length; i++) { String FileName = files[i]; int end = FileName.LastIndexOf("Related"); int period = FileName.LastIndexOf("."); String Name = FileName.Substring(0, end); Console.WriteLine(Name + "'s " + FileName.Substring(end + 7, (period - (end + 7))) + " Results"); Database cur; Database results = new Database(Path + FileName); if (dataset1.Contains(results.allEntries[0])) { cur = dataset1; Console.WriteLine("Dataset 1"); } else { cur = dataset2; Console.WriteLine("Dataset 2"); } Console.WriteLine("Related Size: " + results.Count()); int truePositive = 0; int trueNegative = 0; int falsePositive = 0; int falseNegative = 0; foreach(Entry e in cur.allEntries){ if (results.Contains(e) && sources.Contains(e)) { truePositive++; } else if(results.Contains(e) && distractors.Contains(e)){ falsePositive++; } else if (sources.Contains(e) && !results.Contains(e)) { falseNegative++; } else if (distractors.Contains(e) && !results.Contains(e)) { trueNegative++; } else { Console.WriteLine("found something uncategorizable: " + e.printAttribute("title")); } } Console.WriteLine(" TRUE || FALSE"); if (truePositive > 9) { Console.WriteLine("POS: " + truePositive + " || " + falsePositive); } else { Console.WriteLine("POS: " + truePositive + " || " + falsePositive); } if (trueNegative > 9) { Console.WriteLine("NEG: " + trueNegative + " || " + falseNegative); } else { Console.WriteLine("NEG: " + trueNegative + " || " + falseNegative); } if (trueNegative + truePositive + falseNegative + falsePositive != 37) { Console.WriteLine("There may be a problem here: " + (trueNegative + truePositive + falseNegative + falsePositive)); if (truePositive + falsePositive != results.allEntries.Count) Console.WriteLine("problem with positive"); } TabDeliniatedOutput += Name + "\t" + truePositive + "\t" + falsePositive + "\t" + trueNegative + "\t" + falseNegative + "\t"; if (i % 2 != 0) { TabDeliniatedOutput += "\n"; Console.WriteLine("_________________________"); } Console.WriteLine(); } Console.WriteLine(TabDeliniatedOutput); }
private void LoadFromFile(String filePath) { foreach (Entry entry in this.entries) { MyScatterView.Items.Remove(entry); } this.entries = new List<Entry>(); String str = System.IO.Directory.GetCurrentDirectory(); str = str.Substring(0, str.LastIndexOf("\\")); str = str.Substring(0, str.LastIndexOf("\\")); str = str + filePath; Database loadedData = new Database(str); Database originalData = new Database(); foreach (Entry data in originalData.allEntries) { if (!loadedData.Contains(data)) { loadedData.addEntry(data); } } Console.WriteLine("Number of cards in saved data: " + loadedData.allEntries.Count); foreach (Entry entry in loadedData.allEntries) { if (entry.attributes.ContainsKey("x") && entry.attributes.ContainsKey("y") && entry.attributes.ContainsKey("orientation")) { Double x = Double.Parse(entry.attributes["x"].ToString()); Double y = Double.Parse(entry.attributes["y"].ToString()); ; if (x > 1800) { x = 500; } if (y > 900) { y = 500; } entry.Center = new Point(x, y); entry.Orientation = Double.Parse(entry.attributes["orientation"].ToString()); AddToScreen(entry); } else { AddToScreen(entry); } } }