Како открити сличност текста и плагијаризам у сликама

Како открити сличност текста и плагијаризам у сликама

Откривање сличног или плагираног текста у скенираним сликама је важно за академску интегритет, преглед садржаја и правну заштиту.Аппозе.ОЦР Имиџ Тест Фендер за .НЕТ омогућава бацх откривање садржај сличности кроз архиве или сете докумената.

Реал светски проблем

Ручна детекција дуплираног или копираног текста у скенираним сликама је неефикасна и неисправна.Аутоматски ОЦР-оригирани поређење омогућава скалу и понављајуће за академске, пословне или правне потребе.

Преглед решења

Екстрактирајте текст из сваке слике и упоредите га против тела или циља за високу сличност.

Принципи

  • Visual Studio 2019 или касније
  • .NET 6.0 или новији (или .Net Framework 4.6.2+)
  • Aspose.OCR za .NET od NuGet
PM> Install-Package Aspose.OCR

Корак по корак спровођење

Корак 1: Припремите своје слике

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

Корак 2: Извлачите текст из слика

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: Поређење за сличност или дупликацију

Користите једноставну функцију сличности текста (на пример, Levenshtein удаљеност, Индекс Јацкарда) или .NET пакету за фузијско одговарање:

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: Регистрација и преглед резултата

  • Извоз сумњивих утакмица за људски или академски / правни преглед

Корак 5: Потпуни пример

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

Коришћење случајева и апликација

Академска интегритет и откривање плагијаризма

Скријте студентске презентације за копирани садржај против архивираних извора.

Правни и уговорни преглед

Откривање поновног коришћења или копирања уговорног језика у правно скенираним доковима.

Издавање садржаја и медији

Идентификује дупликацију или неовлашћено поновно коришћење текста у креативним индустријама.

Заједнички изазови и решења

Проблем 1: ОКР препознавање грешака

Решење: Користите висококвалитетне скене и границе сличности тонуса.

Проблем 2: Велики архиви

Решење: Пре-индекс или процес бацх, паралелише се ако је потребно.

Проблем 3: Језик или форматирање варијације

Решење: Нормализујте текст (нижи случај, уклоните речи за заустављање), процес по језичком сету.

Размишљање о перформанси

  • Рачунања сличности текста су компјутерски интензивни за велике сете - бацх и распоред
  • Региструјте све резултате за преглед и ревизију

Најбоља пракса

  • Валидирајте означене резултате ручним или комитетским прегледом
  • Tuni granice sličnosti za preciznost protiv lažnih pozitivnih
  • Архивирајте све записи за поштовање и ревизију
  • Коришћење структуриране текстуалне стандардизације

Напредни сценарио

Сценарио 1: Визуелизација резултата сличности

Креирајте графике или графе из ЦСВ-а користећи алате Екцел или БИ.

Сценарио 2: Интеграција АПИ-а за скенирање подношења у реалном времену

Скријте слике приликом преузимања и пружају тренутну сличност повратне информације.

Закључак

Aspose.OCR Image Text Finder za .NET omogućava skalabilno, automatizovano otkrivanje sličnih ili plagiarizovanih sadržaja u slikama – neophodnih za akademske, pravne i publikacijske tokove rada.

See Aspose.OCR за .NET API референце за напредније поређење и претрагу АПИ-а.

 Српски