Kā atklāt teksta līdzību un plagiarismu attēlos

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.

 Latviski