public void FindWordsForFile(string[] _contentOfFile) { int o = 0; Zemberek zemberek = new Zemberek(new TurkiyeTurkcesi()); for (o = 0; o < _contentOfFile.Length; o++) { Word _word = new Word(); string _wordfull = _contentOfFile[o]; //sırayla kelimeleri ek kök ayrımına sokmak gerekli bool existWordFlag = WordsOfFile.Exists(a => a.WFull.Equals(_wordfull, StringComparison.OrdinalIgnoreCase)); /*kelimeDenetle methodu, bir kelimenin doğru yazılıp yazılmadığını kontrol eder. Türkçe’de olmayan bir kelime ise “false” değeri döndürür.*/ if (zemberek.kelimeDenetle(_wordfull) && existWordFlag != true) { int wc = _contentOfFile.Where(a => a.Equals(_wordfull, StringComparison.OrdinalIgnoreCase)).Count(); //Kelimenin tekrarı int wo = o + 1; //Kelimenin metinde bulunma sırası var list = _contentOfFile.Where(a => a.Equals(_wordfull, StringComparison.OrdinalIgnoreCase)).ToList(); _word.Wcount = wc; _word.WFull = _wordfull; WordsOfFile.Add(_word); } } UniqueWordCount = WordsOfFile.Count; }
private void buttonFillListbox3_Click(object sender, EventArgs e) { Zemberek zemberek = new Zemberek(new TurkiyeTurkcesi()); int i = 0; foreach (var item in listBoxLExi.Items) { if (i < 100) { string value = item.ToString().Trim(); if (!String.IsNullOrEmpty(value)) { if (zemberek.kelimeDenetle(value)) { listBoxSemiLexi.Items.Add(FindRoot(value)); } } i++; } else { break; } } MessageBox.Show("Bitti"); }
public void testCozumle1() { //zemberek = new Zemberek(new TurkiyeTurkcesi()); string str = "kedi"; Assert.IsTrue(zemberek.kelimeDenetle(str)); Kelime[] sonuc = zemberek.kelimeCozumle(str); Assert.AreEqual(1, sonuc.Length); Kok kok = sonuc[0].kok(); Assert.AreEqual("kedi", kok.icerik()); List <Ek> ekler = sonuc[0].ekler(); Assert.AreEqual(1, ekler.Count); Ek ek = ekler[0]; Assert.AreEqual("ISIM_KOK", ek.ad()); }
private string filtering(string Astr) { string filtered = ""; string checkedword = ""; Zemberek filter = new Zemberek(new TurkiyeTurkcesi()); Astr = Normalize(Astr); foreach (string word in Astr.Split(' ')) { if (filter.kelimeDenetle(word)) { checkedword = word; } else { String[] suggestions = filter.asciidenTurkceye(word); if (suggestions.Length > 0) { checkedword = suggestions[0]; } else { try { suggestions = filter.oner(word); } catch (System.NullReferenceException ex) { adderrorlog(ex.Message); } if (suggestions.Length > 0) { checkedword = suggestions[0]; } else { fresidue += word + " "; } } } Kelime[] solutions = filter.kelimeCozumle(checkedword); foreach (Kelime solution in solutions) { if (!filtered.Contains(solution.kok().icerik())) { filtered += solution.kok().icerik() + " "; } } } return(filtered); }
public static void KoklereAyir(List <List <string> > liste) // kayıtları kelimelere göre köklerine ayırır { Zemberek zemberek = new Zemberek(new TurkiyeTurkcesi()); for (int i = 0; i < liste.Count; i++) { for (int j = 0; j < liste[i].Count - 1; j++) { if (zemberek.kelimeDenetle(liste[i][j].ToString())) { liste[i][j] = zemberek.kelimeCozumle(liste[i][j].ToString())[0].kok().icerik(); } } } }
private void FindStem(List <string> words) { List <string> tempStem = new List <string>(); for (int i = 0; i < words.Count; i++) { if (zemberek.kelimeDenetle(words[i])) { words[i] = zemberek.kelimeCozumle(words[i])[0].kok().icerik(); } else { words.RemoveAt(i); i--; } } }
public static void KoklereAyir(List <List <string> > liste) // kayıtları kelimelere göre köklerine ayırır { Console.Write("*Zemberek uygulamasi yardimiyla kelimeler koklerine ayriliyor..."); Zemberek zemberek = new Zemberek(new TurkiyeTurkcesi()); for (int i = 0; i < liste.Count; i++) { for (int j = 0; j < liste[i].Count - 1; j++) { if (zemberek.kelimeDenetle(liste[i][j].ToString())) { liste[i][j] = zemberek.kelimeCozumle(liste[i][j].ToString())[0].kok().icerik(); } } } Console.WriteLine("(Tamamlandı!)"); }
public String FindRoot(string text) { String kok = ""; Zemberek zemberek = new Zemberek(new TurkiyeTurkcesi()); if (!String.IsNullOrEmpty(text)) { if (zemberek.kelimeDenetle(text)) { kok = zemberek.kelimeCozumle(text)[0].kok().icerik(); } } return(kok); }
static void DosyaOkuma() { int i; string[] path = { @"c:\metinler\Pozitif\", @"c:\metinler\Negatif\", @"c:\metinler\Etkisiz\", @"c:\metinler\Kontrol\" }; for (i = 0; i < path.Length; i++) { Dictionary <string, Dictionary <string, int> > tempDictionary = new Dictionary <string, Dictionary <string, int> >(); DirectoryInfo di = new DirectoryInfo(path[i]); FileInfo[] files = di.GetFiles(); foreach (FileInfo fi in files) { Deasciifier deasciifier = new Deasciifier(); var zemberek = new Zemberek(new TurkiyeTurkcesi()); Dictionary <string, int> geciciKelimeler = new Dictionary <string, int>(); FileStream fs = new FileStream(path[i] + fi, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("iso-8859-9"), false); string yazi = sr.ReadLine(); yazi = yazi.ToLower(); while (yazi != null) { char[] karakterler = { ' ', ',', '.', '?', '!', ';', ':', '\n', '\t', '\"', '\'', '(', ')', '#', '^', '@', '+', '-', '*', '/', '’', '_', '-' }; string[] gecici = yazi.Split(karakterler); foreach (string s in gecici) { #region Turkcelestirmeden /* * if (!geciciKelimeler.ContainsKey(s)) * geciciKelimeler.Add(s, 1); * else * geciciKelimeler[s]++; */ #endregion #region Turkcelestirerek if (zemberek.kelimeDenetle(s)) { if (!geciciKelimeler.ContainsKey(s)) { geciciKelimeler.Add(s, 1); } else { geciciKelimeler[s]++; } } else { string duzelt = deasciifier.DeAsciify(s); if (zemberek.kelimeDenetle(duzelt)) { if (!geciciKelimeler.ContainsKey(duzelt)) { geciciKelimeler.Add(duzelt, 1); } else { geciciKelimeler[duzelt]++; } } else { var oneriler = zemberek.oner(s); if (oneriler.Any()) { duzelt = zemberek.oner(s)[0]; if (!geciciKelimeler.ContainsKey(duzelt)) { geciciKelimeler.Add(duzelt, 1); } else { geciciKelimeler[duzelt]++; } } } } #endregion } yazi = sr.ReadLine(); } sr.Close(); fs.Close(); tempDictionary.Add(fi.ToString(), geciciKelimeler); } siniflar.Add(path[i].Split('\\')[2], tempDictionary); } }
private void SearchButton_Click(object sender, EventArgs e) { if (addedSearchFile) // Aranan kelime dökümanı Yeni arama yapılırken eskisi siliniyor. { for (int i = 0; i < univercityPagewordList.Count; i++) { univercityPagewordList[i].RemoveAt(univercityPagewordList[i].Count - 1); } addedSearchFile = false; } string textSearch = textBox1.Text; List <Word> searchWordList = new List <Word>(); //Aranacak kelimeler listesi if (textSearch != "") //input kontrolü { string[] wordSplit = textSearch.Split(' '); Word word; for (int i = 0; i < wordSplit.Length; i++) { word = new Word(); if (zemberek.kelimeDenetle(wordSplit[i])) { word.Name = zemberek.kelimeCozumle(wordSplit[i])[0].icerik().ToString(); Word w = searchWordList.Find(tempWord => { if (tempWord.Name == wordSplit[i]) { return(true); } else { return(false); } }); if (w is null) { word.Count++; searchWordList.Add(word); } else { w.Count++; } } } CleanStopWords(searchWordList); searchWordList.Sort(); TermFrequency(searchWordList); //tf bulunuuyor for (int i = 0; i < univercityPagewordList.Count; i++) { InverseDocumentFrequency(searchWordList, univercityPagewordList[i]); } List <Result> cosineResultList = CosineSimilarity(univercityPagewordList); string[] linkFiles = Directory.GetFiles(path); listBox1.Items.Clear(); int c; if (cosineResultList.Count != 0) { if (cosineResultList.Count > 20) { c = 20; } else { c = cosineResultList.Count; } for (int i = 0; i < c; i++) { string[] links = File.ReadAllLines(linkFiles[cosineResultList[i].I]); string[] temp = links[cosineResultList[i].J].Split(';'); listBox1.Items.Add(temp[0].Replace('"', ' ').Trim()); } } else { MessageBox.Show("Sonuç Yok"); } addedSearchFile = true; } }