Kaip aptikti tekstų panašumą ir plagiarizmą nuotraukose
Panašių ar plagiarizuotų tekstų aptikimas skenuojamuose vaizduose yra svarbus akademiniam vientisumui, turinio peržiūrai ir teisinei apsaugai. „Aspose.OCR Image Text Finder for .NET“ leidžia atpažinti panašumų turinį archyvuose ar dokumentų rinkiniais.
Realaus pasaulio problemos
Manualinis dubliuojamo ar kopijuoto teksto aptikimas skenuojamuose vaizduose yra neveiksmingas ir klaidų priežastis. Automatinis OCR vadinamas palyginimas leidžia skalauti ir pakartoti akademinius, verslo ar teisinius poreikius.
Sprendimo apžvalga
Iš kiekvieno paveikslėlio ištraukite tekstą ir palyginkite jį su korpusu ar tiksliniu nustatymu dėl didelio panašumo. vėliava ir ataskaita įtariami rungtynės peržiūrėti ar sekti.
Prerequisites
- „Visual Studio 2019“ arba vėliau
- .NET 6.0 arba naujesnė (arba .Net Framework 4.6.2+)
- ASPOSE.OCR už .NET iš NuGet
PM> Install-Package Aspose.OCR
Žingsnis po žingsnio įgyvendinimas
1 žingsnis: paruoškite savo nuotraukų rinkinį
string[] archiveFiles = Directory.GetFiles("./archive", "*.png");
string[] submissionFiles = Directory.GetFiles("./submissions", "*.png");
2 žingsnis: Išimkite tekstą iš nuotraukų
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 žingsnis: palyginti panašumą arba duplikavimą
Naudokite paprastą teksto panašumo funkciją (pavyzdžiui, Levenshtein atstumas, Jaccard indeksas) arba .NET paketą, kad būtų galima suderinti:
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 žingsnis: įrašyti ir peržiūrėti rezultatus
- Eksportuoti įtariamus rungtynes žmogiškam ar akademiniam / teisinės peržiūros tikslais
5 žingsnis: pilnas pavyzdys
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;
}
}
Naudokite atvejus ir paraiškas
Akademinis vientisumas ir plagiarizmo aptikimas
Vaizduokite studentų pateikimus kopijuotam turiniui prieš archyvuotus šaltinius.
Teisės ir sutarties apžvalga
Atkreipkite dėmesį į pakartotinį sutarties kalbos naudojimą arba kopiją teisėtai skenuojamuose dokumente.
Turinio leidimas ir žiniasklaida
Identifikuoti teksto duplikavimą ar neteisėtą pakartotinį naudojimą kūrybinėse pramonės šakose.
Bendrieji iššūkiai ir sprendimai
1 iššūkis: OCR atpažinimo klaidos
Išsprendimas: Naudokite aukštos kokybės skenavimus ir tonų panašumo ribas.
Iššūkis 2: didelis archyvų rinkinys
Išsprendimas: Pre-index arba batch procesas, jei reikia, palyginti.
3 iššūkis: kalbos arba formatuojamų variantų
Išsprendimas: Normalizuokite tekstą (aukštasis atvejis, pašalinkite sustojimo žodžius), tvarkykite pagal kalbą.
Veiksmingumo apžvalgos
- Teksto panašumo apskaičiavimai yra skaičiavimo intensyvumas dideliems rinkinys - rungtynės ir tvarkaraštis
- Įrašykite visus rezultatus peržiūros ir audito tikslais
Geriausios praktikos
- Įvertinti pažymėtus rezultatus su rankiniu arba komiteto peržiūra
- Panašumo ribos tikslumui prieš klaidingus teigiamus
- Archyvoti visus įrašus dėl atitikties ir audito
- Naudokite struktūrizuotą teksto normalizavimą
Išplėstiniai scenarijai
1 scenarijus: vaizduoti panašumo rezultatus
Sukurkite diagramas ar grafikus iš CSV naudojant „Excel“ arba BI įrankius.
2 scenarijus: API integracija realiuoju laiku pateikimo skenavimui
Atsisiųskite vaizdus ir pateikite akimirksnią panašumo atsiliepimą.
Conclusion
„Aspose.OCR Image Text Finder for .NET“ suteikia galimybę sklandžiai, automatiškai aptikti panašų ar plagiarizuotą turinį nuotraukose – esminį akademiniams, teisiniams ir leidybos darbo srautams.
See ASPOSE.OCR už .NET API nuorodą Išplėstinis palyginimas ir paieškos APIs.