Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Porovnávací vyhledávání shodných PDF souborů

Hezký den,
řeším porovnávací vyhledávání shodných PDF souborů a prosím o rady, hlavně zkušené praktiky.
Výchozí stav - řádově desítky tisíc PDF souborů v tisících složkách
Cíl - automatizovaně vyhledat a ručně odstranit duplicitní soubory podle pravidel:
1) soubory shodných názvů + shodných velikostí,
2) soubory shodných názvů + různých velikostí,
3) soubory různých názvů + různých velikostí - ALE SHODNÉHO TEXTOVÉHO OBSAHU,
4) soubory různých názvů + různých velikostí - ALE SHODNÉHO GRAFICKÉHO OBSAHU.
Po jakých programech sahnout? Vzhledem k objemu dat je nutné zpracování pokud možno co nejvíce zautomatizovatelné.
Body add 3 + 4 jsou dost tvrdým oříškem.

Snad tuto výzvu někdo přijme ... Díky předem za případnou spolupráci a pomoc! :beer:

Předmět Autor Datum
je to prosté - nakoupíš si indické klikače. Pokud sis myslel, že tvé požadavky splní nějaký softwar…
touchwood 16.04.2017 10:21
touchwood
Srovnávat MD5 hash z obsahu PDF? Tam staří jediný byte jiný a máš úplně rozdílné hashe.
Jan Fiala 16.04.2017 10:26
Jan Fiala
no právě - ale aspoň najdeš reálné duplicity, pokud existují.
touchwood 16.04.2017 13:10
touchwood
Ano máš pravdu, body 3 a 4 jsou oříšek, na který budeš muset pořídit nějaké sofistikované řešení, kt…
Jan Fiala 16.04.2017 10:25
Jan Fiala
Děkuji za velmi přínosný analytický pohled programátora. Placené SW řešení není problém, nikoli však…
PDF Comparison 16.04.2017 11:34
PDF Comparison
Pardon - Oprava - Jakákoli modifikace zkomplikuje nebo zabrání porování s jinými výchozími daty ...
PDF Comparison 16.04.2017 11:37
PDF Comparison
jen pro tvou informaci: add = anglické slovo s významem "přidat, přičíst" ad = latinské slovo s výz…
touchwood 16.04.2017 13:18
touchwood
Díky za nápravu češtin a latin. Asi jsem tenkrát chyběl... To co píšeš mi je jasné, ale nic z toho c…
PDF Comparison 16.04.2017 15:09
PDF Comparison
Asi to stále nechápeš. Stejně nakonec budeš muset vše udělat ručně (vyjma vyhození bitově identickýc…
touchwood 16.04.2017 16:07
touchwood
PDF může vznikat různými cestami. Může mít přímo vložené fonty, může mít odkaz na externí fonty a mů…
Jan Fiala 16.04.2017 18:59
Jan Fiala
Moc děkuji za věnovaný čas a vysvětlení. Prakticky jsem ověřil, že PDF soubory obsahující naprosto…
PDF Comparison 16.04.2017 19:33
PDF Comparison
Pokud jsou tam stejné obrázky, pak by bylo ideální, kdyby nějaký soft byl schopný extrahovat obrázky… poslední
Jan Fiala 16.04.2017 21:32
Jan Fiala
Na to treba fuzzy riesenie a nastavit si treshold napr na 95% apod. Nasledne rucne skontrolovat najd…
MM.. 16.04.2017 13:28
MM..
Prosím tě, tvůj administrátor mě tu školí z latiny, já si tu opravuju své hrubky a ty na mě mluvíš a…
PDF Comparison 16.04.2017 15:17
PDF Comparison
Slovo fuzzy sa nepreklada, to sa tak vola aj v CR/SR. SW-vyvojar bude vediet co to je. Tym "bych" sa…
MM.. 16.04.2017 19:51
MM..
Úplně všechno neřeší (hlavně ne body 3 a 4), ale něco ano. Je i v češtině a při nekomerčním využití…
FeRi22 16.04.2017 15:46
FeRi22
Díky! Čekal jsem, kdy někomu dojde, že na první dva body by měl stačit program s dobrým algoritmem p…
PDF Comparison 16.04.2017 18:13
PDF Comparison

Ano máš pravdu, body 3 a 4 jsou oříšek, na který budeš muset pořídit nějaké sofistikované řešení, které zřejmě zdarma nebude.
Textova PDF:
1. budeš muset z PDF dostat text a ten někam uložit - zde se nabízí databáze, kde uložíš cestu a jméno souboru (+ další atributy) a textový obsah
2. budeš muset použít nějaký nástroj na porovnávání textu a zjistit duplicity, případně doladit, jak velký rozdíl už znamená rozdílné soubory. Vzhledem k různému způsobu zpracování a ukládání obsahu PDF to bude problém. Jednou to může být text, podruhé je diakritika dokreslována graficky atd. Takže výsledkem budou skupiny souborů, které bude muset někdo projít a určit, zda se jedná o shodné nebo ne a vybrat nejlepší verzi.
Bude to znamenat spoustu ruční práce

Grafická PDF:
Nějakým nástrojem budeš muset provést hromadně OCR.
Vzhledem k tomu, že různá grafická kvalita bude produkovat různé OCR výsledky, ve výsledku to bude ještě víc ruční práce než v předchozím bodě.
Tohle už je práce pro profesionální software, např. ABBYY Fine Reader server, kterým to proženeš a který do PDF přidá textovou vrstvu. Pak můžeš postupovat jako v předchozím bodě u textových PDF.

Děkuji za velmi přínosný analytický pohled programátora.
Placené SW řešení není problém, nikoli však programované na zakázku, to by se finančně nevyplatilo, protože se jedná o jednorázovou akci.
ABBYY SW vedu v patrnosti.

Prosím o vysvětlení, cituji: "diakritika dokreslována graficky". Není mi to jasné.

Dovolím si trochu diskusně oponovat a ještě prosím o reakce a případné dovysvětlení v kontexttu toho co níže doplňuji.

Add grafické PDF - Pochopeno správně, jedná se opravdu o skeny papírových dokumentů, takže ve výsledku se jedná o obrázek uvnitř PDF.
OCR řešení je nyní nežádoucí, vím o co jde, různé OCR SW znám, jsem praktik. Za nutné vidím analyzovat zdrojová PDF tak, jak jsou nyní a nemodifikovat je. Jakákoli modifikace zkomplikuje nebo zabrání porování s jinými výchozímy daty, tím spíš, že přibudou další kvanta dat a to už lidský mozek po pár takových procesech může vzdát. Proto je nejprve nutné porovnávat a odstranit duplicity v souladu s body 1 a 2.

Add textové PDF - Nemyslím si, že by bylo nutné u textových PDF text exportovat externě (zníměna databáze) a dále s ním pracovat. Jistou naději dává principielní funkčnost programu DiffPDF. Je to pro mě nový SW a neznám ho. Pravděpodobně nedává šanci na zautoatizované zpracování více souborů a pracuje pouze se dvěmi PDF. Přesto je světlem na konci tunelu ...
Viz
diffpdf.html
diffpdf-foss.html
http://1.bp.blogspot.com/_YBnmJTR73Is/TN2R0ndLaMI/ AAAAAAAAAIA/knMcDdgb6BE/s1600/Schermata-DiffPDF-2. png

jen pro tvou informaci:

add = anglické slovo s významem "přidat, přičíst"
ad = latinské slovo s významem "k (věci), co se týká (věci)" (má ještě další významy)

(propříště, až zase budeš chtít použít cizí termity, tak abys znal i jejich význam ]:))

A co se týká tvého problému: rád bych tě upozornil, že 2x nasnímaná totožná stránka na scanneru nebude nikdy stejná, totéž platí i pro OCR - zde se vyskytují chyby rozpoznání, přidané mezery, jinak pochopené formátování textu.

DiffPDF je nesmysl, který můžeš provést v libovolném textovém editoru - sice ne tak komfortně, ale víceméně s podobným výsledkem.

Asi to stále nechápeš. Stejně nakonec budeš muset vše udělat ručně (vyjma vyhození bitově identických duplikátů - což jsem ti už psal). Nic automatického neexistuje a existovat nebude, protože úloha má příliš mnoho stupňů volnosti. To je termín z automatizace (vědní obor).

No a to je vše, více s tím nemám v úmyslu ztrácet čas, protože i kdybys nakrásně použil fuzzy apod., tak skončíš s určitou mírou nejistoty, žes buď zahodil něco unikátního, nebo naopak s duplikáty. A jak správně píše MM, dostat se do takové situace svědčí o tom, že někdo při vytváření dokumentového skladu nemyslel, nebo si zjednodušil práci.

PDF může vznikat různými cestami. Může mít přímo vložené fonty, může mít odkaz na externí fonty a může obsahovat pouze základní fonty a diakritiku mít třeba dokreslenou graficky. Záleží to na programu, ve kterém dané PDF vznikne.

Ad grafická PDF - pokud jsou shodná, poznáš to přes srovnání velikosti, názvu, případně můžeš použít hashe, pokud chceš poznat bitově shodné dokumenty. Ale nepoznáš to už v případě, že soubor byl trochu modifikován, vytvořen 2x ze stejných obrázků různými programy apod. Obrázky jspoou do PDF vloženy jako objekty a na stránce je odkaz, kam se objekt vykreslí. Při vytváření PDF dojde k "optimalizaci" obrázků - převodu do jiného formátu, kompresi JPG atd. A na nastavení záleží jak obrázek dopadne. Pokud chceš srovnávat obsah obrázků, talk na to potřebuješ nějakou umělou inteligenci - viz google a hledání podobných obrázků. Proto se mi zdá hromadné OCR jako rozumnější přístup a bude to do budoucna využitelné i při zaindexování a fulltext hledání dokumentu

Ad textová PDF - budeš potřebovat srovnat texty a najít texty s určitou shodou obsahu. Jak velkou toleranci si pak nastavíš, bude na tobě. Na tohle programy typu DIFF PDF nepomohou. Mohl bys třeba spočítat četnost slov v dokumentech a pak jen srovnat četnosti - tím by ses poměrně jednoduše a rychle dostal ke shodnému obsahu s tím, že se velmi jednoduše dají měnit hranice. Tohle může být případ třeba různých verzí dokumentů, které projdou několika korekcemi a přitom se budou lišit na několika místech.

Moc děkuji za věnovaný čas a vysvětlení.

Prakticky jsem ověřil, že PDF soubory obsahující naprosto stejný obrázek, vygenerované stejným programem, mají rozdílnou velikost a časové razítko jen kvůli tomu, že jsem změnil editovatelné informace ve vlastnostech jednoho PDF (např. zdrojová aplikace, producent PDF - může být třeba multifunkční Canon zařízení, tedy nejenom producentem nějaký program, datum vytvoření PDF, datum editační změny PDF).
Z toho logicky dovozuji, že nejlepší bude z těch grafických PDF (skeny A4, A3) vyexportovat bezztrátový TIFF. Získané TIFF soubory pak v nějakém schopném SW porovnat a vyřadit grafické duplicity. Následně ze zůstatkových TIFF vygenerovat nová PDF.
Přijde mi to paradoxně jednodušší řešení pro grafická PDF než pro textová PDF. Uvažuji správně? Tohle je při nejhorším řešitelné nákupem SW licencí v řádu desítek USD.
Dalším cílem je otestovat programy které umí vyhledat duplicitní grafické soubory.
Prosba na ostatní - máte nějaké osvědčené tipy na "porovnávače obrázků?"

Dávkové porovnání textových PDF s cílem vyhledání duplicit, zohledňující datumovky, to je oříšek...

Pokud jsou tam stejné obrázky, pak by bylo ideální, kdyby nějaký soft byl schopný extrahovat obrázky z PDF a ty by se pak následně porovnaly. Zde jsou nějaké odkazy (ten freeware tam uvedený by to měl umět i dávkově):
http://www.makeuseof.com/tag/extract-images-pdf-fi les-save-windows/

Třeba by bylo cestou odstranit nejprve všechny poznámky z PDF a až pak porovnávat. Zde jsem našel nějaké náznaky na dávkové ostranění poznámek:
https://superuser.com/questions/221711/batch-remov e-comments-from-pdf-files

Na to treba fuzzy riesenie a nastavit si treshold napr na 95% apod. Nasledne rucne skontrolovat najdene veci.
Neni normalne sa do takej situacie vobec dostat, mne osobne sa zastavuje rozum ked nejaky pridrbany manager namiesto aby napisal text do emailu da do emailu pdf v ktorom bol text.
Neviem o hotovych rieseniach (ani som ich nikdy nehladal), ja by som si to asi naprogramoval ak by sa mi podarilo zohnat nastroje na dekodovanie obsahu (tusim na to boli kedysi pred 20 rokmi ghostview ci ghostscript). Ale je to hodne komplikovane.

Prosím tě, tvůj administrátor mě tu školí z latiny, já si tu opravuju své hrubky a ty na mě mluvíš anglicky bez špetky vysvětlení významu cizích slov česky.
Cokoliv v tomto duchu programovat je nesmysl. Nutností je sahnout po hotovém řešení, ať to stojí cokoli.
Koukám, že nejenom my Češi, ale i Slováci vymřou na "bych syndrom". Vážím si lidí, kteří nebychují, ale mají prokazatelné výsledky ve vlastní praxi. Od takových se chci učit!
Manažeři státního podniku Česká pošta píšou e-maily tak, že text sdělení napíšou do PDF a vloží ho přílohou. Naštěstí je to fulltext PDF. Případné PDF restrikce jsou snadno odstranitelné.

Slovo fuzzy sa nepreklada, to sa tak vola aj v CR/SR. SW-vyvojar bude vediet co to je.
Tym "bych" sa mysli to ze to je asi najnormalnejsie riesenie, nemyslim si ze existuje ine.
Skus si popozreat ten ghostscript ze ci sa tym nedaju vytahat texty z pdfiek automatizovane z kommandlajny, ja som to uz 20rokov nevidel neviem.
Ze su aj v ceskej poste imbecili moze byt, ja sa nehadam, imbecili su vsade.

P.S. neni najlepsie riesenie nechat tie pdf tak jak su, aj s duplicitami? Duplicity nicomu predsa nevadia.
... a ano na body 1 a 2 existuju hotove SW, o tom sa vobec nebavim to som myslel ze uz mas davno urobene.

Díky! Čekal jsem, kdy někomu dojde, že na první dva body by měl stačit program s dobrým algoritmem porovnávání a možnostmi variabilně nastavit vstupní parametry. Otestoval jsem ho na cca 100 000 souborech a šlo to při celkové velikosti cca 30 GB za 20 minut.
Určitě uvítám od dalších lidí tipy na podobné programy a rád je vyzkouším.

Zpět do poradny Odpovědět na původní otázku Nahoru