Как да открием текстово подобрение и плагиаризъм в изображенията

Как да открием текстово подобрение и плагиаризъм в изображенията

Откриването на подобен или плагиращ текст в скенираните изображения е важно за академичната цялост, преглед на съдържанието и правна защита. Aspose.OCR Image Text Finder за .NET позволява да се открие съвкупност от съдържание сходство в архиви или набори от документи.

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

Ръчното откриване на дублиран или копиран текст в скенираните изображения е неефективно и предпазва от грешки.Автоматизираното OCR сравнение позволява мащаб и повтореност за академични, бизнес или правни нужди.

Преглед на решението

Извлечете текст от всяка снимка и го сравнявайте срещу корпус или целева настройка за висока сходност.

Предупреждения

  • Visual Studio 2019 или по-късно
  • .NET 6.0 или по-късно (или .Net Framework 4.6.2+)
  • ASPOSE.OCR за .NET от 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, индекс на Jaccard) или пакет .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: Грешки в признаването на OCR

Решение: Използвайте висококачествени скани и прагове за подобряване на тонуса.

Предизвикателство 2: Големи архиви

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

Предизвикателство 3: Език или форматиране вариации

Решение: Нормализиране на текста (долу, премахване на спирачни думи), обработка на езика набор.

Преглед на изпълнението

  • Изчисленията за сходство с текст са компютърно-интензивни за големи комплекти — мач и график
  • Регистрирайте всички резултати за преглед и одит

Най-добрите практики

  • Валидиране на обозначените резултати с ръчна или комисия преглед
  • Сравнете праговете на сходството за точност vs. фалшиви положителни
  • Архивиране на всички записи за съответствие и одит
  • Използване на структурирана текстуална нормализация

Разширени сценарии

Сценарий 1: Визуализиране на подобни резултати

Създайте диаграми или графики от CSV с помощта на Excel или BI инструменти.

Сценарий 2: Интеграция на API за скрининг на подаване в реално време

Скрийте изображенията по време на изтеглянето и предоставяте незабавна обратна връзка за подобрение.

заключение

Aspose.OCR Image Text Finder за .NET дава възможност за скалиращо, автоматизирано откриване на подобен или плагиращ съдържание в изображенията – съществено за академични, правни и публикационни работни потоци.

See Aspose.OCR за .NET API Референт За по-нататъшно сравнение и търсене на APIs.

 Български