Regroupez facilement des documents complexes de la même manière qu’un humain.
Le regroupement de documents est une tâche difficile qui sous-tend tout système RAG. Des résultats de haute qualité sont essentiels au succès d’une application d’IA, mais la plupart des bibliothèques open source sont limitées dans leur capacité à gérer des documents complexes.
Open Parse est conçu pour combler cette lacune en fournissant une bibliothèque flexible et facile à utiliser, capable de discerner visuellement la mise en page des documents et de les regrouper efficacement.
Le fractionnement du texte convertit un fichier en texte brut et le découpe.
Il existe des bibliothèques fantastiques comme layout-parser.
? Piloté visuellement : Open-Parse analyse visuellement les documents pour une saisie LLM supérieure, allant au-delà du fractionnement naïf du texte.
✍️ Prise en charge du markdown : prise en charge de base du markdown pour l'analyse des titres, en gras et en italique.
Prise en charge de tableaux de haute précision : extrayez des tableaux dans des formats Markdown épurés avec une précision qui surpasse les outils traditionnels.
Extensible : implémentez facilement vos propres étapes de post-traitement.
Intuitif : Excellent support de l'éditeur. Achèvement partout. Moins de temps de débogage.
Facile : conçu pour être facile à utiliser et à apprendre. Moins de temps à lire des documents.
import openparse
basic_doc_path = "./sample-docs/mobile-home-manual.pdf"
parser = openparse . DocumentParser ()
parsed_basic_doc = parser . parse ( basic_doc_path )
for node in parsed_basic_doc . nodes :
print ( node )
? Essayez l'exemple de cahier ici
Le regroupement de documents consiste fondamentalement à regrouper des nœuds sémantiques similaires. En intégrant le texte de chaque nœud, nous pouvons ensuite les regrouper en fonction de leur similarité.
from openparse import processing , DocumentParser
semantic_pipeline = processing . SemanticIngestionPipeline (
openai_api_key = OPEN_AI_KEY ,
model = "text-embedding-3-large" ,
min_tokens = 64 ,
max_tokens = 1024 ,
)
parser = DocumentParser (
processing_pipeline = semantic_pipeline ,
)
parsed_content = parser . parse ( basic_doc_path )
? Exemple de carnet ici
Utilise pydantic sous le capot pour que vous puissiez sérialiser les résultats avec
parsed_content . dict ()
# or to convert to a valid json dict
parsed_content . json ()
Python3.8+
Gérer les PDF :
Extraction de tableaux :
pip install openparse
Activation de la prise en charge OCR :
PyMuPDF contiendra déjà toute la logique pour prendre en charge les fonctions OCR. Mais il a également besoin des données de prise en charge linguistique de Tesseract, l'installation de Tesseract-OCR est donc toujours requise.
L'emplacement du dossier de support de langue doit être communiqué soit en le stockant dans la variable d'environnement "TESSDATA_PREFIX", soit en tant que paramètre dans les fonctions applicables.
Donc, pour une fonctionnalité OCR fonctionnelle, assurez-vous de remplir cette liste de contrôle :
Installez Tesseract.
Localisez le dossier de prise en charge linguistique de Tesseract. Généralement, vous le trouverez ici :
Windows : C:/Program Files/Tesseract-OCR/tessdata
Systèmes Unix : /usr/share/tesseract-ocr/5/tessdata
macOS (installé via Homebrew) :
/opt/homebrew/share/tessdata
/opt/homebrew/Cellar/tesseract/<version>/share/tessdata/
Définir la variable d'environnement TESSDATA_PREFIX
Windows : setx TESSDATA_PREFIX "C:/Program Files/Tesseract-OCR/tessdata"
Systèmes Unix : declare -x TESSDATA_PREFIX=/usr/share/tesseract-ocr/5/tessdata
macOS (installé via Homebrew) : export TESSDATA_PREFIX=$(brew --prefix tesseract)/share/tessdata
Remarque : sur les systèmes Windows, cela doit se produire en dehors de Python – avant de démarrer votre script. La simple manipulation de os.environ ne fonctionnera pas !
Ce référentiel fournit une fonctionnalité facultative pour analyser le contenu des tables à l'aide de divers modèles d'apprentissage en profondeur.
pip install "openparse[ml]"
Téléchargez ensuite les poids du modèle avec
openparse-download
Vous pouvez exécuter l'analyse avec ce qui suit.
parser = openparse . DocumentParser (
table_args = {
"parsing_algorithm" : "unitable" ,
"min_table_confidence" : 0.8 ,
},
)
parsed_nodes = parser . parse ( pdf_path )
Notez que nous utilisons actuellement des transformateurs de table pour toutes les détections de tables et nous trouvons que ses performances sont médiocres. Cela affecte négativement les résultats en aval de unifiable. Si vous connaissez un meilleur modèle, veuillez ouvrir un problème - l'équipe unifiable a mentionné qu'elle pourrait également l'ajouter bientôt.
https://github.com/Filimoa/open-parse/tree/main/src/cookbooks
https://filimoa.github.io/open-parse/
Votre cas d’utilisation nécessite-t-il quelque chose de spécial ? Contactez-nous.