Lemmont / Safe-PDF-Redaction-Tool

'A safe PDF redaction tool' Thesis project in which I aim to create a tool which leaves no traces of the redacted text and keeps the other text intact.
0 stars 0 forks source link

update 1-12 #9

Open Lemmont opened 11 months ago

Lemmont commented 11 months ago

Hoi @maartenmarx ! Hierbij de wekelijkse update en tevens een extra reflectie over de planning en de haalbaarheid.

Prestaties

Deze week was een interessante week. Ik ben aan de slag gegaan met het afhandelen van meerdere soorten PDF documenten. Ik heb een aantal documenten zelf gemaakt en een aantal van internet gehaald om daar vervolgens mee mijn tool te testen. Al snel bleek dat er veel ontbrak qua ondersteuning. Eenmaal bezig realiseerde ik mij dat het heel lastig werd om alles te ondersteunen; voornamelijk het verwijderen van tekst bleek lastig te worden omdat woorden niet per se los van elkaar stonden in de PDF opmaak, maar soms samen in 1 tekst-render-operatie stonden.

Gegeven de beperkte tijd en schaal van dit project moest ik iets anders verzinnen. Woensdag zat ik er echt doorheen en wist ik niet wat voor oplossing ik moest bedenken: "hoe kan ik tekst verwijderen en witte ruimte opvullen?" ging er in mijn hoofd rond. PyMuPdf ondersteund geen manier om tekst van positie te laten veranderen en dus leek dat mij niet de oplossing.

Donderdag ging ik aan de slag en vond ik per toeval al snel een goede oplossing. PyMuPdf heeft een goed werkende weglakker die tekst in een gegeven bounding box zo weglakt en niks achterlaat! Dit heb ik vervolgens gecombineerd met de methode om tekst in te voegen en mijn eigen methode om tekst te verplaatsen.

Het resultaat is een werkende tool. Echter moet er nog flink getest mee worden: de verplaatsing van tekst na een redactie nog niet altijd helemaal goed. Daarnaast ondersteund het nog niet helemaal meerdere weggelakte stukken tekst op meerdere plekken in een document, maar dit is redelijk simpel te implementeren. Tenslotte moet er nog rondgespeeld worden met andere aspecten van veiligheid, het bepalen van de nieuwe semantisch-relevante-tekst en een simpele manier om aan te geven wat men wilt weglakken.

Voorbeeld

Een voorbeeld van weglakken in een PDF waar gebruik wordt gemaakt van makkelijke tekst-render methodes. In dit document zijn woorden gescheiden van elkaar:

  1. We markeren eerst twee stukjes tekst. Dit is het resultaat.
  2. Vervolgens voegen we een placeholder tekst "x" toe. Voor nu alleen op het eerste woord dat is weggelakt Dit is het resultaat . Zoals u kunt zien is er nog veel ruimte over op de plekken waar tekst is weggelakt.
  3. We verwijderen de witruimte. Dit is het resultaat.

De tekst is daadwerkelijk weg uit het document en nu staat er een x op de plek. Voor het ook verwijderen we dan ook nog wat witte ruimte en dan hebben we een nieuw document.

Andere prestaties

Ik heb contact opgenomen met Maxwell Bland en ik heb toegang tot zijn tool. Die kan ik zo gebruiken.

Veel geleerd. Ervaring van afgelopen week kan ik goed verwerken in woorden voor materiaal in mijn scriptie.

Ik heb een skelet opgezet voor mijn scriptie document.

Reflectie planning en haalbaarheid

Gegeven de ontwikkelingen van afgelopen weken kan ik zeggen dat ik achterloop. Dit is voornamelijk het gevolg van dingen die meer tijd kosten dan gedacht en gepland.

Het punt waar ik voornamelijk op achterloop is het opzetten van de testmethode. Hoewel ik zelf al bezig ben geweest met testen tijdens het implementeren, heb ik nog geen echte onderzoeksmethode opgezet voor mijn tool. Ik voorzie wel dat een testmethode niet dermate moeilijk zal worden gegeven het feit dat we twee belangrijk aspecten willen testen: alles wat weggelakt is moet ook echt weg zijn en de rest moet blijven zoals het is.

Gegeven de progressie van afgelopen week kan ik echter wel toevertrouwen dat alles nog steeds haalbaar is. Bovendien heb ik al aardig wat geschreven voor mijn scriptie en staat er een skelet klaar om verder uitgewerkt te worden. Ik voorzie dat het documentatie van dit project zeker geen verdere problemen zal opleveren.

In het geval dat ik tijd tekort kom voor de belangrijke zaken (testmethode, veiligheid, semantische invulling) zal ik de implementatie van een interface laten vallen.

Wat heeft niet gewerkt?

90% van mijn vorige methode heb ik de prullenbak in gegooid en vervangen door een nieuwe methode. Handmatig in een PDF duiken en dingen verwijderen is zeker mogelijk, maar gegeven de grote variatie aan PDF documenten en de beperkte tijd van dit project, een onmogelijke taak om succesvol af te ronden.

Bovendien bleek dat dingen efficiënter konden worden geïmplementeerd. 10% van mijn oude methode heb ik daarom herschreven en hergebruikt. Dit gaat om het aanpassen van posities van tekst.

Komende week

Dit moet af:

Dit mag af:

Vragen

  1. Zou u mij kunnen verwijzen naar het bewijs over de "slechtheid" van de NL PDFs (OCR en SCAN). Met een link of document bijv.
  2. Hoe reflecteert u op mijn progressie? Gegeven de tijd die nog in dit project zit (ongeveer iets meer dan een maand) en mijn ambities, acht u mijn plannen realistisch vanuit uw positie en eerdere ervaringen als begeleider?
  3. Zou u kunnen kijken naar het skelet van mijn scriptie? Opmerkingen, tips en suggesties zijn welkom!
  4. Verdere opmerkingen, tips en suggesties zijn altijd welkom!
maartenmarx commented 11 months ago

Hi @Lemmont , dank weer voor je uitgebreide update.

je vragen

  1. https://magazines.od-online.nl/od-28-2023/niet-goed-toegankelijk bijvoorbeeld. Zie ook verder https://wooverheid.nl/publicaties/
  2. Progressie gaat prima joh. Zo'n terugval is normaal, en eigenlijk een teken dat je echt onderzoek aan het doen bent.

het verplaatsen van tekst

  1. Geef heel duidelijk aan waarom je dit wilt.
  2. Ben je er zeker van dat iemand niet , bij aan beide kanten uitgelijnde tekst, precies kan terugrekenen hoeveel er is weggehaald?
  3. Ik dacht eerder om het weggelakte deel een klein beetje random te vergroten of te verkleinen, bijv vermeigvuldigen met iets randoms tussen .8 en 1.2.
  4. Maar nog beter is om een semantische placeholder te plaatsen, dat zou zelfs "onderwater kunnen", omdat dat vooral voor de vorlees-software van belang is.
  5. In ieder geval zou ik dit deel goed overdenken, en allicht laten vallen, want het klinkt alsof je je erg veel moeite op de hals haalt, voor niet direct zichtbaar nut.

scriptie

  1. Het TPDL paper over redactie in de lijst pubicaties die ik hierboven gaf heeft een leuk plaatje met 6 types redactie. Ik kan dat voro je opsnorren.
  2. Ik vind de structuur hee; goed en helder.
  3. Eigenlijk zou je een overzicht van redaction software verwachten in related work. Misschien zelfs op een consumentenbond achtige manier met een aantal eigenschappen in kolommen waarop je dan al die software scoort.
    • Ik hoor over octobox en zylab en nog een wiens naam ik vergeten ben.
    • Als je wilt kan ik proberen je in contact te brengen met mensen die ermee werken. Zal je allicht wel naar den haag moet een keer.
  4. Maak het doel van het PDF hoofdstuk aan het begin al duidelijk. Waarom moeten we dit allemaal lezen en weten? Ik zeg niet dat het wegmoet. Maar het hangt in de lucht.
  5. Ik zou hfd 5 evaluation noemen. Met behulp van experimenten of wat dan ook ga je testen of jouw tool voldoet aan de eisen die je in de intro hebt gesteld. Ik denk dat dat samen kan met hfd 6. In de discussie daarna reflecteer je dan.

bel me anders gerust vanmiddag even als je nog ergens mee zit. Na 14:00 kan dat prima.

groet maarten

Lemmont commented 11 months ago

Hi @maartenmarx, bedankt weer voor de nuttige feedback!

  1. Geef heel duidelijk aan waarom je dit wilt.

Mijn idee hierachter is om de oorspronkelijke breedte van een woord/tekst te verwijderen waardoor men niet weet hoelang het woord was dat er stond. Het vermenigvuldigen met een factor tussen .8 en 1.2 zou dezelfde soort operatie zijn: ik pas het left-lower point van het woord aan van alle woorden na een redactie op basis van deze factor. Bij het compleet weghalen van de witte ruimte doe je eigenlijk hetzelfde, maar dan met de lengte van het weggelakte woord. Dit is in principe niet terug te vinden aangezien het direct op de coördinaten gedaan wordt. Tenslotte schuif je nog een beetje erbij om het nieuwe woord erin te plaatsen. Het zou beide neerkomen op hetzelfde.

Eigenlijk zou je een overzicht van redaction software verwachten in related work. Misschien zelfs op een consumentenbond achtige manier met een aantal eigenschappen in kolommen waarop je dan al die software scoort.

  • Ik hoor over octobox en zylab en nog een wiens naam ik vergeten ben.
  • Als je wilt kan ik proberen je in contact te brengen met mensen die ermee werken. Zal je allicht wel naar den haag moet een keer.

Dat is een goed punt! Is het wellicht ook een idee om dit uit andere papers te plukken? Welke punten zouden in uw ogen belangrijk zijn? Ik neem aan dat ik dan ga kijken naar de mate van goede redactions etc.

4. Maak het doel van het PDF hoofdstuk aan het begin al duidelijk. Waarom moeten we dit allemaal lezen en weten? Ik zeg niet dat het wegmoet. Maar het hangt in de lucht.

Goed punt. Dat kan ik zeker verduidelijken en wellicht ook iets inkorten.

Lemmont commented 11 months ago

image

Inmiddels is het mij dit gelukt. De tekst wordt verwijderd en een stuk tekst wordt ingevoegd. Hierbij is de enige ruimte die overblijft die van de ingevoegde tekst.

maartenmarx commented 11 months ago

te gek joh! Heb je hem door verapdf gehaald? Krijg je er geen fouten bij?

Lemmont commented 11 months ago

image

@maartenmarx Het gaat nog niet helemaal goed maar dit lijkt niet direct het gevolg te zijn van mijn doen. Wellicht dat deze fouten met validatie er al in zaten. Alleen de laatste over font programs kunnen van mij afkomstig zijn.