Open-Source-Vorverarbeitungstools für unstrukturierte Daten
Die unstructured Bibliothek bietet Open-Source-Komponenten für die Einnahme und Vorverarbeitung von Bildern und Textdokumenten wie PDFs, HTML, Word-Dokumenten und vielem mehr. Die Anwendungsfälle von unstructured drehen sich um die Straffung und Optimierung des Datenverarbeitungs -Workflows für LLMs. unstructured modulare Funktionen und Anschlüsse bilden ein kohäsives System, das die Aufnahme und Vorverarbeitung von Daten vereinfacht, wodurch es an verschiedene Plattformen anpassbar ist und unstrukturierte Daten in strukturierte Ausgaben effizient umgewandelt wird.
Suchen Sie nach einer besseren Vorverarbeitungsleistung und weniger Setup? Schauen Sie sich unsere neue serverlose API an! Die unstrukturierte serverlose API ist unsere bisher leistungsstärkste API und liefert eine reaktionsfähigere, produktionsgradigere Lösung, um Ihre Geschäftsanforderungen und LLM-Anforderungen besser zu unterstützen. Besuchen Sie unsere Anmeldeseite, um kostenlos loszulegen.
Es gibt verschiedene Möglichkeiten, die unstructured Bibliothek zu verwenden:
conda unter Windows System finden Sie in der Dokumentation Die folgenden Anweisungen sollen Ihnen helfen, mit Docker mit dem Laufen zu fahren, um mit unstructured Interaktion zu interagieren. Sehen Sie hier, ob Docker noch nicht auf Ihrem Computer installiert ist.
Hinweis: Wir erstellen Multi-Plattform-Bilder, um sowohl x86_64 als auch Apple Silicon-Hardware zu unterstützen. docker pull sollte das entsprechende Bild für Ihre Architektur herunterladen. Bei Bedarf können Sie jedoch mit --platform (z --platform linux/amd64 ) angeben.
Wir bauen Docker -Bilder für alle Drücken zum main . Wir markieren jedes Bild mit dem entsprechenden Short Commit Hash (z. B. fbc7a69 ) und der Anwendungsversion (z. B. 0.5.5-dev1 ). Wir markieren auch das neueste Bild mit latest . Um dies zu nutzen, docker pull aus unserem Image -Repository.
docker pull downloads.unstructured.io/unstructured-io/unstructured:latestNach dem Ziehen können Sie einen Behälter aus diesem Bild und einer Schale erstellen.
# create the container
docker run -dt --name unstructured downloads.unstructured.io/unstructured-io/unstructured:latest
# this will drop you into a bash shell where the Docker image is running
docker exec -it unstructured bash Sie können auch Ihr eigenes Docker -Bild erstellen. Beachten Sie, dass das Basisbild wolfi-base ist, das regelmäßig aktualisiert wird. Wenn Sie das Bild lokal erstellen, ist es möglich, dass docker-build aufgrund von vorgelagerten Änderungen in wolfi-base fehlschlagen kann.
Wenn Sie nur eine Datenart analysieren möchten, können Sie das Bild beschleunigen, indem Sie einige der für andere Datentypen erforderlichen Pakete/Anforderungen aussprechen. Siehe Dockerfile, um zu wissen, welche Zeilen für Ihren Anwendungsfall erforderlich sind.
make docker-build
# this will drop you into a bash shell where the Docker image is running
make docker-start-bashSobald Sie im laufenden Container die Dinge direkt im interaktiven Modus von Python Interpreter versuchen können.
# this will drop you into a python console so you can run the below partition functions
python3
>>> from unstructured.partition.pdf import partition_pdf
>>> elements = partition_pdf(filename= " example-docs/layout-parser-paper-fast.pdf " )
>>> from unstructured.partition.text import partition_text
>>> elements = partition_text(filename= " example-docs/fake-text.txt " ) Verwenden Sie die folgenden Anweisungen, um mit unstructured Ausführung aufzunehmen und Ihre Installation zu testen.
Installieren Sie das Python SDK, um alle Dokumenttypen mit pip install "unstructured[all-docs]" zu unterstützen.
pip install unstructured ausführenpip install "unstructured[docx,pptx]"Installieren Sie die folgenden Systemabhängigkeiten, wenn sie noch nicht in Ihrem System verfügbar sind. Je nachdem, welche Dokumenttypen Sie analysieren, benötigen Sie möglicherweise nicht alle.
libmagic-dev (Filetyp-Erkennung)poppler-utils (Bilder und PDFs)tesseract-ocr (Bilder und PDFs, installieren Sie tesseract-lang für zusätzliche Sprachunterstützung)libreoffice (MS Office Docs)pandoc (EPUBs, RTFs und Open Office Docs). Bitte beachten Sie, dass Sie zur Umarbeitung von RTF -Dateien Version 2.14.2 oder neuer benötigen. Ausführen entweder make install-pandoc oder ./scripts/install-pandoc.sh wird die richtige Version für Sie installieren.Vorschläge zur Installation an den Fenstern und zum Erfahren von Abhängigkeiten für andere Funktionen finden Sie in der Installationsdokumentation hier.
Zu diesem Zeitpunkt sollten Sie in der Lage sein, den folgenden Code auszuführen:
from unstructured . partition . auto import partition
elements = partition ( filename = "example-docs/eml/fake-email.eml" )
print ( " n n " . join ([ str ( el ) for el in elements ])) Die folgenden Anweisungen sollen Ihnen helfen, mit unstructured lokalem Laufen aufzusteigen, wenn Sie planen, zum Projekt beizutragen.
Es wird empfohlen, pyenv zur Verwaltung von Virtualenvs zu verwenden, aber nicht notwendig
brew install pyenv-virtualenvpyenv install 3.10 Erstellen Sie ein Virtualenv, um es zu arbeiten und es zu aktivieren, z. B. für einen namens unstructured :
pyenv virtualenv 3.10 unstructured
pyenv activate unstructured
Ausführen make install
Optional:
make install-local-inference .tesseract erforderlich. Hier finden Sie Anweisungen zur Installation.tesseract und poppler erforderlich. Die PDF2Image -Dokumente haben Anweisungen zur Installation poppler auf verschiedenen Plattformen. Wenn Sie vorhaben, zu unstructured Beitrag beitragen, bieten wir Ihnen außerdem eine optionale Konfigurationsdatei pre-commit um sicherzustellen, dass Ihr Code mit den in unstructured verwendeten Format- und Lining-Standards übereinstimmt. Wenn Sie es vorziehen möchten, dass Code-Änderungen vor jedem Commit nicht automatisch geeignet sind, können Sie make check verwenden, um festzustellen, ob eine Linie- oder Formatierungsänderungen angewendet werden sollten, und die Anwendung von make tidy .
Wenn Sie das optionale pre-commit verwenden, müssen Sie nur die Hooks mit pre-commit install installieren, da das pre-commit -Paket als Teil der oben genannten make install installiert ist. Wenn Sie sich für die Verwendung pre-commit entschieden haben, können Sie die Hooks auch mit pre-commit uninstall deinstallieren.
Zusätzlich zur Entwicklung in Ihrem lokalen Betriebssystem bieten wir auch einen Helfer, um Docker zu verwenden, die eine Entwicklungsumgebung bereitstellen:
make docker-start-dev Dies startet einen Docker -Container mit Ihrem lokalen Repo, der an /mnt/local_unstructured montiert ist. Mit diesem Docker -Bild können Sie sich entwickeln, ohne sich über die Kompatibilität Ihres Betriebssystems mit dem Repo und seinen Abhängigkeiten zu sorgen.
Weitere umfassendere Unterlagen finden Sie unter https://docs.unstructured.io. Sie können auch mehr über unsere anderen Produkte auf der Dokumentationsseite erfahren, einschließlich unserer SaaS -API.
Hier sind ein paar Seiten von der Open Source -Dokumentationsseite, die für neue Benutzer hilfreich sind, um zu überprüfen:
unstructured Open Source -Pakets Die folgenden Beispiele zeigen, wie Sie mit der unstructured Bibliothek beginnen. Der einfachste Weg, ein Dokument in unstrukturiertem Dokument zu analysieren, besteht darin, die partition zu verwenden. Wenn Sie eine partition verwenden, erkennt unstructured , dass der Dateityp erfasst und an die entsprechende Dateispezifische Partitionierungsfunktion weitergeleitet wird. Wenn Sie die partition verwenden, müssen Sie möglicherweise zusätzliche Abhängigkeiten pro DOC -Typ installieren. Um beispielsweise DOCX -Abhängigkeiten zu installieren, müssen Sie pip install "unstructured[docx]" ausführen. Weitere Informationen finden Sie in unserem Installationshandbuch.
from unstructured . partition . auto import partition
elements = partition ( "example-docs/layout-parser-paper.pdf" ) Führen Sie print("nn".join([str(el) for el in elements])) aus, um eine String -Darstellung der Ausgabe zu erhalten, die aussieht wie:
LayoutParser : A Unified Toolkit for Deep Learning Based Document Image Analysis
Zejiang Shen 1 ( (cid:0) ), Ruochen Zhang 2 , Melissa Dell 3 , Benjamin Charles Germain Lee 4 , Jacob Carlson 3 , and
Weining Li 5
Abstract. Recent advances in document image analysis (DIA) have been primarily driven by the application of neural
networks. Ideally, research outcomes could be easily deployed in production and extended for further investigation.
However, various factors like loosely organized codebases and sophisticated model configurations complicate the easy
reuse of important innovations by a wide audience. Though there have been ongoing efforts to improve reusability and
simplify deep learning (DL) model development in disciplines like natural language processing and computer vision, none
of them are optimized for challenges in the domain of DIA. This represents a major gap in the existing toolkit, as DIA
is central to academic research across a wide range of disciplines in the social sciences and humanities. This paper
introduces LayoutParser, an open-source library for streamlining the usage of DL in DIA research and applications.
The core LayoutParser library comes with a set of simple and intuitive interfaces for applying and customizing DL models
for layout detection, character recognition, and many other document processing tasks. To promote extensibility,
LayoutParser also incorporates a community platform for sharing both pre-trained models and full document digitization
pipelines. We demonstrate that LayoutParser is helpful for both lightweight and large-scale digitization pipelines in
real-word use cases. The library is publicly available at https://layout-parser.github.io
Keywords: Document Image Analysis · Deep Learning · Layout Analysis · Character Recognition · Open Source library ·
Toolkit.
Introduction
Deep Learning(DL)-based approaches are the state-of-the-art for a wide range of document image analysis (DIA) tasks
including document image classification [11,
In unserer Dokumentation finden Sie den Abschnitt "Partitionierung" für eine vollständige Liste von Optionen und Anweisungen zur Verwendung von Dateispezifischen Partitionierungsfunktionen.
In unserer Sicherheitsrichtlinie finden Sie Informationen zur Berichterstattung über Sicherheitslücken.
Auf einen Fehler gestoßen? Bitte erstellen Sie ein neues GitHub -Problem und verwenden Sie unsere Fehlerberichtsvorlage, um das Problem zu beschreiben. Um das Problem zu diagnostizieren, verwenden Sie den Befehl python scripts/collect_env.py um die Umgebungsinformationen Ihres Systems zu sammeln und in Ihren Bericht aufzunehmen. Ihre Unterstützung hilft uns, unsere Software kontinuierlich zu verbessern - danke!
| Abschnitt | Beschreibung |
|---|---|
| Unternehmenswebsite | Unstrukturiert.io Produkt- und Firmeninformationen |
| Dokumentation | Vollständige API -Dokumentation |
| Stapelverarbeitung | Einnahme von Dokumenten durch unstrukturierte |
Wir haben uns mit Scarf (https://scarf.sh) zusammengetan, um anonymisierte Benutzerstatistiken zu sammeln, um zu verstehen, welche Funktionen unsere Community verwendet und wie die Produktentscheidung in Zukunft priorisiert wird. Um mehr darüber zu erfahren, wie wir diese Daten sammeln und verwenden, lesen Sie bitte unsere Datenschutzrichtlinie. Um diese Datenerfassung abzumelden, können Sie die Umgebungsvariable SCARF_NO_ANALYTICS=true festlegen, bevor Sie unstructured Befehle ausführen.