Kaip aptikti tekstų panašumą ir plagiarizmą nuotraukose

Kaip aptikti tekstų panašumą ir plagiarizmą nuotraukose

Panašių ar plagiarizuotų tekstų aptikimas skenuojamuose vaizduose yra svarbus akademiniam vientisumui, turinio peržiūrai ir teisinei apsaugai. „Aspose.OCR Image Text Finder for .NET“ leidžia atpažinti panašumų turinį archyvuose ar dokumentų rinkiniais.

Realaus pasaulio problemos

Manualinis dubliuojamo ar kopijuoto teksto aptikimas skenuojamuose vaizduose yra neveiksmingas ir klaidų priežastis. Automatinis OCR vadinamas palyginimas leidžia skalauti ir pakartoti akademinius, verslo ar teisinius poreikius.

Sprendimo apžvalga

Iš kiekvieno paveikslėlio ištraukite tekstą ir palyginkite jį su korpusu ar tiksliniu nustatymu dėl didelio panašumo. vėliava ir ataskaita įtariami rungtynės peržiūrėti ar sekti.

Prerequisites

  • „Visual Studio 2019“ arba vėliau
  • .NET 6.0 arba naujesnė (arba .Net Framework 4.6.2+)
  • ASPOSE.OCR už .NET iš NuGet
PM> Install-Package Aspose.OCR

Žingsnis po žingsnio įgyvendinimas

1 žingsnis: paruoškite savo nuotraukų rinkinį

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

2 žingsnis: Išimkite tekstą iš nuotraukų

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 žingsnis: palyginti panašumą arba duplikavimą

Naudokite paprastą teksto panašumo funkciją (pavyzdžiui, Levenshtein atstumas, Jaccard indeksas) arba .NET paketą, kad būtų galima suderinti:

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 žingsnis: įrašyti ir peržiūrėti rezultatus

  • Eksportuoti įtariamus rungtynes žmogiškam ar akademiniam / teisinės peržiūros tikslais

5 žingsnis: pilnas pavyzdys

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

Naudokite atvejus ir paraiškas

Akademinis vientisumas ir plagiarizmo aptikimas

Vaizduokite studentų pateikimus kopijuotam turiniui prieš archyvuotus šaltinius.

Teisės ir sutarties apžvalga

Atkreipkite dėmesį į pakartotinį sutarties kalbos naudojimą arba kopiją teisėtai skenuojamuose dokumente.

Turinio leidimas ir žiniasklaida

Identifikuoti teksto duplikavimą ar neteisėtą pakartotinį naudojimą kūrybinėse pramonės šakose.

Bendrieji iššūkiai ir sprendimai

1 iššūkis: OCR atpažinimo klaidos

Išsprendimas: Naudokite aukštos kokybės skenavimus ir tonų panašumo ribas.

Iššūkis 2: didelis archyvų rinkinys

Išsprendimas: Pre-index arba batch procesas, jei reikia, palyginti.

3 iššūkis: kalbos arba formatuojamų variantų

Išsprendimas: Normalizuokite tekstą (aukštasis atvejis, pašalinkite sustojimo žodžius), tvarkykite pagal kalbą.

Veiksmingumo apžvalgos

  • Teksto panašumo apskaičiavimai yra skaičiavimo intensyvumas dideliems rinkinys - rungtynės ir tvarkaraštis
  • Įrašykite visus rezultatus peržiūros ir audito tikslais

Geriausios praktikos

  • Įvertinti pažymėtus rezultatus su rankiniu arba komiteto peržiūra
  • Panašumo ribos tikslumui prieš klaidingus teigiamus
  • Archyvoti visus įrašus dėl atitikties ir audito
  • Naudokite struktūrizuotą teksto normalizavimą

Išplėstiniai scenarijai

1 scenarijus: vaizduoti panašumo rezultatus

Sukurkite diagramas ar grafikus iš CSV naudojant „Excel“ arba BI įrankius.

2 scenarijus: API integracija realiuoju laiku pateikimo skenavimui

Atsisiųskite vaizdus ir pateikite akimirksnią panašumo atsiliepimą.

Conclusion

„Aspose.OCR Image Text Finder for .NET“ suteikia galimybę sklandžiai, automatiškai aptikti panašų ar plagiarizuotą turinį nuotraukose – esminį akademiniams, teisiniams ir leidybos darbo srautams.

See ASPOSE.OCR už .NET API nuorodą Išplėstinis palyginimas ir paieškos APIs.

 Lietuvių