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.