Hogyan lehet felismerni a szöveges hasonlóságot és plagiarizmust a képekben
Hasonló vagy plagiált szöveg felismerése a szkennelt képekben fontos az akadémiai integritás, a tartalomvizsgálat és a jogi védelem szempontjából.A Aspose.OCR Image Text Finder for .NET lehetővé teszi a tartalmak hasonlóságának azonosítását archívumok vagy dokumentumkészletek között.
Valódi problémák
A kézi duplikált vagy másolt szöveg felismerése a szkennelt képekben hatástalan és hibás. Az automatikus OCR-vezérelt összehasonlítás lehetővé teszi az akadémiai, üzleti vagy jogi igények skáláját és ismétlődhetőségeit.
megoldás áttekintése
Jelölje ki a szöveget minden képből, és összehasonlítsa azt egy test vagy célállomással a magas hasonlóság érdekében. zászló és jelentés gyanús mérkőzések felülvizsgálat vagy nyomon követés.
előfeltételek
- Visual Studio 2019 vagy újabb
- .NET 6.0 vagy újabb (vagy .Net Framework 4.6.2+)
- ASPOSE.OCR for .NET a NuGet-ről
PM> Install-Package Aspose.OCR
lépésről lépésre megvalósítás
1. lépés: Készítsd el a képeket
string[] archiveFiles = Directory.GetFiles("./archive", "*.png");
string[] submissionFiles = Directory.GetFiles("./submissions", "*.png");
2. lépés: A szöveg kivonása a képekből
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. lépés: hasonlóság vagy duplikáció összehasonlítása
Használjon egyszerű szöveges hasonlóság funkciót (pl. Levenshtein távolság, Jaccard index) vagy .NET csomagot a fuzzy megfeleléshez:
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. lépés: Log és felülvizsgálati eredmények
- Export gyanús mérkőzések emberi vagy tudományos / jogi felülvizsgálat
5. lépés: Teljes példa
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;
}
}
Esetek és alkalmazások használata
Akadémiai integritás és plagiarizmus felderítése
A hallgatói előadások megtekintése másolt tartalmakért az archivált forrásokkal szemben.
Jogi és szerződéses felülvizsgálat
A szerződéses nyelv újrafelhasználása vagy másolása jogilag szkennelt dokumentumokban.
Tartalmak közzététele és média
A szöveg duplikációjának vagy jogosulatlan újrafelhasználásának azonosítása a kreatív iparágakban.
Közös kihívások és megoldások
1. kihívás: az OCR felismerési hibák
** Megoldás:** Használjon kiváló minőségű szkennelést és tonális hasonlósági küszöböt.
2. kihívás: nagy archívumok
** Megoldás:** Pre-index vagy batch folyamat, szükség esetén párhuzamos.
3. kihívás: Nyelv vagy formázási változások
** Megoldás:** Normalizálja a szöveget (alacsony esetek, távolítsa el a szót), folyamat nyelvi beállítás szerint.
A teljesítmény megfontolása
- A szöveg hasonlóságára vonatkozó számítások számítógépes intenzitásúak a nagy készletekhez – csatornák és menetrendek
- Jelölje be az összes eredményt a felülvizsgálathoz és az audithoz
Legjobb gyakorlatok
- Megerősítse az eredményeket kézikönyvvel vagy bizottsági felülvizsgálattal
- Hasonlósági küszöbök a pontosságért vs. hamis pozitívokért
- Összes napló archiválása a megfeleléshez és az audithoz
- Strukturált szöveg normalizálása
fejlett forgatókönyvek
1. forgatókönyv: Hasonló eredmények vizualizálása
Hozzon létre diagramokat vagy grafikonokat a CSV-ből az Excel vagy a BI eszközökkel.
2. forgatókönyv: API integráció valós idejű benyújtási szkenneléshez
Áttekintse a képeket feltöltésekor, és azonnali hasonlóság visszajelzést ad.
következtetések
Az ASPOSE.OCR Image Text Finder for .NET lehetővé teszi a hasonló vagy plagiált tartalom skálázható, automatizált felismerését a képekben – ami alapvető fontosságú az akadémiai, jogi és kiadói munkafolyamatok számára.
See Az ASPOSE.OCR a .NET API referenciájához a fejlett összehasonlítás és keresési APIs.