URL(Uniform Resource Locator)の変換を次のように行ってください:
https://anakin.ai/apps/keyword
または
https://anakin.ai/blog/keyword
↓
https://anakin.ai/ja-jp/apps/keyword
https://anakin.ai/ja-jp/blog/keyword
以下はHTMLコードです:
LangChainは、言語モデルを活用したアプリケーションの開発に役立つ強力なフレームワークです。その主な機能の1つは、さまざまなタイプのドキュメントをロードして処理する能力であり、質問応答、要約、情報検索などのタスクには欠かせません。この包括的なガイドでは、LangChainドキュメントローダーを使用して、さまざまなファイル形式とデータソースで作業する方法を探ります。
すべてのAIモデルにアクセスできるオールインワン価格タグを備えたAIプラットフォームをお探しですか?
それなら、Anakin AIを見逃すことはできません!
Anakin AIは、ワークフローオートメーション向けのオールインワンプラットフォームで、使いやすいノーコードアプリビルダーで強力なAIアプリを作成できます。Llama 3、Claude、GPT-4、Uncensored LLMs、Stable Diffusionなどです。
Anakin AIで夢のアプリを数分で構築しましょう!
LangChainドキュメントローダーの紹介
LangChainドキュメントローダーは、さまざまなソースからのデータを取り込んで、言語モデルが簡単に使用できる形式に変換するために設計されています。これらのローダーは、CSV、HTML、JSON、Markdown、PDF、Microsoft Officeドキュメントなど、さまざまな種類のファイルをサポートしています。
特定のローダーに進む前に、環境をセットアップしましょう:
pip install langchain
それでは、LangChainで異なるドキュメントローダーを使用する方法を見ていきましょう。
1. CSV LangChainドキュメントローダー
カンマ区切り値(CSV)ファイルは、表形式のデータを保存するためによく使用されます。LangChainでは、CSVファイルを簡単に扱うためのCSVLoaderが提供されています。
LangChainドキュメントローダーでCSVLoaderを使用する方法
CSVLoaderの使用方法は次のとおりです:
from langchain.document_loaders import CSVLoader
# ローダーを初期化する
loader = CSVLoader(file_path="path/to/your/file.csv")
# ドキュメントをロードする
documents = loader.load()
# 最初のドキュメントを表示する
print(documents[0].page_content)
デフォルトでは、CSVファイルの各行が個別のドキュメントになります。各ドキュメントのコンテンツは、行のキーと値のペアの文字列表現です。
LangChainドキュメントローダーでCSVパースをカスタマイズする方法
追加の引数を渡すことで、CSVのパース方法をカスタマイズすることができます:
loader = CSVLoader(
file_path="path/to/your/file.csv",
csv_args={
"delimiter": ",",
"quotechar": '"',
"fieldnames": ["column1", "column2", "column3"]
}
)
これにより、区切り文字、引用符、列名を明示的に指定することができます。
2. HTML LangChainドキュメントローダー
HTMLコンテンツのロードには、LangChainでは複数のオプションが用意されています。人気のある2つのオプション、UnstructuredHTMLLoaderとBSHTMLLoaderを見てみましょう。
LangChainドキュメントローダーでUnstructuredHTMLLoaderを使用する方法
このローダーは、Unstructuredライブラリを使用してHTMLをパースします:
from langchain.document_loaders import UnstructuredHTMLLoader
loader = UnstructuredHTMLLoader("path/to/your/file.html")
data = loader.load()
print(data[0].page_content[:300])
LangChainドキュメントローダーでBSHTMLLoaderを使用する方法
BSHTMLLoaderは、Beautiful Soupを使用してHTMLをパースします:
from langchain.document_loaders import BSHTMLLoader
loader = BSHTMLLoader("path/to/your/file.html")
data = loader.load()
print(data[0].page_content[:300])
BSHTMLLoaderはテキストコンテンツを抽出し、ページのタイトルをメタデータに保存します。
3. JSON LangChainドキュメントローダー
JSON(JavaScript Object Notation)は、人気のあるデータ形式です。LangChainは、JSONファイルを扱うためのJSONLoaderを提供しています。
LangChainドキュメントローダーでJSONLoaderの基本的な使用方法
JSONLoaderの単純な使用例は次のとおりです:
from langchain.document_loaders import JSONLoader
import json
# サンプルのJSONデータ
data = [
{"text": "Hello, world!", "number": 42},
{"text": "LangChain is awesome", "number": 100}
]
# JSONをファイルに書き込む
with open("sample.json", "w") as f:
json.dump(data, f)
# ローダーを初期化して使用する
loader = JSONLoader(
file_path="sample.json",
jq_schema='.[]',
text_content=False
)
documents = loader.load()
for doc in documents:
print(doc.page_content)
print(doc.metadata)
print("---")
この例では、JSON配列内の各オブジェクトを個別のドキュメントとしてロードしています。
LangChainドキュメントローダーでの高度なJSONパース
JQのようなスキーマを使用して特定のフィールドを抽出できます:
loader = JSONLoader(
file_path="sample.json",
jq_schema='.[] | {text: .text, number: .number}',
text_content=False
)
これにより、各オブジェクトから「text」と「number」フィールドのみを抽出できます。
4. Markdown LangChainドキュメントローダー
Markdownは、ドキュメント作成によく使用される軽量のマークアップ言語です。LangChainでは、Markdownファイルを扱うためのUnstructuredMarkdownLoaderが提供されています。
LangChainドキュメントローダーでUnstructuredMarkdownLoaderを使用する方法
UnstructuredMarkdownLoaderの使用方法は次のとおりです:
from langchain.document_loaders import UnstructuredMarkdownLoader
loader = UnstructuredMarkdownLoader("path/to/your/file.md")
data = loader.load()
print(data[0].page_content[:300])
このローダーはMarkdownコンテンツをパースし、一部の構造を保持したテキストを抽出します。
LangChainドキュメントローダーでの要素の保持
元のMarkdownの要素を保持したい場合は、「要素」モードを使用できます:
loader = UnstructuredMarkdownLoader("path/to/your/file.md", mode="elements")
data = loader.load()
for doc in data:
print(doc.metadata['category'])
print(doc.page_content[:100])
print("---")
これにより、Markdownコンテンツが異なる要素(タイトル、説明文など)に分割され、メタデータに保持されます。
5. DOCX/XLSX/PPTX LangChainドキュメントローダー
LangChainでは、Word、Excel、PowerPointファイルなど、Microsoft Officeドキュメントの読み込みをサポートしています。
LangChainドキュメントローダーでのWordドキュメント
Wordドキュメントの場合、Docx2txtLoaderを使用できます:
from langchain.document_loaders import Docx2txtLoader
loader = Docx2txtLoader("path/to/your/document.docx")
data = loader.load()
print(data[0].page_content[:300])
LangChainドキュメントローダーでのExcelスプレッドシート
Excelファイルの場合、UnstructuredExcelLoaderを使用できます:
from langchain.document_loaders import UnstructuredExcelLoader
loader = UnstructuredExcelLoader("path/to/your/spreadsheet.xlsx")
data = loader.load()
print(data[0].page_content[:300])
LangChainドキュメントローダーでのPowerPointプレゼンテーション
PowerPointプレゼンテーションの場合、UnstructuredPowerPointLoaderを使用できます:
from langchain.document_loaders import UnstructuredPowerPointLoader
loader = UnstructuredPowerPointLoader("path/to/your/presentation.pptx")
data = loader.load()
print(data[0].page_content[:300])
6. PDF LangChainドキュメントローダー
PDFドキュメントは、フォーマットされたドキュメントを共有するために広く使用されています。LangChainでは、PyPDFLoaderやUnstructuredPDFLoaderなど、さまざまなPDFの読み込みオプションが提供されています。
LangChainドキュメントローダーでPyPDFLoaderを使用する方法
PyPDFLoaderの使用方法は次のとおりです:
from langchain.document_loaders import PyPDFLoader
loader = PyPDFLoader("path/to/your/file.pdf")
pages = loader.load_and_split()
for page in pages[:2]: # 最初の2ページのコンテンツを表示
print(page.page_content[:300])
print("---")
このローダーはPDFの各ページを個別のドキュメントとして作成します。
LangChainドキュメントローダーでUnstructuredPDFLoaderを使用する方法
UnstructuredPDFLoaderでは、さまざまな要素の抽出など、より高度なパース機能が提供されています:
from langchain.document_loaders import UnstructuredPDFLoader
loader = UnstructuredPDFLoader("path/to/your/file.pdf", mode="elements")
data = loader.load()
for element in data[:5]: # 最初の5つの要素を表示
print(f"Type: {element.metadata['category']}")
print(element.page_content[:100])
print("---")
このローダーは、タイトル、テキストブロック、テーブルなど、PDFからさまざまな要素を抽出することができます。
LangChainドキュメントローダーの高度なテクニック
さまざまなドキュメントローダーの基本をカバーしたので、ドキュメント処理機能を強化するいくつかの高度なテクニックを見てみましょう。
LangChainドキュメントローダーで複数のローダーを組み合わせる方法
複数のソースや形式からドキュメントをロードする必要がある場合、LangChainではDirectoryLoaderを使用することで簡単に実現できます:
from langchain.document_loaders import DirectoryLoader, TextLoader, PDFLoader, CSVLoader
loader = DirectoryLoader(
'path/to/directory',
glob="**/*",
loader_cls={
".txt": TextLoader,
".pdf": PDFLoader,
".csv": CSVLoader
}
)
documents = loader.load()
このローダーは指定したディレクトリを再帰的に検索し、各ファイルタイプに適したローダーを使用します。
LangChainドキュメントローダーでのテキスト分割
長いドキュメントの場合、それをより小さなチャンクに分割することがしばしば役立ちます。LangChainでは、さまざまなテキスト分割方法が提供されています:
from langchain.text_splitter import RecursiveCharacterTextSplitter
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=1000,
chunk_overlap=200
)
split_docs = text_splitter.split_documents(documents)
これにより、ドキュメントが約1000文字のチャンクに分割され、チャンク間には200文字のオーバーラップが生じます。
LangChainドキュメントローダーでのメタデータの操作
ドキュメントのメタデータを追加または変更することができます:
from langchain.schema import Document
def add_source_to_metadata(doc):
return Document(
page_content=doc.page_content,
metadata={**doc.metadata, "source": "custom_source"}
)
processed_docs = [add_source_to_metadata(doc) for doc in documents]
これにより、各ドキュメントのメタデータに「source」フィールドが追加されます。
結論
LangChainドキュメントローダーは、さまざまな種類のドキュメントを言語モデルアプリケーションに取り込むための強力で柔軟な方法を提供しています。これらのローダーを効果的に使用する方法を理解することで、さまざまなデータソースを処理し分析することができる、より堅牢で多機能なAIパワードシステムを構築することができます。
常に最新情報や追加機能についてのLangChainドキュメントを確認するようにしてください。これらのローダーに慣れるにつれて、より複雑なドキュメント処理タスクを処理し、より洗練されたAIアプリケーションを作成することができるようになるでしょう。
すべてのAIモデルにアクセスできるオールインワン価格タグを備えたAIプラットフォームをお探しですか?
それなら、Anakin AIを見逃すことはできません!
Anakin AIは、ワークフローオートメーション向けのオールインワンプラットフォームで、使いやすいノーコードアプリビルダーで強力なAIアプリを作成できます。Llama 3、Claude、GPT-4、Uncensored LLMs、Stable Diffusionなどです。
Anakin AIで夢のアプリを数分で構築しましょう!