Dedoc
Dedoc is a library (service) for automate documents parsing and bringing to a uniform format. It automatically extracts content, logical structure, tables, and meta information from textual electronic documents. (Parse document; Document content extraction; Logical structure extraction; PDF parser; Scanned document parser; DOCX parser; HTML parser
Install / Use
/learn @ispras/DedocREADME
Dedoc

Dedoc is an open universal system for converting documents to a unified output format. It extracts a document’s logical structure and content: tables, text formatting and metadata. The document’s content is represented as a tree storing headings and lists of any level. Dedoc can be integrated in a document contents and structure analysis system as a separate module.
Star History
Workflow

Workflow description is given here
Features and advantages
Dedoc is implemented in Python and works with semi-structured data formats (DOC/DOCX, ODT, XLS/XLSX, CSV, TXT, JSON) and unstructured data formats like images (PNG, JPG etc.), archives (ZIP, RAR etc.), PDF and HTML formats. Document structure extraction is fully automatic regardless of input data type. Metadata and text formatting are also extracted automatically.
In 2022, the system won a grant to support the development of promising AI projects from the Innovation Assistance Foundation (Фонд содействия инновациям).
Dedoc provides:
- Extensibility due to flexible addition of new document formats and easy change of an output data format.
- Support for extracting document structure out of nested documents having different formats.
- Extracting various text formatting features (indentation, font type, size, style etc.).
- Working with documents of various origin (statements of work, legal documents, technical reports, scientific papers) allowing flexible tuning for new domains.
- Working with PDF documents containing a textual layer:
- Support to automatically determine the correctness of the textual layer in PDF documents;
- Extract containing and formatting from PDF-documents with a textual layer using the developed interpreter of the virtual stack machine for printing graphics according to the format specification.
- Extracting table data from DOC/DOCX, PDF, HTML, CSV and image formats:
- Recognizing a physical structure and a cell text for complex multipage tables having explicit borders with the help of contour analysis.
- Working with scanned documents (image formats and PDF without text layer):
- Using Tesseract, an actively developed OCR engine from Google, together with image preprocessing methods.
- Utilizing modern machine learning approaches for detecting a document orientation, detecting single/multicolumn document page, detecting bold text and extracting hierarchical structure based on the classification of features extracted from document images.
Document format description
The system processes different document formats. The main formats are listed below:
| Format group | Description | |----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Office formats | DOCX, XLSX, PPTX and formats that can be converted to them. Handling of these formats is held by analysis of format inner representation and using specialized libraries (python-docx, BeautifulSoup) | | HTML, EML, MHTML | HTML documents are parsed using tags analysis, HTML handler is used for handling documents of other formats in this group | | TXT | Only raw textual content is analyzed | | Archives | Attachments of the archive are analyzed | | | PDF, document images | Copyable PDF documents (with a textual layer) can be handled using pdfminer-six library or tabby software. Non-copyable PDF documents or images are handled using Tesseract-OCR, machine learning methods (including neural network methods) and image processing methods |
Examples of processed scanned documents
-
Dedoc can only process scanned black and white documents, such as technical specifications, regulations, articles, etc.
<img src="https://github.com/ispras/dedoc/raw/master/docs/source/_static/doc_examples.png" alt="Document examples" style="width:800px;"/> -
In particular, dedoc recognizes tabular information only from tables with explicit boundaries. Here are examples of documents that can be processed by an dedoc's image handler:
<img src="https://github.com/ispras/dedoc/raw/master/docs/source/_static/example_table.jpg" alt="Table parsing example" style="width:600px;"/> -
The system also automatically detects and corrects the orientation of scanned documents
Examples of structure extractors
<img src="https://github.com/ispras/dedoc/raw/master/docs/source/_static/str_ext_example_law.png" alt="Law structure example"/> <img src="https://github.com/ispras/dedoc/raw/master/docs/source/_static/str_ext_example_tz.png" alt="Tz structure example"/>Impact
This project may be useful as a first step of an automatic document analysis pipeline (e.g. before the NLP part). Dedoc is in demand for information analytic systems, information leak monitoring systems, as well as for natural language processing systems. The library is intended for application use by developers of systems for automatic analysis and structuring of electronic documents, including for further search in electronic documents.
Documentation
Relevant documentation of dedoc is available here
Demo
- You can try dedoc demo
- You can watch video about dedoc


Publications related to dedoc
- Article ISPRAS@FinTOC-2022 shared task: Two-stage TOC generation model for the FinTOC 2022 Shared Task. We are the winners :smiley: :trophy:!
- Article on habr.com Dedoc: как автоматически извлечь из текстового документа всё и даже немного больше in Russian (2023)
- Article [Dedoc:
Related Skills
docs-writer
99.0k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
335.2kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
summarize
335.2kSummarize or extract text/transcripts from URLs, podcasts, and local files (great fallback for “transcribe this YouTube/video”).
feishu-doc
335.2k|
