Kā atklāt teksta līdzību un plagiarismu attēlos
Līdzīga vai plagiarizēta teksta atklāšana skenētajos attēlos ir svarīga akadēmiska integritāte, satura pārskatīšana un juridiskā aizsardzība. Aspose.OCR Image Text Finder for .NET ļauj atklāt saturu līdzību starp arhīviem vai dokumentu kompleksiem.
Reālā pasaules problēma
Manuāla duplikāta vai kopēta teksta atklāšana skenētajos attēlos ir neefektīva un kļūdainoša. automatizēta OCR vadīta salīdzināšana ļauj izmērs un atkārtotību akadēmiskiem, biznesa vai juridiskiem vajadzībām.
Risinājumu pārskats
Izvadīt tekstu no katras attēla un salīdzināt to pret korpusu vai mērķa iestatījumu par augstu līdzību.
Prerequisites
- Visual Studio 2019 vai vēlāk
- .NET 6.0 vai jaunāks (vai .Net Framework 4.6.2+)
- Aspose.OCR par .NET no NuGet
PM> Install-Package Aspose.OCR
Step-by-step īstenošana
1. solis: sagatavojiet attēlu komplektus
string[] archiveFiles = Directory.GetFiles("./archive", "*.png");
string[] submissionFiles = Directory.GetFiles("./submissions", "*.png");
2. solis: Izņemt tekstu no attēliem
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. solis: salīdzināt līdzību vai duplikāciju
Izmantojiet vienkāršu teksta līdzības funkciju (piemēram, Levenshtein attālums, Jaccard indekss) vai .NET paketi fuzzy atbilstībai:
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. solis: Registra un pārskata rezultāti
- Eksporta aizdomās turēto spēli cilvēka vai akadēmiskā / juridiskā pārskatīšanai
5. solis: pilns piemērs
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;
}
}
Izmantojiet gadījumus un pieteikumus
Akadēmiskā integritāte un plagiarisma atklāšana
Skatiet studentu iesniegumus kopētam saturam pret arhivētiem avotiem.
Juridiskā un līguma pārskats
Apzināt atkārtoti vai kopēt līguma valodu likumīgi skenētajos dokumentos.
satura publicēšana un mediji
Identificēt duplikāciju vai neatļautu teksta atkārtoti izmantošanu radošajās nozarēs.
Kopīgi izaicinājumi un risinājumi
1. izaicinājums: OCR atzīšanas kļūdas
Lēmums: Izmanto augstas kvalitātes skenēšanu un tonēšanas līdzības robežas.
Izteikums 2: Lieli arhīvu kompleksi
Rīze: Pre-index vai batch process, vajadzības gadījumā paralēli.
3. izaicinājums: valoda vai formatēšanas izmaiņas
Rīze: Normalizēt tekstu (lowercase, noņemt stopwords), apstrāde pēc valodas.
Darbības apsvērumi
- Teksta līdzības aprēķini ir datorizēti intensīvi lieliem kompleksiem — batch un grafiks
- Ievadiet visus rezultātus pārskatīšanai un revīzijai
Labākās prakses
- Ievērojamie rezultāti ar manuālu vai komitejas pārskatu
- Tīra līdzības robežas precizitātes vs. viltus pozitīvus
- Arhīvs visiem ierakstiem atbilstības un revīzijas nolūkos
- Izmanto strukturētu teksta normalizāciju
Augstākie scenāriji
Scenārija 1: Visualizēt līdzības rezultātus
Izveidojiet diagrammas vai grafikas no CSV, izmantojot Excel vai BI rīkus.
Scenārija 2: API integrācija reālajā laikā iesniegumu skenēšanai
Pārraidiet attēlus uzstādīšanas brīdī un nodrošiniet tūlītēju līdzību atsauksmes.
Conclusion
Aspose.OCR Image Text Finder for .NET ļauj skalējamu, automātisku līdzīgu vai plagiarizētu satura atklāšanu attēlos – kas ir būtiski akadēmiskiem, juridiskiem un publikācijas darba plūsmām.
See Aspose.OCR par .NET API atsauci Lai uzlabotu salīdzinājumu un meklētu APIs.