Kako otkriti tekstnu sličnost i plagiarizam u slikama

Kako otkriti tekstnu sličnost i plagiarizam u slikama

Otkrivanje sličnog ili plagiariziranog teksta u skeniranim slikama važno je za akademsku integritet, pregled sadržaja i pravnu zaštitu.Aspose.OCR Image Text Finder za .NET omogućuje detekciju sastavne sjećanja sadržaja u arhivima ili skupovima dokumenata.

Real-svjetski problem

Ručno otkrivanje duplikatnog ili kopiranog teksta u skeniranim slikama je neučinkovito i bez pogrešaka.Automatska OCR usporedba omogućuje razmjer i ponovljivost za akademske, poslovne ili pravne potrebe.

Pregled rješenja

Izvadite tekst iz svake slike i usporedite ga protiv korpusa ili cilja za visoku sličnost.

Preduzeća

  • Visual Studio 2019 ili kasnije
  • .NET 6.0 ili noviji (ili .Net Framework 4.6.2+)
  • Aspose.OCR za .NET od NuGet
PM> Install-Package Aspose.OCR

Korak po korak provedba

Korak 1: Pripremite svoj set slike

string[] archiveFiles = Directory.GetFiles("./archive", "*.png");
string[] submissionFiles = Directory.GetFiles("./submissions", "*.png");

Korak 2: Izvadite tekst iz slika

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;
}

Korak 3: Usporedite za sličnost ili duplikaciju

Koristite jednostavnu funkciju sličnosti teksta (na primjer, Levenshtein udaljenost, Jaccard indeks) ili .NET paket za fuzzy odgovarajuće:

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;
}

Korak 4: Prijavite se i pregledajte rezultate

  • Izvoz sumnjivih utakmica za ljudski ili akademski/pravni pregled

Četvrti korak: potpuni primjer

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;
    }
}

Korištenje slučajeva i aplikacija

Akademska integriteta i detekcija plagiarizma

Prikazivanje studenata za kopirano sadržaj protiv arhiviranih izvora.

Pravna i ugovorna revizija

Otkrijte ponovnu upotrebu ili kopiranje ugovornog jezika u zakonski skeniranim dokovima.

Objavljivanje sadržaja i medija

Identificirajte duplikaciju ili neovlaštenu ponovnu upotrebu teksta u kreativnim industrijama.

Zajednički izazovi i rješenja

Izazov 1: OCR priznavanje pogrešaka

Rješenje: Koristite visokokvalitetne skeniranja i ograničenja sličnosti tune.

Izazov 2: Veliki arhivski setovi

Rješenje: Pre-index ili batch proces, paralelizirati ako je potrebno.

Izazov 3: Jezici ili varijanti formatacije

Rješenje: Normalizirajte tekst (smanjenje slučaja, uklanjanje riječi za zaustavljanje), proces po setu jezika.

Razmatranje učinkovitosti

  • Izračuni sličnosti teksta su računalno intenzivni za velike setove – batch i raspored
  • Upišite sve rezultate za pregled i reviziju

Najbolje prakse

  • Potvrdite označene rezultate putem priručnika ili revizije odbora
  • Tuni granice sličnosti za točnost protiv lažnih pozitivnih
  • Arhiva sve logove za usklađenost i reviziju
  • Koristite strukturiranu standardizaciju teksta

Napredni scenariji

Scenarij 1: Vizualizirajte rezultate sličnosti

Stvorite grafikone ili grafike iz CSV-a pomoću Excel ili BI alata.

Scenarij 2: API integracija za skeniranje podnošenja u stvarnom vremenu

Ekran slike prilikom preuzimanja i pružiti instant sličnost povratne informacije.

zaključak

Aspose.OCR Image Text Finder za .NET omogućuje skalabilno, automatizirano otkrivanje sličnog ili plagiariziranog sadržaja u slikama – važno za akademske, pravne i publikacijske radne tokove.

See Aspose.OCR za .NET API reference za naprednije usporedbe i pretraživanja API-ja.

 Hrvatski