public void BaslikKelimelerAyarla(List <dbTez> list) { string islenecekKelimeler = ""; Metin metin; string sonkelime = ""; foreach (var item in list) { islenecekKelimeler = item.TezAdi; islenecekKelimeler = islenecekKelimeler.ToLower(); islenecekKelimeler = islenecekKelimeler.Replace("ve", ""); islenecekKelimeler = islenecekKelimeler.Replace("ile", ""); metin = new Metin(islenecekKelimeler); foreach (var sozluk in metin.MetinKelimeler()) { sonkelime += sozluk + "|"; } item.BaslikKelime = sonkelime; tezManager.Update(item); sonkelime = ""; } }
public Dictionary <dbTez, float> KarsilastirmaBaslat(string girdiMetin) { float benzerlikOrani = 0; int AgirlikDegeri = 0; Metin metin = new Metin(girdiMetin); List <string> gelenKelimeler = metin.MetinKelimeler(); float ToplamKelimeKaysayisi = gelenKelimeler.Count * ToplamAgirlik; girdiMetin = girdiMetin.ToLower(); string[] KeywordKarsilastirma = girdiMetin.Split(' '); List <string> VeritabaniKelimeler; Dictionary <dbTez, float> Sonuclar = new Dictionary <dbTez, float>(); List <dbTez> liste = tezManager.GetAll().ToList(); int BaslikIndexTutucu = -5; int BaslikPuanKatlayici = 1; foreach (var item in liste) { VeritabaniKelimeler = item.BaslikKelime.Split('|').ToList(); for (int i = 0; i < gelenKelimeler.Count; i++) { for (int j = 0; j < VeritabaniKelimeler.Count; j++) { if (gelenKelimeler[i] == VeritabaniKelimeler[j]) { if (BaslikIndexTutucu >= 0 && (BaslikIndexTutucu + 1) == j) { AgirlikDegeri += BaslikPuanKatlayici; BaslikPuanKatlayici++; // System.Diagnostics.Debug.WriteLine("Baslik Katlayici Artiyor " + BaslikPuanKatlayici); } else { BaslikPuanKatlayici = 1; } // System.Diagnostics.Debug.WriteLine(i+" BASLIK ESLESMELERI INDEX"+j ); AgirlikDegeri += BaslikAgirlik; // System.Diagnostics.Debug.WriteLine(ToplamAgirlik + " BASLIK ESLESTI " + AgirlikDegeri); BaslikIndexTutucu = j; break; } } } VeritabaniKelimeler = item.OzetKelime.Split('|').ToList(); for (int i = 0; i < gelenKelimeler.Count; i++) { for (int j = 0; j < VeritabaniKelimeler.Count; j++) { if (gelenKelimeler[i] == VeritabaniKelimeler[j]) { AgirlikDegeri += OzetAgirlik; // System.Diagnostics.Debug.WriteLine( ToplamAgirlik+" OZET ESLESTI "+AgirlikDegeri); break; } } } VeritabaniKelimeler = item.KeywordsKelime.Split('|').ToList(); for (int i = 0; i < KeywordKarsilastirma.Length; i++) { for (int j = 0; j < VeritabaniKelimeler.Count; j++) { if (KeywordKarsilastirma[i] == VeritabaniKelimeler[j]) { AgirlikDegeri += KeywordAgirlik; //System.Diagnostics.Debug.WriteLine(ToplamAgirlik + " KEYWORD ESLESTI " + AgirlikDegeri); break; } } } benzerlikOrani = AgirlikDegeri / ToplamKelimeKaysayisi * 100; System.Diagnostics.Debug.WriteLine("BENZERLIK ORANI " + benzerlikOrani); if (benzerlikOrani > 100) { System.Diagnostics.Debug.WriteLine("BENZERLIK ORANI 100leniyor " + benzerlikOrani); benzerlikOrani = 100; } if (benzerlikOrani != 0) { Sonuclar.Add(item, benzerlikOrani); } AgirlikDegeri = 0; } Sonuclar = Sonuclar.OrderByDescending(x => x.Value).ToDictionary(x => x.Key, x => x.Value); for (int i = 0; i < Sonuclar.Count; i++) { // Console.WriteLine(Sonuclar.Keys.ToList()[i] + " | " + Sonuclar.Values.ToList()[i]); //System.Diagnostics.Debug.WriteLine(Sonuclar.Keys.ToList()[i] + " | " + Sonuclar.Values.ToList()[i]+" | "+ToplamKelimeKaysayisi); } return(Sonuclar); }