public string BeierEk(string word)
 {
     try
     {
         Kelime[] kelime = zemberek.kelimeCozumle(word);
         return(kelime[0].ekler()[0].ad());
     }
     catch (System.Exception)
     {
         return("");
     }
 }
Example #2
0
        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
                        }
                    }
                }
            }
        }
Example #3
0
        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);
 }
Example #5
0
        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);
        }
Example #6
0
        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();
                    }
                }
            }
        }
Example #7
0
        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();
        }
Example #8
0
        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());
        }
Example #9
0
        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--;
                }
            }
        }
Example #10
0
        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ı!)");
        }
Example #11
0
        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);
        }
Example #12
0
        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;
            }
        }