چگونه متن شبیه سازی و پلاگین سازی را در تصاویر تشخیص دهیم
شناسایی متن مشابه یا پلاگین شده در تصاویر اسکن شده برای یکپارچگی علمی، بررسی محتوا و حفاظت قانونی مهم است. Aspose.OCR Image Text Finder برای .NET اجازه می دهد تا مجموعه ای از تشخیص شباهت محتوا در سراسر آرشیوها یا مجموعه های اسناد.
مشکل دنیای واقعی
تشخیص دستی متن دوگانه یا کپی شده در تصاویر اسکن شده ناکارآمد و بدون خطا است مقایسه اتوماتیک OCR اجازه می دهد تا مقیاس و تکرار برای نیازهای علمی، کسب و کار و یا حقوقی.
بررسی راه حل
متن را از هر تصویر استخراج کنید و آن را در برابر یک جسم یا تنظیم هدف برای شباهت بالا مقایسه کنید پرچم و گزارش بازی های مشکوک برای بررسی یا پیگیری.
پیش شرط
- Visual Studio 2019 یا بالاتر
- .NET 6.0 یا بالاتر (یا .Net Framework 4.6.2+)
- Aspose.OCR برای .NET از NuGet
PM> Install-Package Aspose.OCR
پیاده سازی گام به گام
مرحله اول: مجموعه تصویر خود را آماده کنید
string[] archiveFiles = Directory.GetFiles("./archive", "*.png");
string[] submissionFiles = Directory.GetFiles("./submissions", "*.png");
مرحله دوم: استخراج متن از تصاویر
RecognitionSettings settings = new RecognitionSettings();
settings.Language = Language.English;
AsposeOcr ocr = new AsposeOcr();
Dictionary<string, string> archiveTexts = new Dictionary<string, string>();
foreach (string file in archiveFiles)
{
string text = ocr.Recognize(new OcrInput(InputType.SingleImage) { file }, settings)[0].RecognitionText;
archiveTexts[file] = text;
}
مرحله 3: مقایسه برای شبیه سازی یا تکرار
از یک ویژگی شبیه سازی متن ساده (به عنوان مثال، فاصله Levenshtein، شاخص جکارد) یا یک بسته .NET برای مطابقت خنده دار استفاده کنید:
foreach (string subFile in submissionFiles)
{
string subText = ocr.Recognize(new OcrInput(InputType.SingleImage) { subFile }, settings)[0].RecognitionText;
foreach (var kvp in archiveTexts)
{
double similarity = JaccardSimilarity(subText, kvp.Value); // custom function or library
if (similarity > 0.8) // Tune threshold for your needs
{
File.AppendAllText("plagiarism_log.csv", $"{subFile},{kvp.Key},{similarity}\n");
}
}
}
// Example Jaccard similarity (token-based)
double JaccardSimilarity(string text1, string text2)
{
var set1 = new HashSet<string>(text1.Split());
var set2 = new HashSet<string>(text2.Split());
int intersect = set1.Intersect(set2).Count();
int union = set1.Union(set2).Count();
return (double)intersect / union;
}
مرحله چهارم: نتایج ثبت نام و بررسی
- صادرات مسابقات مشکوک برای بررسی انسانی یا علمی / قانونی
مرحله پنجم: نمونه کامل
using Aspose.OCR;
using System;
using System.Collections.Generic;
using System.IO;
class Program
{
static void Main(string[] args)
{
string[] archiveFiles = Directory.GetFiles("./archive", "*.png");
string[] submissionFiles = Directory.GetFiles("./submissions", "*.png");
RecognitionSettings settings = new RecognitionSettings();
settings.Language = Language.English;
AsposeOcr ocr = new AsposeOcr();
Dictionary<string, string> archiveTexts = new Dictionary<string, string>();
foreach (string file in archiveFiles)
archiveTexts[file] = ocr.Recognize(new OcrInput(InputType.SingleImage) { file }, settings)[0].RecognitionText;
foreach (string subFile in submissionFiles)
{
string subText = ocr.Recognize(new OcrInput(InputType.SingleImage) { subFile }, settings)[0].RecognitionText;
foreach (var kvp in archiveTexts)
{
double sim = JaccardSimilarity(subText, kvp.Value);
if (sim > 0.8)
File.AppendAllText("plagiarism_log.csv", $"{subFile},{kvp.Key},{sim}\n");
}
}
}
static double JaccardSimilarity(string text1, string text2)
{
var set1 = new HashSet<string>(text1.Split());
var set2 = new HashSet<string>(text2.Split());
int intersect = set1.Intersect(set2).Count();
int union = set1.Union(set2).Count();
return (double)intersect / union;
}
}
استفاده از موارد و برنامه ها
آکادمیک یکپارچگی و تشخیص پلاگین
نمایش سخنرانی های دانشجویی برای محتوای کپی شده در برابر منابع آرشیو.
بررسی قانونی و قراردادی
کشف استفاده مجدد یا کپی کردن زبان قراردادی در اسکن های قانونی.
انتشار محتوا و رسانه ها
شناسایی تکرار یا استفاده مجدد غیر مجاز از متن در صنایع خلاق.
چالش ها و راه حل های مشترک
چالش اول: اشتباهات شناسایی OCR
** راه حل:** از اسکن های با کیفیت بالا و محدودیت های شباهت تن استفاده کنید.
چالش دوم: مجموعه های آرشیو بزرگ
** راه حل: ** فرآیند پیش شاخص یا بسته، در صورت لزوم به هم پیوست.
چالش سوم: زبان یا فرمت های مختلف
**پاسخ: **تصمیم گیری متن (نقطه پایین، حذف کلمات توقف)، فرآیند بر اساس تنظیمات زبان.
بررسی عملکرد
- محاسبات شباهت متن برای مجموعه های بزرگ (مجموعه و برنامه) بسیار محاسباتی است.
- ثبت تمام نتایج برای بررسی و حسابرسی
بهترین شیوهها
- تأیید نتایج با دستورالعمل یا بررسی کمیته
- محدودیت های شباهت برای دقت در مقابل مثبت های نادرست
- آرشیو تمام سوابق برای انطباق و حسابرسی
- استفاده از استاندارد ساختار متن
سناریوهای پیشرفته
مرحله اول: نتایج مشابه را مشاهده کنید
ایجاد نمودارها یا نمودارهای از CSV خود با استفاده از ابزارهای Excel یا BI.
سناریو 2: ادغام API برای اسکن ارسال در زمان واقعی
نمایش تصاویر در هنگام بارگذاری و ارائه بازخورد شباهت فوری.
نتیجه گیری
Aspose.OCR Image Text Finder برای .NET امکان شناسایی مقیاس پذیر و اتوماتیک محتوای مشابه یا پلاگین شده در تصاویر را فراهم می کند که برای جریان های آموزشی، حقوقی و انتشارات ضروری است.
See Aspose.OCR برای .NET API مرجع برای مقایسه پیشرفته تر و جستجوی APIs.