public string BeierEk(string word) { try { Kelime[] kelime = zemberek.kelimeCozumle(word); return(kelime[0].ekler()[0].ad()); } catch (System.Exception) { return(""); } }
public void yapim_eklerini_sozluge_ekle(string word) { Kelime[] cozumler = zemberek.kelimeCozumle(word); foreach (Kelime kelime_ in cozumler) { //Mevcut Kelimenin Kökü Kok kok = kelime_.kok(); List <net.zemberek.yapi.ek.Ek> eklerlistesi = new List <net.zemberek.yapi.ek.Ek>(); for (int i = 0; i < kelime_.ekSayisi(); i++) { //Kelime kelime = cozumler[0]; //Kok kok = (Kok)zemberek.dilBilgisi().kokler().kokBul("koyun")[0]; //String yeni = zemberek.kelimeUret(kok, kelime.ekler()); // eklerlistesi.Add(kelime_.ekDizisi()[i]); // Response.Write("<br>" + kelime_.ekDizisi()[i]); if (kelime_.ekDizisi()[i].ToString().Contains("BULUNMA_LIK") || kelime_.ekDizisi()[i].ToString().Contains("BULUNMA_LI") || kelime_.ekDizisi()[i].ToString().Contains("DURUM_LIK") || kelime_.ekDizisi()[i].ToString().Contains("ILGI_CI") || kelime_.ekDizisi()[i].ToString().Contains("YOKLUK_SIZ")) { string yeni_kelime = zemberek.kelimeUret(kok, eklerlistesi); //Response.Write("<br>" + yeni_kelime); //if (zemberek.dilBilgisi().kokler().kokBul(yeni_kelime, KelimeTipi.ISIM).ToString() != "") Kelime[] cozumler2 = zemberek.kelimeCozumle(yeni_kelime); //for döngüsü açıp çözümler arasında içerik kök ile yeni_kelimenin uyumunu kontrol etmek bool varmi = false; foreach (Kelime kelime2_ in cozumler2) { //Mevcut Kelimenin Kökü Kok kok2 = kelime2_.kok(); if (kok2.icerik() == yeni_kelime) { varmi = true; } } //Yoksa eklemeyi yap varsa eklemeden devam et if (!varmi) { zemberek.dilBilgisi().kokler().ekle(new Kok(yeni_kelime, KelimeTipi.ISIM));//yeni kelime sistemde } } } } }
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()); }
public static Kelime[] Cozumle(string sKelime) { Kelime[] cozumler = zZemberek.kelimeCozumle(sKelime); if (cozumler.Length == 0) { return(null); } return(cozumler); }
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(); } } } }
public void FindStempForWords() { int o = 0; Zemberek zemberek = new Zemberek(new TurkiyeTurkcesi()); for (o = 0; o < WordsOfFile.Count; o++) { Word _word = new Word(); string _wordfull = WordsOfFile[o].WFull; //sırayla kelimeleri ek kök ayrımına sokmak gerekli int c = 0; Kelime[] CozumluKelime = zemberek.kelimeCozumle(_wordfull); EkYonetici sozluk = zemberek.dilBilgisi().ekler(); string kok = string.Empty; string tip = string.Empty; List <string> ektipler = new List <string>(); if (CozumluKelime.Length > 0) { c = CozumluKelime.Count() - 1; Kok _wstemp = CozumluKelime[c].kok(); List <Ek> leks = CozumluKelime[c].ekler(); for (int e = 0; e < leks.Count; e++) { string ektip = leks[e].ad(); ektipler.Add(ektip); } kok = _wstemp.icerik(); tip = leks[0].ad(); } else { kok = _wordfull; tip = "ISIM_KOK"; } WordsOfFile[o].WType = tip; //Kök tipi WordsOfFile[o].WStemp = kok; //kökün ne olduğu WordsOfFile[o].Wadds.AddRange(ektipler); //eklenen eklerin listesi tiple birlikte } StemTypeBrief = WordsOfFile.GroupBy(x => x.WType) .Select(n => new Stem { Type = n.Key, Count = n.Count() } ).ToList(); }
string[] stemming(string[] array) //zemberek kullanılarak kök haline getirme { List <string> newArray = new List <string>(array); foreach (string i in array) { var stems = zemberek.kelimeCozumle(i); if (stems.Length > 0) { newArray.Add(stems[0].kok().icerik()); } } return(newArray.ToArray()); }
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); }
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; } }