コード例 #1
0
        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;
        }
コード例 #2
0
        private void button2_Click(object sender, EventArgs e)
        {
            Zemberek sem = new Zemberek(new TurkiyeTurkcesi());

            //var zemberek = new Zemberek(new TurkiyeTurkcesi());
            //var suggestions = zemberek.oner(Metin);
        }
コード例 #3
0
        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");
        }
コード例 #4
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);
        }
コード例 #5
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();
                    }
                }
            }
        }
コード例 #6
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();
        }
コード例 #7
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ı!)");
        }
コード例 #8
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);
        }
コード例 #9
0
        public static List <DirectoryFileInfo> GetSubDatasets(DirectoryFolderInfo subFolder)
        {
            List <DirectoryFileInfo> result = new List <DirectoryFileInfo>();
            var zemberek = new Zemberek(new TurkiyeTurkcesi());

            try
            {
                string   path = @"" + subFolder.Path;
                string[] subFilesInCategory = GetSubFiles(path);
                foreach (string item in subFilesInCategory)
                {
                    DirectoryFileInfo fi = new DirectoryFileInfo();
                    fi.Path = item;
                    fi.Name = item.Substring(item.LastIndexOf('\\') + 1);
                    if (fi.Name.Contains("Kopya"))
                    {
                        fi.Name = fi.Name.Replace("\u008d", "");
                    }
                    fi.Category = subFolder.Name;
                    fi.Content  = "";
                    string[] txtFile = StringHelper.GetOnlyLetterAndSpace(File.ReadAllText(@"" + item, Encoding.GetEncoding("iso-8859-9"))).Split(' ');
                    foreach (string word in txtFile)
                    {
                        if (word != "")
                        {
                            string strRoot = word;
                            if (zemberek.kelimeAyristir(word).Count > 0)
                            {
                                strRoot = zemberek.kelimeAyristir(word)[0][0];
                            }
                            fi.Content += strRoot + " ";
                        }
                    }
                    result.Add(fi);
                }
                return(result);
            }
            catch (Exception e)
            {
                Console.WriteLine("HATA ! : " + e.Message);
                return(result);
            }
        }
コード例 #10
0
        private void FormMain_Load(object sender, EventArgs e)
        {
            string   test = "Nisanur geldi.";
            Zemberek zb   = new Zemberek(new TurkiyeTurkcesi());
            var      item = zb.cozumleyici().cozumle(test);

            try
            {
                comboBooks.SelectedIndex = 0;
                LblFlag.Text             = "Belirtilen dosyalar okunmaktadır.";
                string filename = "HarryPotterKitap1Tr.txt";
                zpContextTr            = ReadAndLoadFile(filename);
                zipfProcessTr          = new ZipfProcess();
                zipfProcessTr.FilePath = filename;
                PrepareAndApplyZipfLaw(zipfProcessTr, zpContextTr);
                // PdfHelper.WriteWordsToPdf(zipfProcessTr.WordsOfFile, "KelimeAnaliziTr.pdf");
                LoadListbox(zipfProcessTr);
                NewChartLoadByA(zipfProcessTr);
            }
            catch (Exception ex)
            {
                MessageBox.Show("İstenmeyen bir hata ile karşılaşıldı " + ex.Message);
            }
        }
コード例 #11
0
 public override void once()
 {
     base.once();
     zemberek = new Zemberek(new TurkiyeTurkcesi());
 }
コード例 #12
0
        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);
            }
        }
コード例 #13
0
 public zemberek_id()
 {
     zemberek = new Zemberek(tr);
 }
コード例 #14
0
ファイル: TestAscii.cs プロジェクト: mgokturkayan/nzemberek
 public void Setup()
 {
     zemberek = new Zemberek(new TurkiyeTurkcesi());
 }