Maison Périphériques technologiques IA 7 façons de diviser les données à l'aide de séparateurs de texte de Langchain - Analytics Vidhya

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 AM

Langchain 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.

7 façons de diviser les données à l'aide de séparateurs de texte de Langchain - Analytics Vidhya

Concepts clés:

  1. 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.
  2. 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.
  3. 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.
  4. 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
Copier après la connexion

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)
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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])
Copier après la connexion

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)
Copier après la connexion

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) ...
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Meilleurs générateurs d'art AI (gratuit & amp; payé) pour des projets créatifs Meilleurs générateurs d'art AI (gratuit & amp; payé) pour des projets créatifs Apr 02, 2025 pm 06:10 PM

L'article passe en revue les meilleurs générateurs d'art AI, discutant de leurs fonctionnalités, de leur aptitude aux projets créatifs et de la valeur. Il met en évidence MidJourney comme la meilleure valeur pour les professionnels et recommande Dall-E 2 pour un art personnalisable de haute qualité.

Début avec Meta Llama 3.2 - Analytics Vidhya Début avec Meta Llama 3.2 - Analytics Vidhya Apr 11, 2025 pm 12:04 PM

META'S LLAMA 3.2: un bond en avant dans l'IA multimodal et mobile Meta a récemment dévoilé Llama 3.2, une progression importante de l'IA avec de puissantes capacités de vision et des modèles de texte légers optimisés pour les appareils mobiles. S'appuyer sur le succès o

Meilleurs chatbots AI comparés (Chatgpt, Gemini, Claude & amp; plus) Meilleurs chatbots AI comparés (Chatgpt, Gemini, Claude & amp; plus) Apr 02, 2025 pm 06:09 PM

L'article compare les meilleurs chatbots d'IA comme Chatgpt, Gemini et Claude, en se concentrant sur leurs fonctionnalités uniques, leurs options de personnalisation et leurs performances dans le traitement et la fiabilité du langage naturel.

Chatgpt 4 o est-il disponible? Chatgpt 4 o est-il disponible? Mar 28, 2025 pm 05:29 PM

Chatgpt 4 est actuellement disponible et largement utilisé, démontrant des améliorations significatives dans la compréhension du contexte et la génération de réponses cohérentes par rapport à ses prédécesseurs comme Chatgpt 3.5. Les développements futurs peuvent inclure un interg plus personnalisé

Assistants d'écriture de l'IA pour augmenter votre création de contenu Assistants d'écriture de l'IA pour augmenter votre création de contenu Apr 02, 2025 pm 06:11 PM

L'article traite des meilleurs assistants d'écriture d'IA comme Grammarly, Jasper, Copy.ai, WireSonic et Rytr, en se concentrant sur leurs fonctionnalités uniques pour la création de contenu. Il soutient que Jasper excelle dans l'optimisation du référencement, tandis que les outils d'IA aident à maintenir le ton

Top 7 Système de chiffon agentique pour construire des agents d'IA Top 7 Système de chiffon agentique pour construire des agents d'IA Mar 31, 2025 pm 04:25 PM

2024 a été témoin d'un simple passage de l'utilisation des LLM pour la génération de contenu pour comprendre leur fonctionnement intérieur. Cette exploration a conduit à la découverte des agents de l'IA - les systèmes autonomes manipulant des tâches et des décisions avec une intervention humaine minimale. Construire

Vendre une stratégie d'IA aux employés: le manifeste du PDG de Shopify Vendre une stratégie d'IA aux employés: le manifeste du PDG de Shopify Apr 10, 2025 am 11:19 AM

La récente note du PDG de Shopify Tobi Lütke déclare hardiment la maîtrise de l'IA une attente fondamentale pour chaque employé, marquant un changement culturel important au sein de l'entreprise. Ce n'est pas une tendance éphémère; C'est un nouveau paradigme opérationnel intégré à P

Choisir le meilleur générateur de voix d'IA: les meilleures options examinées Choisir le meilleur générateur de voix d'IA: les meilleures options examinées Apr 02, 2025 pm 06:12 PM

L'article examine les meilleurs générateurs de voix d'IA comme Google Cloud, Amazon Polly, Microsoft Azure, IBM Watson et Descript, en se concentrant sur leurs fonctionnalités, leur qualité vocale et leur aptitude à différents besoins.

See all articles