Langchainテキストスプリッター:効率と精度のためにLLM入力を最適化する
以前の記事では、Langchainのドキュメントローダーについて説明しました。ただし、LLMにはコンテキストウィンドウサイズの制限(トークンで測定)があります。この制限を超えると、データが切り捨てられ、精度が損なわれ、コストが増加します。解決策?関連データのみをLLMに送信し、データの分割が必要です。 Langchainのテキストスプリッターを入力します。
重要な概念:
- テキストスプリッターの重要な役割: LLMアプリケーションを最適化し、コンテキストのウィンドウサイズとコストのバランスをとるために、効率的なテキスト分割が不可欠である理由を理解します。
- 多様なテキスト分割技術:文字カウント、トークンカウント、再帰的分割、HTML、コード、JSON構造に合わせたテクニックなど、さまざまな方法を探索します。
- Langchain Text Splitterの実装:インストール、テキスト分割のコード例、多様なデータ形式の処理など、実用的なアプリケーションを学習します。
- 強化された関連性のためのセマンティック分割:文の埋め込みとコサインの類似性がどのように意味的にコヒーレントなチャンクを作成し、関連性を最大化するかを発見します。
目次:
- テキストスプリッターとは何ですか?
- データ分割方法
- 文字カウントベースの分割
- 再帰的分割
- トークンカウントベースの分割
- HTMLの処理
- コード固有の分割
- JSONデータ処理
- セマンティックチャンク
- よくある質問
テキストスプリッターとは何ですか?
テキストスプリッターは、LLMクエリの関連性を改善するために、大きなテキストをより小さく管理可能なチャンクに分割します。彼らは、生のテキストまたはLangchainドキュメントオブジェクトで直接動作します。複数のメソッドは、さまざまなコンテンツタイプとユースケースに対応します。
データ分割方法
Langchainテキストスプリッターは、効率的な大規模なドキュメント処理のために重要です。パフォーマンスを向上させ、コンテキストの理解を改善し、並列処理を可能にし、より良いデータ管理を促進します。いくつかの方法を調べてみましょう。
前提条件: pip install langchain_text_splitters
を使用してパッケージをインストールします
文字カウントベースの分割
この方法は、指定されたセパレーターを使用して、文字カウントに基づいてテキストを分割します。
from langchain_community.document_loaders unstructuredpdfloaderをインポートします langchain_text_splittersからImport charateTextSplitter #データを読み込みます(PDFパスに置き換えます) loader = unstructuredpdfloader( 'How-to-formulate-successful-business-strategy.pdf'、mode = 'single') data = roader.load() text_splitter = charateTextSplitter(separator = "\ n"、chunk_size = 500、chunk_overlap = 0、is_separator_regex = false) texts = text_splitter.split_documents(data) len(テキスト)#出力:チャンク数
この例では、テキストを500文字のチャンクに分割し、Newline Charactersをセパレータとして使用します。
再帰的分割
これは、チャンクがchunk_size
以下になるまで、複数のセパレータを順番に使用します。文レベルの分割に役立ちます。
langchain_text_splittersからrecursiveCharacterTextSplitterをインポートします recursive_splitter = recursiveCharacterTextSplitter(隔たり= ["\ n \ n"、 "\ n"、r "(?>> 293) #...(コードの残りの部分は同様のままです)
トークンカウントベースの分割
LLMSはトークンを使用します。トークンカウントによる分割はより正確です。この例では、 o200k_base
エンコーディングを使用します(モデル/エンコーディングマッピングのGitHubリンクを確認してください)。
langchain_text_splittersからtokentextsplitterをインポートします text_splitter = tokentextsplitter(encoding_name = 'o200k_base'、chunk_size = 50、chunk_overlap = 0) texts = text_splitter.split_documents(data) len(テキスト)#出力:チャンク数
再帰的な分割は、トークンカウントと組み合わせることもできます。
平易なテキストの場合、文字またはトークンカウントを使用した再帰的分割が一般的に推奨されます。
HTMLの処理
HTMLのような構造化されたデータの場合、分割は構造を尊重する必要があります。この例は、HTMLヘッダーに基づいて分割されます。
langchain_text_splittersからhtmlheadertextsplitterをインポートします headers_to_split_on = [( "h1"、 "header 1")、( "h2"、 "header 2")、( "h3"、 "header 3")]]] html_splitter = htmlheadertextsplitter(headers_to_split_on、return_each_element = true) html_header_splits = html_splitter.split_text_from_url( 'https://diataxis.fr/') len(html_header_splits)#出力:チャンクの数
HTMLSectionSplitter
使用すると、他のセクションに基づいて分割できます。
コード固有の分割
プログラミング言語には、独自の構造があります。この例では、PythonコードにSyntax-Aware分割を使用しています。
langchain_text_splittersからインポートrecursiveCharacterTextSplitter、言語 #...(pythonコードの例)... python_splitter = recursivecharactertextsplitter.from_language(language = language.python、chunk_size = 100、chunk_overlap = 0) python_docs = python_splitter.create_documents([python_code])
JSONデータ処理
ネストされたJSONオブジェクトは、重要な関係を維持しながら分割できます。
langchain_text_splittersからrecursivejsonsplitterをインポートします #...(JSONデータの例)... splitter = recursivejsonsplitter(max_chunk_size = 200、min_chunk_size = 20) chunks = splitter.split_text(json_data、convert_lists = true)
セマンティックチャンク
この方法では、セマンティックに関連する文との文の埋め込みとコサインの類似性を使用します。
langchain_experimental.text_splitterからsemanticchunkerをインポートします langchain_openai.embeddingsからImport OpenAiembeddings#は、OpenAI APIキーが必要です #...(OpenAiemBedingsとSemanticChunkerを使用してコード)...
結論
Langchainは、さまざまなデータ型に適したさまざまなテキスト分割方法を提供しています。適切な方法を選択すると、LLM入力が最適化され、精度が向上し、コストが削減されます。
よくある質問
(Q&Aセクションはほぼ同じままであり、明確さとフローのための軽微な文言の調整があります。)
以上がLangchainテキストスプリッターを使用してデータを分割する7つの方法-AnalyticsVidhyaの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

自宅で大規模な言語モデルを簡単に実行する:LM Studioユーザーガイド 近年、ソフトウェアとハードウェアの進歩により、パーソナルコンピューターで大きな言語モデル(LLM)を実行することが可能になりました。 LM Studioは、このプロセスを簡単かつ便利にするための優れたツールです。この記事では、LM Studioを使用してLLMをローカルに実行する方法に飛び込み、重要なステップ、潜在的な課題、LLMをローカルに配置することの利点をカバーします。あなたが技術愛好家であろうと、最新のAIテクノロジーに興味があるかどうかにかかわらず、このガイドは貴重な洞察と実用的なヒントを提供します。始めましょう! 概要 LLMをローカルに実行するための基本的な要件を理解してください。 コンピューターにLM Studiをセットアップします

Guy Periは、McCormickの最高情報およびデジタルオフィサーです。彼の役割からわずか7か月後ですが、ペリは同社のデジタル能力の包括的な変革を急速に進めています。データと分析に焦点を当てている彼のキャリアに焦点が当てられています

導入 人工知能(AI)は、言葉だけでなく感情も理解し、人間のタッチで反応するように進化しています。 この洗練された相互作用は、AIおよび自然言語処理の急速に進む分野で重要です。 th

導入 今日のデータ中心の世界では、競争力と効率の向上を求める企業にとって、高度なAIテクノロジーを活用することが重要です。 さまざまな強力なツールにより、データサイエンティスト、アナリスト、開発者が構築、Deplを作成することができます。

今週のAIの風景は、Openai、Mistral AI、Nvidia、Deepseek、Hugging Faceなどの業界の巨人からの画期的なリリースで爆発しました。 これらの新しいモデルは、TRの進歩によって促進された電力、手頃な価格、アクセシビリティの向上を約束します

しかし、検索機能を提供するだけでなくAIアシスタントとしても機能する同社のAndroidアプリは、ユーザーをデータの盗難、アカウントの買収、および悪意のある攻撃にさらす可能性のある多くのセキュリティ問題に悩まされています。

会議や展示会で何が起こっているのかを見ることができます。エンジニアに何をしているのか尋ねたり、CEOに相談したりできます。 あなたが見ているところはどこでも、物事は猛烈な速度で変化しています。 エンジニア、および非エンジニア 違いは何ですか

Rocketpy:A包括的なガイドでロケット発売をシミュレートします この記事では、強力なPythonライブラリであるRocketpyを使用して、高出力ロケット発売をシミュレートすることをガイドします。 ロケットコンポーネントの定義からシミュラの分析まで、すべてをカバーします


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
