Filimoa / open-parse

Improved file parsing for LLM’s
https://filimoa.github.io/open-parse/
MIT License
2.34k stars 89 forks source link

Missing parts of documents #9

Open zby opened 5 months ago

zby commented 5 months ago

I tried to parse: https://www.pzu.pl/_fileserver/item/1540593

import openparse
from pprint import pprint

doc_path = 'data/OWU_szpit.pdf'

parser = openparse.DocumentParser()
parsed_doc = parser.parse(doc_path)

pprint(parsed_doc.model_dump())

The saved output does not contain for example:

PRZEDMIOT UBEZPIECZENIA
– czyli co ubezpieczamy
3. Ubezpieczamy zdrowie ubezpieczonego.
ZAKRES UBEZPIECZENIA
– czyli jakie zdarzenia obejmujemy ochroną

The output has:

                      'y1': 642.85}],
            'text': ' 32)**współmałżonek/partner**– wskazana we wniosku o '
                    'ubezpieczenie osoba, która pozostaje z ubezpieczonym z '
                    'umowy \n'
                    'podstawowej w dniu zawarcia umowy terminowej i tej '
                    'umowy:<br><br> a) w związku małżeńskim – w przypadku '
                    'współmałżonka, \n'
                    ' b) we wspólnym pożyciu – w przypadku '
                    'partnera.<br><br>**2.**Jeżeli te OWU nie stanowią '
                    'inaczej, określenia, które zdefiniowaliśmy w OWU umowy '
                    'podstawowej używamy w tych OWU w takim \n'
                    'samym znaczeniu.',
            'tokens': 166,
            'variant': {'text'}},
           {'bbox': [{'page': 4,
                      'page_height': 841.89,
                      'page_width': 595.276,
                      'x0': 55.98,
                      'x1': 529.83,
                      'y0': 406.04,
                      'y1': 471.61}],
            'text': '**4.**Zakres ubezpieczenia obejmuje wystąpienie w okresie '
                    'naszej ochrony zdarzenia lub zdarzeń wskazanych w tabeli '
                    'w pkt 8.\n'
                    '**5.**Umowę możesz zawrzeć w jednym z czterech wariantów. '
                    'Warianty różnią się zakresem ochrony, czyli rodzajami '
                    'zdarzeń, za które \n'

and the entire fragment is missing.

zby commented 5 months ago

I had similar missing fragments when trying to parse https://data.consilium.europa.eu/doc/document/ST-5662-2024-INIT/en/ - mostly titles. But it is long and takes a lot of time to parse.

Filimoa commented 5 months ago

Currently the library is configured to use some heuristics to try to append a title to a section. If nothing is found it drops it since stubs are undesirable come query time. We may do more experimentation here.

I will look into the failing doc.

lngr commented 3 months ago

See my comment in #40