[{"content":"","date":"10 June 2026","externalUrl":null,"permalink":"/tags/bilgi-erisimi/","section":"Tags","summary":"","title":"Bilgi-Erisimi","type":"tags"},{"content":"","date":"10 June 2026","externalUrl":null,"permalink":"/tags/nlp/","section":"Tags","summary":"","title":"Nlp","type":"tags"},{"content":"","date":"10 June 2026","externalUrl":null,"permalink":"/tags/rag/","section":"Tags","summary":"","title":"Rag","type":"tags"},{"content":"","date":"10 June 2026","externalUrl":null,"permalink":"/series/rag-sistemleri/","section":"Series","summary":"","title":"RAG Sistemleri","type":"series"},{"content":" Giriş # Retrieval-Augmented Generation (RAG), büyük dil modellerinin (LLM) dış bilgi kaynaklarıyla desteklenerek daha doğru ve güncel yanıtlar üretmesini sağlayan bir mimaridir. Sistemin başarısı büyük ölçüde retrieval aşamasının kalitesine bağlıdır.\nRetrieval Kalitesini Etkileyen Faktörler # 1. Doküman Parçalama (Chunking) Stratejisi # Dokümanların anlamlı parçalara bölünmesi, retrieval kalitesini doğrudan etkiler:\nSabit boyutlu chunking: Basit ama anlam bütünlüğünü bozabilir Anlamsal chunking: Cümle/paragraf sınırlarına göre bölme Örtüşen chunking: Bağlam kaybını önlemek için chunk\u0026rsquo;lar arası bindirme # Anlamsal chunking örneği from langchain.text_splitter import RecursiveCharacterTextSplitter splitter = RecursiveCharacterTextSplitter( chunk_size=500, chunk_overlap=100, separators=[\u0026#34;\\n\\n\u0026#34;, \u0026#34;\\n\u0026#34;, \u0026#34;. \u0026#34;, \u0026#34; \u0026#34;, \u0026#34;\u0026#34;] ) 2. Embedding Model Seçimi # Embedding modelinin kalitesi, semantik aramanın başarısını belirler:\nModel Boyut Dil Desteği text-embedding-3-small 1536 Çok dilli text-embedding-3-large 3072 Çok dilli Cohere Embed v3 1024 Çok dilli BGE-M3 1024 Çok dilli 3. Hibrit Arama Yaklaşımı # Yalnızca vektör araması yerine, seyrek (sparse) ve yoğun (dense) retrieval yöntemlerini birleştiren hibrit yaklaşımlar daha iyi sonuç verir:\nBM25 — Anahtar kelime tabanlı seyrek arama Dense embeddings — Anlamsal benzerlik tabanlı arama Fusion yöntemleri — RRF (Reciprocal Rank Fusion), Convex Combination Sonuç # RAG sistemlerinde retrieval kalitesini artırmak için çok katmanlı bir yaklaşım gerekir. Doğru chunking stratejisi, uygun embedding modeli ve hibrit arama yöntemlerinin kombinasyonu en iyi sonuçları verir.\n","date":"10 June 2026","externalUrl":null,"permalink":"/blog/rag-sistemlerinde-retrieval-kalitesi/","section":"Blog","summary":"Giriş # Retrieval-Augmented Generation (RAG), büyük dil modellerinin (LLM) dış bilgi kaynaklarıyla desteklenerek daha doğru ve güncel yanıtlar üretmesini sağlayan bir mimaridir. Sistemin başarısı büyük ölçüde retrieval aşamasının kalitesine bağlıdır.\n","title":"RAG Sistemlerinde Retrieval Kalitesini Artırma Yöntemleri","type":"blog"},{"content":"","date":"10 June 2026","externalUrl":null,"permalink":"/tags/vektor-veritabani/","section":"Tags","summary":"","title":"Vektor-Veritabani","type":"tags"},{"content":"","date":"10 June 2026","externalUrl":null,"permalink":"/categories/yapay-zeka/","section":"Categories","summary":"","title":"Yapay Zeka","type":"categories"},{"content":"","date":"1 June 2026","externalUrl":null,"permalink":"/tags/csharp/","section":"Tags","summary":"","title":"Csharp","type":"tags"},{"content":"","date":"1 June 2026","externalUrl":null,"permalink":"/tags/kutuphane/","section":"Tags","summary":"","title":"Kutuphane","type":"tags"},{"content":"","date":"1 June 2026","externalUrl":null,"permalink":"/tags/osmanlica/","section":"Tags","summary":"","title":"Osmanlica","type":"tags"},{"content":" Problem # Osmanlı arşiv belgelerinde tarihler genellikle Rumi (Mali) takvimle kaydedilmiştir. Bu tarihleri Miladi takvime dönüştürmek, tarihsel belge işleme sistemlerinde sık karşılaşılan bir ihtiyaçtır.\nRumi Takvim Nedir? # Rumi takvim, Osmanlı İmparatorluğu\u0026rsquo;nda 1839\u0026rsquo;dan itibaren mali işlerde kullanılmaya başlanan, Jülyen takvimi temelli bir takvimdir. Miladi takvimle arasında:\n13 günlük sabit fark (1900 öncesi: 12 gün) Ay isimleri farklılığı bulunur Çözüm: Tirnavali.Converter.BasicRumiToGregorian # Açık kaynak bir C# kütüphanesi olarak geliştirdiğim bu dönüştürücü:\nusing Tirnavali.Converter; // Rumi tarihi Miladi\u0026#39;ye çevir var rumiDate = new RumiDate(1341, RumiMonth.Mart, 15); DateTime gregorianDate = RumiToGregorian.Convert(rumiDate); // Sonuç: 15 Mart 1925 Karşılaşılan Zorluklar # 1. Artık Yıl Hesaplaması # Rumi ve Miladi takvimler farklı artık yıl kurallarına sahiptir. 1900 yılı artık yıl değilken Rumi\u0026rsquo;de özel durumlar vardır.\n2. Yıl Başlangıcı # Rumi yılbaşı 1 Mart\u0026rsquo;tır. Bu, Ocak ve Şubat aylarında yıl dönüşümünü etkiler.\n3. Tarihsel Doğrulama # Bazı Rumi tarihler tarihsel olarak geçersiz olabilir (örneğin takvim değişikliklerinin olduğu dönemler).\nKullanım Alanları # Arşiv belgesi dijitalleştirme Osmanlıca metin işleme Tarihsel veri analizi NuGet paketi → | GitHub →\n","date":"1 June 2026","externalUrl":null,"permalink":"/blog/rumi-miladi-takvim-donusumu/","section":"Blog","summary":"Problem # Osmanlı arşiv belgelerinde tarihler genellikle Rumi (Mali) takvimle kaydedilmiştir. Bu tarihleri Miladi takvime dönüştürmek, tarihsel belge işleme sistemlerinde sık karşılaşılan bir ihtiyaçtır.\n","title":"Osmanlıca Rumi Takvimden Miladi Takvime Dönüşümün İncelikleri","type":"blog"},{"content":"","date":"1 June 2026","externalUrl":null,"permalink":"/tags/tarih/","section":"Tags","summary":"","title":"Tarih","type":"tags"},{"content":"","date":"1 June 2026","externalUrl":null,"permalink":"/series/tirnavali.converter/","section":"Series","summary":"","title":"Tirnavali.Converter","type":"series"},{"content":"","date":"1 June 2026","externalUrl":null,"permalink":"/categories/yaz%C4%B1l%C4%B1m/","section":"Categories","summary":"","title":"Yazılım","type":"categories"},{"content":"","date":"20 May 2026","externalUrl":null,"permalink":"/categories/ar%C5%9Fiv-y%C3%B6netimi/","section":"Categories","summary":"","title":"Arşiv Yönetimi","type":"categories"},{"content":"","date":"20 May 2026","externalUrl":null,"permalink":"/tags/dijital-arsiv/","section":"Tags","summary":"","title":"Dijital-Arsiv","type":"tags"},{"content":"","date":"20 May 2026","externalUrl":null,"permalink":"/tags/net-core/","section":"Tags","summary":"","title":"Net-Core","type":"tags"},{"content":"","date":"20 May 2026","externalUrl":null,"permalink":"/tags/solr/","section":"Tags","summary":"","title":"Solr","type":"tags"},{"content":"","date":"20 May 2026","externalUrl":null,"permalink":"/tags/tbmm/","section":"Tags","summary":"","title":"Tbmm","type":"tags"},{"content":" Proje Özeti # TBMM\u0026rsquo;nin parlamento tarihine ait milyonlarca belgenin dijitalleştirilmesi ve erişilebilir hale getirilmesi projesinde kullanılan teknik mimariyi paylaşıyorum.\nMimari Bileşenler # Backend # .NET Core — Ana uygulama çatısı PostgreSQL — İlişkisel veritabanı Apache Solr — Tam metin arama motoru RabbitMQ — Asenkron iş kuyruğu Dijitalleştirme Pipeline\u0026rsquo;ı # graph LR A[Tarama] --\u0026gt; B[OCR İşleme] B --\u0026gt; C[Üstveri Çıkarma] C --\u0026gt; D[Solr İndeksleme] D --\u0026gt; E[Kullanıcı Arayüzü] OCR Pipeline # Osmanlıca ve Türkçe belgeler için özel OCR iş akışı:\nTaranmış görüntü ön işleme (gürültü temizleme, eşikleme) Tesseract OCR motoruna özel dil modelleri entegrasyonu Çıktı kalite kontrolü ve manuel düzeltme arayüzü Arama Mimarisi # Solr üzerinde özelleştirilmiş şema:\nÇok dilli analiz: Türkçe ve Osmanlıca metin işleme zincirleri Facet\u0026rsquo;leme: Belge türü, tarih aralığı, dil Yazım düzeltme: Osmanlıca karakter varyasyonları için fuzzy matching Öğrenilen Dersler # Büyük ölçekli belge işlemede asenkron mimari şart Solr tuning, sorgu performansı için kritik OCR kalite kontrolü için insan-in-the-loop yaklaşımı gerekli Proje hakkında daha fazla bilgi için AA haberini okuyabilirsiniz.\n","date":"20 May 2026","externalUrl":null,"permalink":"/blog/tbmm-dijital-arsiv-teknik-mimari/","section":"Blog","summary":"Proje Özeti # TBMM’nin parlamento tarihine ait milyonlarca belgenin dijitalleştirilmesi ve erişilebilir hale getirilmesi projesinde kullanılan teknik mimariyi paylaşıyorum.\n","title":"TBMM Dijital Arşiv Projesi: Teknik Mimari","type":"blog"},{"content":" About Me # I work as a librarian and software developer at the Turkish Parliament Library, developing archive and library applications for my institution.\nEducation # PhD — Ankara University, Artificial Intelligence Studies (ongoing) MSc — Hacettepe University, Information Management BSc — Hacettepe University, Information Management Expertise # RAG (Retrieval-Augmented Generation) — Knowledge retrieval-based generative AI systems Information Retrieval — Search engines, document ranking, semantic search Digital Archives — Archive management systems, digitization, metadata standards Natural Language Processing — Text classification, entity recognition, information extraction Technical Skills # Category Technologies Languages Java, C#, Ruby, Python Web Ruby on Rails, Node.js, Express Database MongoDB, PostgreSQL, Solr Tools Git, Docker, Elasticsearch ","externalUrl":null,"permalink":"/en/about/","section":"About","summary":"About Me # I work as a librarian and software developer at the Turkish Parliament Library, developing archive and library applications for my institution.\n","title":"About","type":"about"},{"content":"","externalUrl":null,"permalink":"/en/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"Thoughts and experiences on information retrieval, RAG systems, digital archives, and software development.\n","externalUrl":null,"permalink":"/en/blog/","section":"Blog","summary":"Thoughts and experiences on information retrieval, RAG systems, digital archives, and software development.\n","title":"Blog","type":"blog"},{"content":" Librarian \u0026amp; Software Developer # I work on information retrieval, RAG systems, and digital archives. At the Turkish Parliament Library, I combine professional library experience with software development and AI research to make knowledge more accessible, searchable, and useful.\nAbout me Explore my projects Areas of Expertise # RAG and generative AI # I work on Retrieval-Augmented Generation systems that connect large language models with reliable knowledge sources, with a focus on retrieval quality.\nInformation retrieval # I build solutions around search engines, document ranking, semantic search, and helping people find the right information quickly.\nDigital archives # My interests include digitization, metadata management, OCR workflows, and institutional archive applications.\nSoftware development # I create sustainable, searchable, and practical software solutions for library and archive use cases.\nFeatured Projects # Archivist # An open-source archive management system with document management, PDF viewing, and full-text search capabilities.\nView the project on GitHub →\nTirnavali.Converter.BasicRumiToGregorian # A lightweight C# library for converting Rumi calendar dates to the Gregorian calendar.\nView the project on GitHub →\nAcknowledge # An open-source project supporting knowledge management and personal productivity workflows.\nView the project on GitHub →\nView all projects →\nCareer and Education # Turkish Parliament Library — Librarian and Software Developer Ankara University — PhD student in Artificial Intelligence Studies Hacettepe University — MSc in Information Management Hacettepe University — BSc in Information Management Selected Writing # I write about information retrieval, AI, digital archives, and software development on my blog.\nImproving Retrieval Quality in RAG Systems Technical Architecture of the Turkish Parliament Digital Archive Converting Ottoman Rumi Dates to Gregorian Dates Read all articles →\nLet’s Work Together # If you are interested in RAG, information retrieval, digital archives, or library technology, feel free to get in touch.\nGet in touch →\n","externalUrl":null,"permalink":"/en/","section":"Building at the intersection of knowledge, AI, and software","summary":"Librarian \u0026 Software Developer # I work on information retrieval, RAG systems, and digital archives. At the Turkish Parliament Library, I combine professional library experience with software development and AI research to make knowledge more accessible, searchable, and useful.\n","title":"Building at the intersection of knowledge, AI, and software","type":"page"},{"content":"","externalUrl":null,"permalink":"/en/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"Professional certifications and completed training programs.\nSoftware Development # Oracle Certified Professional, Java SE — Oracle Java Backend Developer — UPOD / Digital Future Community, August 2024 (211 hours) Visit my LinkedIn profile for a detailed list of certifications with verification links.\n","externalUrl":null,"permalink":"/en/certificates/","section":"Certificates","summary":"Professional certifications and completed training programs.\nSoftware Development # Oracle Certified Professional, Java SE — Oracle Java Backend Developer — UPOD / Digital Future Community, August 2024 (211 hours) Visit my LinkedIn profile for a detailed list of certifications with verification links.\n","title":"Certificates","type":"certificates"},{"content":" Contact # You can reach me through the following channels:\nEmail: sercantirnavali@live.com LinkedIn: linkedin.com/in/sercan-tirnavali GitHub: github.com/tirnavali Stack Overflow: stackoverflow.com/users/8763546 Flickr: flickr.com/photos/sercant Location # Ankara, Turkey\nFeel free to reach out for collaboration, consulting, or RAG/information retrieval projects.\n","externalUrl":null,"permalink":"/en/contact/","section":"Contact","summary":"Contact # You can reach me through the following channels:\nEmail: sercantirnavali@live.com LinkedIn: linkedin.com/in/sercan-tirnavali GitHub: github.com/tirnavali Stack Overflow: stackoverflow.com/users/8763546 Flickr: flickr.com/photos/sercant Location # Ankara, Turkey\n","title":"Contact","type":"contact"},{"content":"Open source projects I\u0026rsquo;ve developed and contributed to.\nArchivist # An archive management system built with Ruby on Rails for document management in public or private sectors. Features PDF content display and partial MOREQ compliance.\nTechnologies: Ruby, Ruby on Rails, PostgreSQL, Solr\nTirnavali.Converter.BasicRumiToGregorian # A lightweight C# library for converting dates from the Rumi (Ottoman Fiscal) calendar to the Gregorian calendar.\nTechnologies: C#, .NET\nAcknowledge # Your personal media archive. Face recognition and image captioning on your local device.\nTechnologies: Python, OpenCV, TensorFlow\nView all projects on GitHub →\n","externalUrl":null,"permalink":"/en/projects/","section":"Projects","summary":"Open source projects I’ve developed and contributed to.\nArchivist # An archive management system built with Ruby on Rails for document management in public or private sectors. Features PDF content display and partial MOREQ compliance.\n","title":"Projects","type":"projects"},{"content":"Kütüphaneci \u0026amp; Yazılım Geliştirici. Bilgi erişimi, RAG ve dijital arşiv uzmanı.\n","externalUrl":null,"permalink":"/authors/tirnavali/","section":"Authors","summary":"Kütüphaneci \u0026 Yazılım Geliştirici. Bilgi erişimi, RAG ve dijital arşiv uzmanı.\n","title":"Sercan Tırnavalı","type":"authors"},{"content":"","externalUrl":null,"permalink":"/en/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","externalUrl":null,"permalink":"/en/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"}]