IDP is not a really sexy market. There are only a few people, who are working in the industry.
I do this in my free time to give small vendors a chance, as big corporates like Rossum, Abbyy, or Kofax (now Tungsten) just rule the market by their ads spent.
I can also make it closed source and ask for a fee to get listed as Gartner would do it in their IDP Magic Quadrant.
tl;dr: years ago, Tesseract was the go to tool to extract text. Nowadays, vLLMs can not only extract the text and the layout but also context and provide structured data or even interpret or map data across documents. Prices dropped significantly, while extraction, classification and modification capabilities increased.
The intelligent document processing (a funny marketing term on top of OCR) market moves from "Can software extract the text", which is normally measured by benchmarks, to can software autonomously run "a" specific company process.
the fallback is called human in the loop, hallucination (LSTM vs. vLLM), prompt engineering.
proof me wrong: the hardest challenge is no longer the OCR accuracy but the integration and issue handling in production. Probably "an agentic team can handle this" ^^
ahahah, probably not. Looking at my own handwriting: Neither in writing nor in reading.
I find it interesting how the prompt changes the result.
If you let the model focus on the text, the open source got so good in the last year. That's remarkable. When you change to prompt to not only extract the text but also extract specific information, the pure text extraction result gets worse. For me, it worked to run two prompts on the same document to get both in a meaningful accruacy.
Do you know a benchmark that tries to measure the bussines accuracy.
Most benchmarks focus on the charackter level.
IDP Software typically uses metadata to map information that is either not readable or missing in the document, e.g. extracting the VAT and mapping the street, house number, cip and city.
I think there are many models and many providers. However, it's really difficult to measure the accuracy on a porcess not just on a character level.
I saw that the leaderboard is hosted by Nanonets. Totally fine for me. So you might be the expert about Nanonets: Let me know if you want to update your post on my site.
- add lint or errors, otherwise your formatting will break, e.g. LLMs and humans will add text too long or too short and your design system will not be able to handle this.
- it's great for low token input
- validate the layout of the user vs. the components used.
Absolutely. You got the joke, or? This was the main point of the full article. No primary sources. Only unverified aggregates. Strong contrast to what I did normally once per month.
> Variable paragraph lengths
I tried to compare it to the URL you posted. It's quite similar. I would have rather have said. Shorter sentences. Shorter Paragraphs. But let's not fight on this ;)
IMHO LLMs cannot provide statistically confident measures, and they are terrible at pretending to be capable of doing so.
What worked: You use an OCR that provides character/word-level bounding boxes and let the LLM extract from data. Then the LLM is capable of "calculating" a confidence of extracted data.
I think I made it obvious what the article is about: no boasting, not "copying someone else's homework". Which text did you last publish? Can you be more specific? I would be genuinely interested in specific changes you would do if you were the editor.
Speaking about "that the state of the art tools", might be 6 months or 20 years old. Surfaced opinions might rely on software that a company licensed 2 years ago. Sadly, we need to take this enterprise speed of adaptation into account.
I found only a few that correct OCR by using LLM. I think it feels too risky.
Think of an LLM that corrects 898,00 to 888,00. It feels like the David Kriesel Xerox case. Still, it's an interesting way to think of the issue of optical character recognition.
The relevant term is "bounding box", as you probably need the confidence level of a character or word, not just the image. I built such an interface. I think the effort is only worth it if you really have multi-millions of pages.
Pretty balanced take. I think if a human gains information or saves time, it's still worthwhile. Surely, I don't publish those clickbaits. That's AI slop.
RAG provided me no way to read the content myself. I now integrate the knowledge into a static page that I can read and edit myself in Markdown. Similar to MkDocs. But after I edit the content or remove elements that are no longer true, I build a JSON file and tell the agent how to query this source.
python -c "
import json, wire, pathlib
d = json.loads((pathlib.Path(wire.__file__).parent / 'assets/search_index.json').read_text())
[print(e['title'], e['url']) for e in d if 'QUERY' in (e.get('body','') + e.get('title','')).lower()]
"
python -c "
import json, wire, pathlib
d = json.loads((pathlib.Path(wire.__file__).parent / 'assets/search_index.json').read_text())
[print(e['body']) for e in d if e.get('url','') == 'PATH']
"