Cara Mengidentifikasi Serupa dan Plagiarisme dalam Gambar

Cara Mengidentifikasi Serupa dan Plagiarisme dalam Gambar

Mengidentifikasi teks yang mirip atau plagiarized dalam gambar yang dipindai adalah penting untuk integritas akademis, review konten, dan perlindungan hukum. Aspose.OCR Image Text Finder untuk .NET memungkinkan deteksi batch kesamaan konten di seluruh arkib atau set dokumen.

Masalah dunia nyata

Deteksi manual teks duplikat atau salinan dalam gambar yang dipindai tidak efisien dan salah. Perbandingan OCR otomatis memungkinkan skala dan pengulangan untuk kebutuhan akademis, bisnis, atau hukum.

Penyelesaian Overview

Mengekstrak teks dari setiap gambar dan membandingkannya melawan corpus atau target set untuk kesamaan yang tinggi. bendera dan laporan pertandingan yang disyaki untuk review atau follow-up.

Persyaratan

  • Visual Studio 2019 atau lebih baru
  • .NET 6.0 atau lebih baru (atau .Net Framework 4.6.2+)
  • Aspose.OCR untuk .NET dari NuGet
PM> Install-Package Aspose.OCR

Implementasi langkah demi langkah

Langkah 1: Siapkan set gambar Anda

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

Langkah 2: Mengekstrak teks dari gambar

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

Langkah 3: Perbandingan untuk Similitas atau Duplikasi

Gunakan fungsi persamaan teks sederhana (misalnya, jarak Levenshtein, indeks Jaccard) atau paket .NET untuk perbandingan fuzzy:

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

Langkah 4: Log dan ulasan hasil

  • Ekspor pertandingan yang disyaki untuk evaluasi manusia atau akademis / hukum

Langkah 5: Contoh lengkap

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

Menggunakan kasus dan aplikasi

Integritas Akademik dan Deteksi Plagiarisme

Menampilkan presentasi siswa untuk konten terkopi terhadap sumber yang diarkibkan.

Penilaian Hukum dan Kontrak

Mengidentifikasi penggunaan ulang atau salinan bahasa kontrak dalam dokumen yang dipindai secara hukum.

Content Publishing dan Media

Identifikasi duplikasi atau penggunaan ulang teks yang tidak diizinkan di industri kreatif.

Tantangan dan Solusi Umum

Tantangan 1: Kesalahan Pengakuan OCR

** Solusi:** Gunakan pemindaian berkualitas tinggi dan batas kesamaan tun.

Tantangan 2: Arsip Besar

** Solusi:** Pre-index atau proses batch, paralel jika perlu.

Tantangan 3: Variasi Bahasa atau Format

** Solusi:** Normalisasi teks (lowercase, menghapus stopwords), proses per set bahasa.

Pertimbangan kinerja

  • Perhitungan kesamaan teks adalah komputasi-intens untuk set besar—batch dan jadwal
  • Daftar semua hasil untuk review dan audit

Praktik Terbaik

  • Validasi hasil yang ditandai dengan manual atau review komite
  • Tingkatkan batas kesamaan untuk ketepatan vs. positif palsu
  • Arsip semua log untuk pematuhan dan audit
  • Menggunakan normalisasi teks terstruktur

Skenario Lanjutan

Skenario 1: Menampilkan hasil serupa

Buat graf atau graf dari CSV Anda menggunakan alat Excel atau BI.

Skenario 2: Integrasi API untuk pemeriksaan penyerahan dalam waktu nyata

Menampilkan gambar pada saat upload dan memberikan feedback simpati instan.

Kesimpulan

Aspose.OCR Image Text Finder untuk .NET memungkinkan deteksi secara skala, otomatis konten serupa atau plagiarized dalam gambar-gambar yang penting untuk akademik, hukum, dan penerbitan aliran kerja.

See Aspose.OCR untuk .NET API Referensi Untuk perbandingan dan pencarian APIs yang lebih maju.

 Indonesia