Kuinka tunnistaa tekstin samankaltaisuus ja plagiarismi kuvissa

Kuinka tunnistaa tekstin samankaltaisuus ja plagiarismi kuvissa

Samankaltaisen tai plagiarisoidun tekstin havaitseminen skannatuissa kuvissa on tärkeää akateemisen eheyden, sisällön tarkastelun ja oikeudellisen suojelun kannalta. Aspose.OCR Image Text Finder for .NET mahdollistaa sisältöjen samankaltaisuuden tunnistamisen arkistoissa tai asiakirjojen kokouksissa.

Reaalimaailman ongelma

Skannattujen kuvien kaksinkertaisen tai kopioidun tekstin manuaalinen havaitseminen on tehottomaa ja virheellistä. Automaattinen OCR-ohjattu vertailu mahdollistaa mittakaavan ja toistettavuuden akateemisille, liiketoiminnallisille tai oikeudellisille tarpeille.

Ratkaisun yleiskatsaus

Poista teksti kunkin kuvan ja vertaile sitä korpus tai kohderyhmä korkean samankaltaisuuden. lippu ja raportointi epäilyttävät ottelut tarkastelua tai seurantaa.

edellytykset

  • Visual Studio 2019 tai uudempi
  • .NET 6.0 tai uudempi (tai .Net Framework 4.6.2+)
  • ASPOSE.OCR for .NET alkaen NuGet
PM> Install-Package Aspose.OCR

Vaiheittainen toteutus

Vaihe 1: Valmista kuvan kokoelmasi

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

Vaihe 2: Poista teksti kuvista

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

Vaihe 3: Vertaa samankaltaisuutta tai kopiointia

Käytä yksinkertaista tekstin samankaltaisuuden toimintoa (esim. Levenshteinin etäisyys, Jaccard-indeksi) tai .NET-pakettia 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;
}

Vaihe 4: Rekisteröinti ja tarkastelu tulokset

  • Tuonti epäiltyjä otteluita ihmisen tai akateemisen / oikeudellisen tarkastelun

Vaihe 5: Täydellinen esimerkki

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

Käytä tapauksia ja sovelluksia

Akateeminen koskemattomuus ja plagiarismin havaitseminen

Näytä opiskelijan esitykset kopioitua sisältöä vastaan arkistoituja lähteitä.

Lain ja sopimuksen tarkastelu

Tunnista sopimuskielen uudelleenkäyttö tai kopiointi laillisesti skannattuihin dokumenteihin.

Sisällön julkaiseminen ja media

Tunnistaa tekstin kopiointi tai luvattoman uudelleenkäytön luovaan teollisuuteen.

Yhteiset haasteet ja ratkaisut

Haaste 1: OCR:n tunnistamisvirheet

** Ratkaisu:** Käytä korkealaatuisia skannereita ja tunnen samankaltaisuusrajoja.

Haaste 2: Suuret arkistot

** Ratkaisu:** Pre-index tai batch prosessi, rinnakkain tarvittaessa.

Haaste 3: Kielen tai muotoilun vaihtelut

** Ratkaisu:** Normalisoida teksti (lowercase, poistaa pysähdys sanoja), prosessi kielen mukaan.

suorituskyvyn huomioon ottaminen

  • Tekstin samankaltaisuuden laskelmat ovat laskennallisesti intensiivisiä suurille kokouksille – taistelu ja aikataulu
  • Rekisteröi kaikki tulokset tarkastukseen ja auditointiin

Parhaat käytännöt

  • Validoi merkittyjä tuloksia manuaalisella tai komitean tarkistuksella
  • Samankaltaisuuden kynnysarvot tarkkuuden vs. väärien positiivisten
  • arkistoi kaikki arkistot vaatimustenmukaisuuden ja tarkastuksen osalta
  • Käytä rakenteellista tekstien normalisointia

Edistyneet skenaariot

Käsikirja 1: Näytä samankaltaisuus tulokset

Luo kaavioita tai grafiikoita CSV: stä käyttämällä Excel- tai BI-työkaluja.

Skenaario 2: API: n integrointi reaaliaikaiseen lähetyksen tarkistamiseen

Näytä kuvan lataamisen jälkeen ja tarjoa välitön samankaltaisuuden palautetta.

johtopäätöksiä

Aspose.OCR Image Text Finder for .NET mahdollistaa samankaltaisen tai plagiarisoidun sisällön asteittaisen ja automaattisen havaitsemisen kuvissa, jotka ovat välttämättömiä akateemisten, oikeudellisten ja julkaisutoimintojen kannalta.

See ASPOSE.OCR .NET API-referenssille Edistyksellisempi vertailua ja hakua APIs.

 Suomi