Làm thế nào để phát hiện tương tự văn bản và Plagiarism trong hình ảnh

Làm thế nào để phát hiện tương tự văn bản và Plagiarism trong hình ảnh

Khám phá văn bản tương tự hoặc phấn khích trong các hình ảnh được quét là quan trọng đối với tính toàn vẹn học thuật, kiểm tra nội dung và bảo vệ pháp lý. Aspose.OCR Image Text Finder for .NET cho phép phát hiện sự giống nhau của Nội dung trên các tập tin lưu trữ hoặc tài liệu.

Vấn đề thế giới thực

Việc phát hiện bằng tay của văn bản lặp hoặc sao chép trong các hình ảnh được quét là không hiệu quả và sai lầm. so sánh tự động OCR cho phép quy mô và tái tạo cho các nhu cầu học thuật, kinh doanh hoặc pháp lý.

Giải pháp Overview

Thu thập văn bản từ mỗi hình ảnh và so sánh nó với một corpus hoặc mục tiêu thiết lập cho tương tự cao. lá cờ và báo cáo nghi ngờ trận đấu để xem xét hoặc theo dõi.

Nguyên tắc

  • Visual Studio 2019 hoặc hơn
  • .NET 6.0 hoặc mới hơn (hoặc .Net Framework 4.6.2+)
  • Aspose.OCR cho .NET từ NuGet
PM> Install-Package Aspose.OCR

Chế độ thực hiện từng bước

Bước 1: Chuẩn bị hình ảnh của bạn

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

Bước 2: Xóa văn bản từ hình ảnh

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

Bước 3: So sánh về Similarity hoặc Duplication

Sử dụng một chức năng tương tự văn bản đơn giản (ví dụ: khoảng cách Levenshtein, chỉ số Jaccard) hoặc một gói .NET để phù hợp với âm thanh:

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

Bước 4: Đăng ký và đánh giá kết quả

  • Xuất khẩu các trận đấu nghi ngờ cho đánh giá con người hoặc học thuật / pháp lý

Bước 5: Một ví dụ đầy đủ

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

Sử dụng trường hợp và ứng dụng

Integrity Academic và phát hiện Plagiarism

Hiển thị bài đăng sinh viên cho nội dung sao chép chống lại các nguồn lưu trữ.

Đánh giá pháp lý và hợp đồng

Phát hiện tái sử dụng hoặc sao chép ngôn ngữ hợp đồng trong các tài liệu được quét hợp pháp.

Content Publishing và Media

Xác định việc lặp lại hoặc tái sử dụng văn bản không được phép trong các ngành công nghiệp sáng tạo.

Những thách thức và giải pháp chung

Thách thức 1: lỗi nhận dạng OCR

** Giải pháp:** Sử dụng quét chất lượng cao và ranh giới tương tự.

Lời bài hát: Challenge 2: Large Archive

** Giải pháp:** Pre-index hoặc process batch, parallelize nếu cần thiết.

Thách thức 3: ngôn ngữ hoặc định dạng biến thể

Các giải pháp: Tiêu chuẩn hóa văn bản (lowercase, loại bỏ stopwords), xử lý theo ngôn ngữ set.

Các tính toán hiệu suất

  • Các tính toán tương tự văn bản là tính năng chuyên sâu cho các bộ lớn - trận đấu và lịch trình
  • Đăng ký tất cả các kết quả để xem xét và kiểm toán

Thực hành tốt nhất

  • Xác nhận kết quả bằng hướng dẫn hoặc đánh giá của Ủy ban
  • Tăng giới hạn tương tự cho độ chính xác vs. tích cực giả
  • Tìm tất cả nội dung bởi compliance and audit
  • Sử dụng cấu trúc văn bản bình thường hóa

kịch bản tiên tiến

Kịch bản 1: Xem kết quả tương tự

Tạo biểu đồ hoặc đồ họa từ CSV của bạn bằng cách sử dụng Excel hoặc công cụ BI.

Kịch bản 2: Integration API for Real-Time Submission Screening

Màn hình khi tải lên và cung cấp phản hồi tương tự ngay lập tức.

Kết luận

Aspose.OCR Image Text Finder cho .NET cho phép phát hiện có thể quy mô, tự động các nội dung tương tự hoặc bị lừa đảo trong hình ảnh – cần thiết cho các dòng công việc học tập, pháp lý và xuất bản.

See Aspose.OCR cho .NET API Reference để so sánh và tìm kiếm APIs tiên tiến hơn.

 Tiếng Việt