चित्रों में पाठ समानता और प्लगइनिंग का पता लगाने के लिए कैसे
स्कैन की गई छवियों में समान या plagiarized पाठ का पता लगाना अकादमिक अखंडता, सामग्री समीक्षा, और कानूनी सुरक्षा के लिए महत्वपूर्ण है. Aspose.OCR Image Text Finder for .NET संग्रहों या दस्तावेज़ सेटों के माध्यम से सामग्री की तुलना का बैच पहचान करने की अनुमति देता है।
असली दुनिया की समस्या
स्कैन की गई छवियों में दोहराए गए या कॉपी किए गए पाठ का मैन्युअल पता लगाना अप्रभावी और त्रुटि-प्रेरित है. ऑटो ओसीआर-चालित तुलना शैक्षणिक, व्यावसायिक या कानूनी आवश्यकताओं के लिए स्केल और पुनरावृत्ति की अनुमति देती है।
समाधान समीक्षा
प्रत्येक छवि से पाठ निकालें और इसे उच्च समानता के लिए एक शरीर या लक्ष्य सेट के खिलाफ तुलना करें. झंडा और रिपोर्ट संदिग्ध मैचों को समीक्षा या अनुसरण के रूप में।
Prerequisites
- Visual Studio 2019 या बाद में
- .NET 6.0 या बाद में (या .Net Framework 4.6.2+)
- NuGet से .NET के लिए Aspose.OCR
PM> Install-Package Aspose.OCR
चरण-दर-चरण कार्यान्वयन
चरण 1: अपनी छवि सेट तैयार करें
string[] archiveFiles = Directory.GetFiles("./archive", "*.png");
string[] submissionFiles = Directory.GetFiles("./submissions", "*.png");
चरण 2: छवियों से पाठ निकालना
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;
}
चरण 4: लॉग और समीक्षा परिणाम
- मानवीय या शैक्षणिक / कानूनी समीक्षा के लिए संदिग्ध मैचों का निर्यात
चरण 5: पूर्ण उदाहरण
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;
}
}
मामलों और अनुप्रयोगों का उपयोग करें
अकादमिक अखंडता और प्लगइनिंग का पता लगाना
संग्रहीत स्रोतों के खिलाफ कॉपी सामग्री के लिए छात्र प्रस्तुतियों को स्क्रीन करें।
कानूनी और अनुबंध समीक्षा
कानूनी रूप से स्कैन किए गए दस्तावेजों में अनुबंध भाषा का पुन: उपयोग या प्रतिलिपि का पता लगाएं।
सामग्री प्रकाशन और मीडिया
रचनात्मक उद्योगों में पाठ के दोहराव या अनधिकृत पुन: उपयोग की पहचान करें।
आम चुनौतियां और समाधान
चुनौती 1: OCR मान्यता त्रुटियों
** समाधान:** उच्च गुणवत्ता वाले स्कैन और टोन समानता सीमाओं का उपयोग करें।
चुनौती 2: बड़े संग्रह सेट
** समाधान:** प्री-इंडेक्स या बैच प्रक्रिया, यदि आवश्यक हो तो समानांतर करें।
चुनौती 3: भाषा या प्रारूपण वेरिएशन
** समाधान:** पाठ को सामान्य करें (नीचे मामले, स्टॉप शब्दों को हटा दें), भाषा सेट के अनुसार प्रक्रिया करें।
प्रदर्शन विचार
- पाठ समानता गणना बड़ी सेटों के लिए कंप्यूटर-इंथेंस हैं-बैच और कार्यक्रम
- समीक्षा और ऑडिट के लिए सभी परिणामों को रिकॉर्ड करें
सर्वश्रेष्ठ अभ्यास
- मैनुअल या समिति समीक्षा के साथ चिह्नित परिणामों की पुष्टि करें
- सटीकता के लिए समानता की सीमाओं को ट्यूनिंग करें vs. नकली सकारात्मक
- अनुपालन और ऑडिट के लिए सभी लॉग संग्रहीत करें
- संरचित पाठ मानकीकरण का उपयोग करें
उन्नत परिदृश्य
परिदृश्य 1: समानता परिणामों को देखें
Excel या BI टूल का उपयोग करके अपने CSV से चार्ट या ग्राफिक्स बनाएं।
परिदृश्य 2: वास्तविक समय प्रस्तुति स्क्रीनिंग के लिए एपीआई एकीकरण
अपलोड करते समय छवियों को स्क्रीन करें और तत्काल समानता प्रतिक्रिया प्रदान करें।
Conclusion
.NET के लिए Aspose.OCR छवि पाठ खोजकर्ता छवियों में समान या plagiarized सामग्री का स्केल करने योग्य, स्वचालित पता लगाने की अनुमति देता है - अकादमिक, कानूनी, और प्रकाशन कार्यप्रवाहों में आवश्यक।
See .NET API संदर्भ के लिए Aspose.OCR अधिक उन्नत तुलना और खोज एपीआई के लिए।