void readAndHandle(string num) //dosyayı okuyup gerekli işlemlerden sonra frekans sayılarını hesaplayıp listeye ekler. { Console.WriteLine(); Console.Write("Reading folder " + num + "..."); foreach (string file in Directory.EnumerateFiles(num)) { var tokenizedStrings = tokenizer(File.ReadAllText(file).ToLower(new CultureInfo("tr-TR", false))); var stopWordedStrings = stopWords(tokenizedStrings); var stemmedStrings = stemming(stopWordedStrings); if (num != "metinler") { foreach (string i in tokenizedStrings) { GuessWord g = guessWords.Find(x => x.name == i && x.className == num); if (g == null) { g = new GuessWord(i, num); guessWords.Add(g); } else { g.incrementCount(); } } } if (num != "metinler") { Column column = new Column(stemmedStrings, num); list.Add(column); foreach (string i in stemmedStrings) //unique olarak geçen kelimeleri toplamak { Word a = totalWords.Find(x => x.name == i); if (a == null) { a = new Word(i); totalWords.Add(a); } } } else { Test test = new Test(stemmedStrings, num); testData.Add(test); } } Console.Write(" Ok."); Console.WriteLine(); }
static void getWordFromUser() //kelimenin tahmini için { Console.WriteLine(); Console.WriteLine("Tahmin için kelime yazın yada çıkmak için 0 yazın: "); string word = Console.ReadLine(); if (word == "0") { Environment.Exit(0); } int theBiggest = 0; string theBiggestClass = "1"; double p = 0; for (int i = 1; i < 4; i++) //tüm classlar gezilir ve en fazla sayıda olandan tahmin yapılır. { GuessWord g = Data.guessWords.Find(x => x.name == word && x.className == $"{i}"); if (g != null && g.count > theBiggest) { theBiggest = g.count; theBiggestClass = g.className; } } p = theBiggest * 1.0 / Data.guessWords.Count; if (theBiggest == 0) { Console.WriteLine("Kelime için tahmin yapılamadı."); } else { Console.WriteLine(Accord.numberToText(int.Parse(theBiggestClass) - 1)); Console.WriteLine($"p={p}"); } getWordFromUser(); }