Fuzzy Search C#

در دنیای امروز که داده‌های غیرساختاری و ورودی‌های کاربری ناسازگار وجود دارد، تطابق‌های دقیق در عملیات جستجو اغلب ناکافی هستند. چه در حال کار بر روی یک سیستم مدیریت اسناد، ابزار تحلیل محتوا، یا موتور جستجوی شرکتی باشید، پیاده‌سازی جستجوی فازی به شما این امکان را می‌دهد که نتایج مرتبط را حتی زمانی که پرسش جستجو دارای اشتباهات تایپی، تنوع‌های املایی، یا تفاوت‌های کوچک است، بازیابی کنید. در این پست وبلاگ، ما نحوه پیاده‌سازی جستجوی فازی در C# با استفاده از Conholdate.Total برای .NET SDK را بررسی خواهیم کرد. شما یاد خواهید گرفت که چگونه در میان چندین فایل ذخیره شده در پوشه‌های مختلف با استفاده از سطوح مشابهت قابل تنظیم برای دقت و انعطاف‌پذیری

چرا از جستجوی فازی استفاده کنیم؟

جستجوی فازی یک ویژگی اساسی برای هر برنامه مدرن است که با محتوای تولید شده توسط کاربر یا منابع متنی متنوع کار می‌کند. بر خلاف جستجوی دقیق، که فقط نتایجی را که دقیقاً با پرسش مطابقت دارند برمی‌گرداند، جستجوی فازی مدارک را که به اندازه کافی به پرسش جستجو نزدیک هستند بر اساس یک سطح تعریف شده از شباهت، بازیابی می‌کند. این روش به طور قابل توجهی تجربه کاربر را با توجه به اشتباهات تایپی، ناهماهنگی‌های املایی یا تغییرات جزئی زبانی بهبود می‌بخشد.

به عنوان مثال، در یک سناریو که کاربران به دنبال کلمه "reciept" به جای "receipt" می گردند، یک جستجوی دقیق ناموفق خواهد بود، در حالی که یک جستجوی غیر دقیق همچنان نتایج مرتبطی را برمی گرداند. این برای زمینه هایی مانند بازیابی اسناد حقوقی، تحقیقات دانشگاهی و داده کاوی سازمانی به ویژه مفید است، جایی که دقت و انعطاف هر دو حیاتی هستند.

جستجوی مبهم - پیکربندی .NET

شما نیاز دارید تا Conholdate.Total for .NET را با فرمان نصب NuGet زیر نصب کنید:

Install-Package Conholdate.Total

جستجوی مبهم در چندین فایل و پوشه در C#

شما می‌توانید جستجوهای نامشخصی را در مجموعه وسیعی از اسناد ذخیره‌شده در فولدرهای مختلف انجام دهید. شما به‌راحتی می‌توانید سطوح شباهت را پیکربندی کرده و ساختار جستجو و ایندکس‌سازی را تعریف کنید.

// Creating an index folder and add document's folder to it
Index index = new Index("indexing-folder-path");
index.Add("path/parent-folder");

SearchOptions options = new SearchOptions();
options.FuzzySearch.Enabled = true; // Enabling the fuzzy search
options.FuzzySearch.FuzzyAlgorithm = new SimilarityLevel(0.7);

string query = "nulla"; // search approximate matches of the provided query  
SearchResult result = index.Search(query, options);

In this code snippet:

  • یک نمایه جدید ایجاد می‌شود که به دایرکتوری استفاده شده برای نمایه‌گذاری اشاره می‌کند.

  • یک پوشه والد که حاوی تمام مدارک است به این شاخص اضافه شده است.

  • جستجوی فازی از طریق کلاس SearchOptions فعال شده است.

  • سطح شباهت به 0.7 تنظیم شده است، که معادل 70% مطابقت یا 30% تحمل خطا می‌باشد.

  • عبارت جستجو "nulla" ارسال می‌شود و سیستم نتایجی را که به آستانه شباهت می‌رسند، بازیابی می‌کند.

شما می‌توانید سطح شباهت را بسته به اینکه نتایج جستجوی خود را چقدر دقیق یا انعطاف‌پذیر می‌خواهید، تنظیم کنید. آستانه پایین‌تر انعطاف‌پذیری بیشتری را فراهم می‌کند، در حالی که آستانه بالاتر تضمین می‌کند که تطابق دقیق‌تری حاصل شود.

مزایای سطح مشابهت قابل تنظیم

یکی از ویژگی‌های بارز Conholdate.Total برای SDK .NET قابلیت کنترل آستانه شباهت برای جستجوی نامشخص است. این سطح از سفارشی‌سازی کنترل دقیقی بر روی فرایند تطبیق ارائه می‌دهد و تضمین می‌کند که نتایج هم مرتبط و هم قابل اعتماد باشند.

شباهت بالاتر (به عنوان مثال، 0.9): زمانی استفاده کنید که دقت حیاتی است و می‌خواهید نتایجی که به پرسش اصلی بسیار نزدیک است.

شباهت پایین (برای مثال، 0.6): مناسب برای جستجوهای اکتشافی یا زمانی که کاربران ممکن است داده‌هایی را با خطاهای مکرر وارد کنند.

امکان تغییر این ارزش به صورت برنامه‌نویسی به توسعه‌دهندگان این انعطاف را می‌دهد که به موارد مختلف استفاده تجاری سازگار شوند بدون نیاز به بازنویسی یا پیکربندی مجدد کل سیستم.

مجوز ارزیابی رایگان

شما می‌توانید یک مجوز موقتی رایگان دریافت کنید تا از محدودیت‌های آزمایشی SDK جلوگیری کنید و بتوانید آن را به طور کامل تست کنید.

نتیجه‌گیری

جستجوی فازی یک ویژگی حیاتی برای برنامه‌هایی است که نیاز به ارائه قابلیت‌های جستجوی هوشمند، تحمل‌پذیر و کاربرپسند دارند. با استفاده از Conholdate.Total برای .NET SDK، توسعه‌دهندگان می‌توانند عملکرد جستجوی فازی قدرتمند را با حداقل تلاش به برنامه‌های C# خود ادغام کنند. چه در حال جستجو در میان هزاران سند قانونی باشید و چه در حال اسکن محتوای تولید شده توسط کاربر، این SDK ابزارهای لازم برای مدیریت آن را با دقت و انعطاف‌پذیری فراهم می‌آورد. سطوح تشابه را تنظیم کنید، در میان پوشه‌ها جستجو کنید و مرتبط‌ترین نتایج را بازیابی کنید، حتی زمانی که ورودی کامل نیست.

See Also