C# Makale Özgünleştirme Programı

C# Makale Özgünleştirme Programı

Bu paylaşımda makale özgünleştirme programını paylaşacağım.Programın kodlarına geçmeden evvel,  makale özgünleştirme programı nedir onu açıklayalım.

Makale Özgünleştirme Programı Ne İşe Yarar?

Kısaca açıklamak gerekirse; bir içerik içersindeki kelimelerin eş anlamlı kelimelerini bulup değiştirerek içeriği özgünleştirmeyi amaçlayan bir programdır.
Şimdi makale özgünleştirme programının kodlarını yazmaya başlayalım.

İlk olarak windows form application oluşturuyoruz.Form'a iki adet richtextbox ve bir adet buton ekliyoruz.Ardından kodlarımıza geçiyoruz.

İlk olarak bir sınıf oluşturalım.Bu sınıfta veritabanındaki kelimeleri ve eş anlamlılarını çekeceğiz.Ardından girilen metini bu sınıfa gönderip veritabanı ile karşılaştırma yaptıracağız.Eğer veritabanındaki kelimeler ile eşleşiyorsa, bu kelimenin eş anlamlısı ile kelimeyi değiştireceğiz.

using MakaleOzgunlestirmeProgrami.Model;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

namespace MakaleOzgunlestirmeProgrami.Controller
{
    public class EsAnlamController
    {
        private EsAnlamDBEntities Db = null;
        public List<DegisenKelime> DegisenKelimeler = null;

        public EsAnlamController()
        {
            Db = new EsAnlamDBEntities();
            DegisenKelimeler = new List<DegisenKelime>();
        }

        public List<EsAnlam> TumVerileriGetir()
        {
            return Db.EsAnlam.ToList();
        }

        public class DegisenKelime{
            public string Ad { get; set; }
            public string OncekiAd { get; set; }
            public int Index { get; set; }
        }

        public string MakaleOzgunlestir(string metin)
        {
            DegisenKelimeler.Clear();
            MatchCollection icindeGecenKelimeler;
            var modeller = TumVerileriGetir();

            var kelimeler = metin.Split(' ');
            string kesilenKelime = "";
            for (int i = 0; i < modeller.Count; i++)
            {
                foreach (var kelime in kelimeler)
                {
                    if (kelime.Equals(modeller[i].Kelime))
                    {
                        icindeGecenKelimeler = Regex.Matches(metin, $@"\b{kelime}\b", RegexOptions.IgnoreCase);
                        foreach (Match m in icindeGecenKelimeler)
                        {
                            foreach (Capture c in m.Captures)
                            {
                                kesilenKelime = metin.Substring(c.Index, kelime.Length);
                                if (kelime.Equals(kesilenKelime))
                                {
                                    metin = metin.Remove(c.Index, kelime.Length);
                                    metin = metin.Insert(c.Index, modeller[i].EsAnlami);
                                    DegisenKelimeler.Add(
                                        new DegisenKelime
                                        {
                                            Ad = modeller[i].EsAnlami,
                                            Index = c.Index,
                                            OncekiAd = kelime
                                        });
                                    i--;
                                    break;
                                }
                            }
                            break;
                        }
                        break;
                    }
                }
            }
            return metin;
        }
    }
}

Formumuza geçelim."Özgünleştir" adlı butona tıklayarak kod kısmına geçelim ve kodumuzu yazalım.


using MakaleOzgunlestirmeProgrami.Controller;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace MakaleOzgunlestirmeProgrami
{
    public partial class AnaForm : Form
    {
        EsAnlamController EsAnlamController = new EsAnlamController();
        public AnaForm()
        {
            InitializeComponent();
        }

        private void BtnOzgunlestir_Click(object sender, System.EventArgs e)
        {
            richTxtOzgunMakale.Text = "";
            var metin = richTextMakale.Text;
            var ozgunlesmisMakale = EsAnlamController.MakaleOzgunlestir(metin);
            richTxtOzgunMakale.Text = ozgunlesmisMakale;
            var degisenKelimeler = EsAnlamController.DegisenKelimeler;
            KelimeRenklendir(degisenKelimeler);
        }

        private void KelimeRenklendir(List<EsAnlamController.DegisenKelime> degisenKelimeler)
        {
            foreach (var kelime in degisenKelimeler)
            {
                richTextMakale.Find(kelime.OncekiAd, kelime.Index, richTextMakale.TextLength, RichTextBoxFinds.None);
                richTextMakale.SelectionBackColor = Color.Red;
                richTextMakale.SelectionColor = Color.White;

                richTxtOzgunMakale.Find(kelime.Ad, kelime.Index-kelime.Ad.Length, richTextMakale.TextLength,RichTextBoxFinds.None);
                richTxtOzgunMakale.SelectionBackColor = Color.Red;
                richTxtOzgunMakale.SelectionColor = Color.White;
            }
        }
    }
}


Burada KelimeRenklendir methodu içerisinde, değişen kelimeleri buluyoruz ve kırmızı renge boyuyoruz ki, hangi kelimeler değişmiş onu rahatça görebilelim diye.

Program ile yazacaklarım bu kadar arkadaşlar.Artık gerisi size kalmış.İsterseniz üstünde oynamalar yaparak dahada geliştirebilirsiniz.İster program içerisinde işinize yarayacak kodları alıp, kendi yaptığınız projeye dahil edebilirsiniz.Umarım kodlar işinize yarar.İyi kodlamalar arkadaşlar!

İNDİR
  • 0 Blogger
  • Google+
  • Facebook
  • Disqus

Henüz Yorum Yok

Yorum Gönder

comments powered by Disqus

Yayın Üstü Sponsor Reklam

Yayın Ortası Sponsor Reklam

Yayın Ortası Sponsor Reklam 2

Yayın Altı Sponsor Reklam


Bu Makaleyi Beğendinizmi ?