概要
LangChain 是一个开源框架,旨在简化与语言模型交互的应用程序的构建流程。它提供了多种加载器,可以轻松地从各种文件格式中提取数据。本文将详细介绍如何使用LangChain来加载文本、PDF、Word、Excel、CSV、HTML、Markdown 等不同格式的文件。
支持的文件类型
LangChain 支持多种文件格式的加载,以下是一些常见的文件类型及其对应的加载器:
- 文本文件
加载器:TextLoader
描述:用于加载纯文本文件。 - PDF 文件
加载器:PyPDFLoader 或 PDFMinerLoader
描述:用于加载包含清晰文本内容的PDF文件。
注意事项:默认的PDF加载器不支持处理扫描件或图像形式的PDF文件。对于这类文件,需要使用OCR技术来转换图像为文本。 - Word 文件
加载器:Docx2txtLoader 或 UnstructuredFileLoader
描述:用于加载Microsoft Word文档。 - Excel 文件
加载器:UnstructuredFileLoader
描述:用于加载Microsoft Excel文件。 - CSV 文件
加载器:CSVLoader
描述:用于加载逗号分隔值文件。 - Markdown 文件
加载器:UnstructuredFileLoader 或 MarkdownLoader
描述:用于加载Markdown格式的文件。 - 多种文件类型
加载器:DirectoryLoader
描述:用于加载目录下的多种文件类型,可以通过指定支持的文件扩展名来控制加载哪些类型的文件。
加载文件的具体方法
加载文本文件
from langchain_community.document_loaders import TextLoader
loader = TextLoader("./txt/example.txt")
documents = loader.load()
print(documents)
加载 PDF 文件
对于包含清晰文本的PDF文件
from langchain_community.document_loaders import PyPDFLoader
loader = PyPDFLoader("./pdf/example.pdf")
pages = loader.load_and_split()
print(pages)
对于扫描件或图像形式的PDF文件
如果PDF文件是扫描件或图像形式的,需要先使用OCR技术将图像转换为文本。
# 示例使用 Tesseract OCR 引擎
from PIL import Image
import pytesseract
# 加载图像
image = Image.open('./pdf/scanned_example.jpg')
# 进行OCR识别
text = pytesseract.image_to_string(image, lang='eng')
print(text)
加载 Word 文件
from langchain_community.document_loaders import Docx2txtLoader
loader = Docx2txtLoader("./docx/example.docx")
document = loader.load()
print(document)
加载 Excel 文件
from langchain_community.document_loaders import UnstructuredFileLoader
loader = UnstructuredFileLoader("./xlsx/example.xlsx")
documents = loader.load()
print(documents)
加载 CSV 文件
from langchain_community.document_loaders import CSVLoader
loader = CSVLoader(file_path="./csv/example.csv")
documents = loader.load()
print(documents)
加载 Markdown 文件
from langchain_community.document_loaders import MarkdownLoader
loader = MarkdownLoader("./md/example.md")
document = loader.load()
print(document)
处理多种文件类型
如果需要同时处理多种文件类型,可以使用DirectoryLoader。
from langchain_community.document_loaders import DirectoryLoader
loader = DirectoryLoader("./data", glob="**/*.txt,**/*.pdf,**/*.docx,**/*.xlsx,**/*.csv,**/*.md")
documents = loader.load()
print(documents)
小结
通过本文,我们学习了如何使用LangChain来加载不同格式的文件。每个加载器都有其特定的功能和用途,可以根据实际需求选择合适的加载器。希望这篇博客能为你的项目提供有用的参考。