Bagaimana untuk mengesan kesamaan teks dan plagiarisme dalam imej

Bagaimana untuk mengesan kesamaan teks dan plagiarisme dalam imej

Mengesan teks yang serupa atau plagiarized dalam imej yang disemak adalah penting untuk integriti akademik, ulasan kandungan, dan perlindungan undang-undang. Aspose.OCR Image Text Finder untuk .NET membolehkan pengesanan batch kesamaan kandungan di seluruh arkib atau set dokumen.

Masalah dunia sebenar

Pengesanan manual teks duplikat atau salinan dalam imej yang disemak adalah tidak berkesan dan berisiko. perbandingan OCR automatik membolehkan skala dan pengulangan untuk keperluan akademik, perniagaan, atau undang-undang.

Gambaran keseluruhan penyelesaian

Mengekstrak teks daripada setiap imej dan membandingkannya dengan set corpus atau sasaran untuk kesamaan yang tinggi. bendera dan laporan perlawanan yang disyaki untuk ulasan atau pengesanan.

Prerequisites

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

Pelaksanaan langkah demi langkah

Langkah 1: Siapkan set imej anda

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

Langkah 2: Mengekstrak teks daripada imej

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 Similiti atau Duplikasi

Gunakan fungsi kesamaan teks yang mudah (contohnya, jarak Levenshtein, indeks Jaccard) atau pakej .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

  • Eksport perlawanan yang disyaki untuk penilaian manusia atau akademik / undang-undang

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

Penggunaan Kasus dan Permohonan

Integriti Akademik dan Pengesanan Plagiarisme

Menampilkan persembahan pelajar untuk kandungan yang disalin terhadap sumber yang diarkibkan.

Penilaian Undang-undang dan Kontrak

Mengesan penggunaan semula atau salinan bahasa kontrak dalam dokumen yang disemak secara sah.

Penerbitan kandungan dan media

Mengidentifikasi duplikasi atau penggunaan semula teks yang tidak dibenarkan dalam industri kreatif.

Tantangan dan Penyelesaian Bersama

Tantangan 1: Kesilapan pengiktirafan OCR

** Penyelesaian:** Gunakan pemindaian berkualiti tinggi dan sempadan kesamaan tun.

Tantangan 2: Kumpulan Arkib Besar

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

Tantangan 3: Bahasa atau Format Variasi

** Penyelesaian:** Normalisasi teks (lowercase, menghapuskan kata berhenti), proses per set bahasa.

Pertimbangan prestasi

  • Pengiraan kesamaan teks adalah komputer-intens untuk set besar—batch dan jadual
  • Mendaftarkan semua hasil untuk ulasan dan audit

amalan terbaik

  • Mengesahkan hasil yang ditandai dengan manual atau ulasan jawatankuasa
  • Tumpukan had kesamaan untuk ketepatan vs. positif palsu
  • Arkib semua log untuk pematuhan dan audit
  • Menggunakan normalisasi teks terstruktur

Senario lanjutan

Skenario 1: Menampilkan hasil yang serupa

Mencipta carta atau graf daripada CSV anda menggunakan Excel atau alat BI.

Senario 2: Integrasi API untuk pemeriksaan penyerahan dalam masa nyata

Menampilkan imej pada masa muat naik dan memberikan maklum balas kesamaan serta-merta.

Conclusion

Aspose.OCR Image Text Finder untuk .NET membolehkan pengesanan skala, automatik kandungan yang serupa atau plagiarized dalam imej - penting untuk akademik, undang-undang, dan penerbitan aliran kerja.

See Aspose.OCR untuk .NET API Rujukan untuk perbandingan dan carian APIs yang lebih maju.

 Melayu