Hvordan oppdage tekst likhet og plagiarisme i bilder

Hvordan oppdage tekst likhet og plagiarisme i bilder

Detektering av lignende eller plagiariserte tekst i skannede bilder er viktig for akademisk integritet, innholdsundersøkelser og juridisk beskyttelse. Aspose.OCR Image Text Finder for .NET gjør det mulig å gjenkjenne likhet i innholdet over arkiver eller dokumenter.

Real-verdens problem

Manuell oppdagelse av duplikat eller kopiert tekst i skannede bilder er ineffektiv og feilfri. Automatisk OCR-drivet sammenligning tillater skala og gjentakelighet for akademiske, forretnings- eller juridiske behov.

Oversikt over løsning

Ekstrakter tekst fra hvert bilde og sammenlign det mot et corpus eller mål sett for høy likhet. Flagg og rapporter mistenkelige matcher for gjennomgang eller oppfølging.

Prerequisites

  • Visual Studio 2019 eller senere
  • .NET 6.0 eller nyere (eller .Net Framework 4.6.2+)
  • Aspose.OCR for .NET fra NuGet
PM> Install-Package Aspose.OCR

Step-by-step implementering

Steg 1: Forbered bildene dine

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

Steg 2: Ekstrakter tekst fra bilder

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

Steg 3: Sammenlign for likhet eller duplikasjon

Bruk en enkel tekstlignende funksjon (for eksempel Levenshtein avstand, Jaccard indeks) eller en .NET-pakke for fuzzy matching:

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

Steg 4: Log og gjennomgang Resultater

  • Eksport mistenkte kamper for menneskelig eller akademisk / juridisk gjennomgang

Steg 5: Komplett eksempel

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

Bruker tilfeller og applikasjoner

Akademisk integritet og plagiarismdeteksjon

Skjer studentopptak for kopiert innhold mot arkiverte kilder.

Juridisk og kontraktsoversikt

Detekter gjenbruk eller kopiering av kontraktsspråk i juridisk skannede dokumenter.

Innholdsutgivelse og media

Identifiser duplikasjon eller uautorisert gjenbruk av tekst i kreative bransjer.

Vanlige utfordringer og løsninger

Utfordring 1: OCR-oppdagelsesfeil

Løsning: Bruk høykvalitets skanninger og tune likhetsbegrensninger.

Utfordring 2: Store arkiver

Løsning: Pre-index eller batch prosess, parallelliser hvis det er nødvendig.

Utfordring 3: Språk eller formatering variasjoner

Løsning: Normalisere tekst (lowercase, fjerne stopwords), prosess per språk sett.

Performance vurderinger

  • Tekstlignende beregninger er beregningsintensiv for store sett – batch og tidsplan
  • Registrer alle resultatene for gjennomgang og revision

Beste praksis

  • Validering av flagget resultat med manuell eller kommisjonsrevisjon
  • Tune likhetsgrenser for nøyaktighet vs. falske positive
  • Arkiver alle logger for overholdelse og revisjon
  • Bruk strukturert tekststandardisering

Avanserte scenarier

Scenario 1: Visualisere lignende resultater

Lag diagrammer eller grafer fra CSV ved hjelp av Excel eller BI-verktøy.

Scenario 2: API Integration for Real-Time Submission Screening

Skjenne bilder ved oppgradering og gi umiddelbar likhet tilbakemelding.

Conclusion

Aspose.OCR Image Text Finder for .NET gjør det mulig å skala, automatisk oppdage lignende eller plagiariserte innhold i bilder – viktig for akademiske, juridiske og publiserende arbeidsflyter.

See Aspose.OCR for .NET API Referanse For mer avansert sammenligning og søk APIs.

 Norsk