検索
ホームページテクノロジー周辺機器AILangchainテキストスプリッターを使用してデータを分割する7つの方法-AnalyticsVidhya

Langchainテキストスプリッター:効率と精度のためにLLM入力を最適化する

以前の記事では、Langchainのドキュメントローダーについて説明しました。ただし、LLMにはコンテキストウィンドウサイズの制限(トークンで測定)があります。この制限を超えると、データが切り捨てられ、精度が損なわれ、コストが増加します。解決策?関連データのみをLLMに送信し、データの分割が必要です。 Langchainのテキストスプリッターを入力します。

Langchainテキストスプリッターを使用してデータを分割する7つの方法-AnalyticsVidhya

重要な概念:

  1. テキストスプリッターの重要な役割: LLMアプリケーションを最適化し、コンテキストのウィンドウサイズとコストのバランスをとるために、効率的なテキスト分割が不可欠である理由を理解します。
  2. 多様なテキスト分割技術:文字カウント、トークンカウント、再帰的分割、HTML、コード、JSON構造に合わせたテクニックなど、さまざまな方法を探索します。
  3. Langchain Text Splitterの実装:インストール、テキスト分割のコード例、多様なデータ形式の処理など、実用的なアプリケーションを学習します。
  4. 強化された関連性のためのセマンティック分割:文の埋め込みとコサインの類似性がどのように意味的にコヒーレントなチャンクを作成し、関連性を最大化するかを発見します。

目次:

  • テキストスプリッターとは何ですか?
  • データ分割方法
  • 文字カウントベースの分割
  • 再帰的分割
  • トークンカウントベースの分割
  • 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 サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
LM Studioを使用してLLMをローカルに実行する方法は? - 分析VidhyaLM Studioを使用してLLMをローカルに実行する方法は? - 分析VidhyaApr 19, 2025 am 11:38 AM

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

Guy Periは、データ変換を通じてMcCormickの未来のフレーバーを支援しますGuy Periは、データ変換を通じてMcCormickの未来のフレーバーを支援しますApr 19, 2025 am 11:35 AM

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

迅速なエンジニアリングの感情の連鎖は何ですか? - 分析Vidhya迅速なエンジニアリングの感情の連鎖は何ですか? - 分析VidhyaApr 19, 2025 am 11:33 AM

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

データサイエンスワークフローのための12のベストAIツール-AnalyticsVidhyaデータサイエンスワークフローのための12のベストAIツール-AnalyticsVidhyaApr 19, 2025 am 11:31 AM

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

AV BYTE:OpenAIのGPT-4O MINIおよびその他のAIイノベーションAV BYTE:OpenAIのGPT-4O MINIおよびその他のAIイノベーションApr 19, 2025 am 11:30 AM

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

PerplexityのAndroidアプリにはセキュリティの欠陥が感染しているとレポートPerplexityのAndroidアプリにはセキュリティの欠陥が感染しているとレポートApr 19, 2025 am 11:24 AM

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

誰もがAIの使用が上手になっています:バイブコーディングに関する考え誰もがAIの使用が上手になっています:バイブコーディングに関する考えApr 19, 2025 am 11:17 AM

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

Rocketpyを使用したロケットの起動シミュレーションと分析-AnalyticsVidhyaRocketpyを使用したロケットの起動シミュレーションと分析-AnalyticsVidhyaApr 19, 2025 am 11:12 AM

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

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

DVWA

DVWA

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

PhpStorm Mac バージョン

PhpStorm Mac バージョン

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