


7 fa?ons de diviser les données à l'aide de séparateurs de texte de Langchain - Analytics Vidhya
Apr 19, 2025 am 10:11 AMLangchain Text Splipteurs: Optimisation de l'entrée LLM pour l'efficacité et la précision
Notre article précédent couvrait les chargeurs de documents de Langchain. Cependant, les LLM ont des limitations de taille de fenêtre de contexte (mesurées en jetons). Le dépassement de cette limite tronque les données, compromettant la précision et l'augmentation des co?ts. La solution? Envoyez uniquement des données pertinentes à la LLM, nécessitant une fractionnement des données. Entrez les séparateurs de texte de Langchain.
Concepts clés:
- Le r?le crucial des séparateurs de texte: comprendre pourquoi la division efficace du texte est vitale pour optimiser les applications LLM, équilibrer la taille et le co?t des fenêtres de contexte.
- Diverses techniques de division de texte: explorez diverses méthodes, notamment le nombre de caractères, les dénombrements de jetons, le fractionnement récursif et les techniques adaptées aux structures HTML, code et JSON.
- Implémentation du séparateur de texte de Langchain: Apprenez l'application pratique, y compris l'installation, des exemples de code pour la division de texte et la gestion des formats de données divers.
- Clissage sémantique pour une pertinence améliorée: découvrez comment les intérêts des phrases et la similitude du cosinus créent des morceaux sémantiquement cohérents, maximisant la pertinence.
Table des matières:
- Que sont les séparateurs de texte?
- Méthodes de division des données
- Clissage basé sur le nombre de caractères
- Fractionnement récursif
- Division basée sur le nombre de jetons
- Gestion de HTML
- Fractionnement spécifique au code
- Gestion des données JSON
- Chunking sémantique
- Questions fréquemment posées
Que sont les séparateurs de texte?
Les séparateurs de texte divisent un grand texte en morceaux plus petits et gérables pour une pertinence de requête LLM améliorée. Ils travaillent directement sur des objets de document de texte brut ou de Langchain. Plusieurs méthodes s'adressent à différents types de contenu et cas d'utilisation.
Méthodes de division des données
Les séparateurs de texte de Langchain sont cruciaux pour un traitement efficace des documents importants. Ils améliorent les performances, la compréhension contextuelle, permettent un traitement parallèle et facilitent une meilleure gestion des données. Examinons plusieurs méthodes:
Prérequis: Installez le package à l'aide de pip install langchain_text_splitters
Clissage basé sur le nombre de caractères
Cette méthode divise le texte basé sur le nombre de caractères, en utilisant un séparateur spécifié.
de Langchain_community.Document_Loaders Importer non structurépdfloader De Langchain_Text_Splitters Importer le caractère de caractères # Charger les données (remplacer par votre chemin PDF) chargeur = non structurépdfloader ('comment-formulaire-succès-business-strategy.pdf', mode = 'single') data = loader.load () text_splitter = caracttextSplitter (séparateur = "\ n", chunk_size = 500, chunk_overlap = 0, is_separator_regex = false) texts = text_splitter.split_documents (données) Len (textes) # sortie: nombre de morceaux
Cet exemple divise le texte en morceaux de 500 caractères, en utilisant les caractères de Newline comme séparateurs.
Fractionnement récursif
Cela utilise plusieurs séparateurs séquentiellement jusqu'à ce que les morceaux soient en dessous de chunk_size
. Utile pour la division au niveau de la phrase.
De Langchain_Text_Splitters Import en RecursiveCaracterTextSplitter recursive_splitter = recursiveCaraCterTextStplitter (séparateurs = ["\ n \ n", "\ n", r "(? >> 293 # ... (Le reste du code reste similaire)
Division basée sur le nombre de jetons
Les LLM utilisent des jetons; La division par nombre de jetons est plus précise. Cet exemple utilise le codage o200k_base
(vérifiez le lien GitHub pour les mappages de modèle / codage).
De Langchain_Text_Splitters Import TokenExtsPlitter text_splitter = tokentextsplitter (encoding_name = 'o200k_base', chunk_size = 50, chunk_overlap = 0) texts = text_splitter.split_documents (données) Len (textes) # sortie: nombre de morceaux
Le fractionnement récursif peut également être combiné avec un comptage de jetons.
Pour le texte brut, le fractionnement récursif avec le comptage des caractères ou des jetons est généralement préféré.
Gestion de HTML
Pour les données structurées comme le HTML, le fractionnement devrait respecter la structure. Cet exemple se divise basé sur des en-têtes HTML.
De Langchain_Text_Splitters Import HtmlheaderTextSplitter headers_to_split_on = [("h1", "en-tête 1"), ("H2", "En-tête 2"), ("H3", "En-tête 3")] html_splitter = htmlheadertextSplitter (en-tête_to_split_on, return_each_element = true) html_header_splits = html_splitter.split_text_from_url ('https://diataxis.fr/') Len (html_header_splits) # sortie: nombre de morceaux
HTMLSectionSplitter
permet la fractionnement en fonction d'autres sections.
Fractionnement spécifique au code
Les langages de programmation ont des structures uniques. Cet exemple utilise la fractionnement de la syntaxe pour le code Python.
De Langchain_text_Splitters Import en récursiveCaraCterTextSplitter, Langue # ... (Exemple de code Python) ... python_splitter = recursiveCaraCterTextSplitter.from_Language (Language = Language.python, Chunk_Size = 100, Chunk_overlap = 0) python_docs = python_splitter.create_documents ([python_code])
Gestion des données JSON
Les objets JSON imbriqués peuvent être divisés tout en préservant les relations clés.
De Langchain_Text_Splitters Import RecursiveJSonsplitter # ... (exemple de données JSON) ... Splitter = récursivejSonsPlitter (max_chunk_size = 200, min_chunk_size = 20) Chunks = Splitter.Split_Text (JSON_DATA, CONVERT_LISTS = TRUE)
Chunking sémantique
Cette méthode utilise des incorporations de phrases et une similitude en cosinus avec les phrases sémantiquement liées au groupe.
De Langchain_Experimental.Text_Splitter Import SemanticChunker De Langchain_Openai.Embeddings Import OpenaieMeddings # nécessite une clé API Openai # ... (code utilisant Openaiembedddings et SemanticChunker) ...
Conclusion
Langchain propose diverses méthodes de division de texte, chacune adaptée à différents types de données. Le choix de la bonne méthode optimise l'entrée LLM, l'amélioration de la précision et la réduction des co?ts.
Questions fréquemment posées
(La section Q&R reste en grande partie la même, avec des ajustements de libellés mineurs pour la clarté et l'écoulement.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

L'investissement est en plein essor, mais le capital seul ne suffit pas. Avec la montée et la décoloration des évaluations, les investisseurs dans les fonds de capital-risque axés sur l'IA doivent prendre une décision clé: acheter, construire ou partenaire pour gagner un avantage? Voici comment évaluer chaque option et PR

Divulgation: mon entreprise, Tirias Research, a consulté IBM, NVIDIA et d'autres sociétés mentionnées dans cet article.Les moteurs de croissance La poussée de l'adoption générative de l'IA était plus dramatique que même les projections les plus optimistes ne pourraient prévoir. Ensuite, un

Parlons-en. Cette analyse d'une percée innovante de l'IA fait partie de ma couverture de colonne Forbes en cours sur les dernières personnes en IA, notamment en identifiant et en expliquant diverses complexités d'IA percutantes (voir le lien ici). Se dirigeant vers Agi et

Avez-vous déjà essayé de créer votre propre application de modèle de grande langue (LLM)? Vous êtes-vous déjà demandé comment les gens faisaient leur propre application LLM pour augmenter leur productivité? Les applications LLM se sont révélées utiles dans tous les aspects

Dans l'ensemble, je pense que l'événement a été important pour montrer comment AMD déplace le ballon sur le terrain pour les clients et les développeurs. Sous Su, AMD’s M.O. est d'avoir des plans clairs et ambitieux et de s'exécuter contre eux. Son rapport ?dire / faire? est élevé. L'entreprise fait

Rappelez-vous le flot de modèles chinois open source qui a perturbé l'industrie du Genai plus t?t cette année? Alors que Deepseek a fait la majeure partie des titres, Kimi K1.5 était l'un des noms importants de la liste. Et le modèle était assez cool.

Parlons-en. Cette analyse d'une percée innovante de l'IA fait partie de ma couverture de colonne Forbes en cours sur les dernières personnes en IA, notamment en identifiant et en expliquant diverses complexités d'IA percutantes (voir le lien ici). Pour ces lecteurs qui h

Si le parrain de l'IA vous dit de ?s'entra?ner à être plombier?, vous savez que cela vaut la peine d'écouter - du moins c'est ce qui a attiré mon attention. Dans une discussion récente, Geoffrey Hinton a parlé de l'avenir potentiel fa?onné par une IA supentintelligente, et si vous
