이미지에서 텍스트 유사성과 플래그리즘을 감지하는 방법
스캔된 이미지에서 유사한 텍스트를 탐지하는 것은 학문적 무결성, 콘텐츠 검토 및 법적 보호에 중요합니다. Aspose.OCR Image Text Finder for .NET는 아카이브 또는 문서 세트를 통해 콘텐츠 비슷성을 배치 할 수 있습니다.
현실 세계 문제
스캔 된 이미지에서 복제 또는 복사 된 텍스트를 수동으로 탐지하는 것은 효율적이지 않으며 오류가 발생합니다.OCR에 의해 자동화 된 비교는 학문적, 비즈니스 또는 법적 요구에 대 한 규모 및 반복 가능성을 허용 합니다.
솔루션 검토
각 이미지에서 텍스트를 추출하고 높은 유사성을 위해 코르푸스 또는 목표 세트와 비교하십시오.
원칙
- Visual Studio 2019 또는 이후
- .NET 6.0 또는 이후 (또는 .Net Framework 4.6.2+)
- NuGet에서 .NET을 위한 ASPOSE.OCR
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 인덱스) 또는 fuzzy 일치하기 위해 .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 : 유사성 결과를 시각화
Excel 또는 BI 도구를 사용하여 CSV에서 차트 또는 그래픽을 만들 수 있습니다.
시나리오 2 : 실시간 제출 스크린을 위한 API 통합
업로드 할 때 이미지를 스크린하고 즉각적인 유사성 피드백을 제공합니다.
결론
ASPOSE.OCR Image Text Finder for .NET은 학업, 법률 및 출판 작업 흐름에 필수적인 이미지에서 유사한 또는 플래그화 된 콘텐츠를 스케일 가능하고 자동으로 감지할 수 있습니다.
See .NET API 참조를 위한 ASPOSE.OCR 더 진보된 비교 및 APIs 검색을 위해.