langchain_community.document_loaders.dedoc
.DedocFileLoader¶
- class langchain_community.document_loaders.dedoc.DedocFileLoader(file_path: str, *, split: str = 'document', with_tables: bool = True, with_attachments: Union[str, bool] = False, recursion_deep_attachments: int = 10, pdf_with_text_layer: str = 'auto_tabby', language: str = 'rus+eng', pages: str = ':', is_one_column_document: str = 'auto', document_orientation: str = 'auto', need_header_footer_analysis: Union[str, bool] = False, need_binarization: Union[str, bool] = False, need_pdf_table_analysis: Union[str, bool] = True, delimiter: Optional[str] = None, encoding: Optional[str] = None)[source]¶
DedocFileLoader 是一个用于通过 dedoc 加载文件的文档加载器集成。
文件加载器会自动检测文件类型(带有正确的扩展名)。支持的文件类型列表可以在 https://dedoc.readthedocs.io/en/latest/index.html#id1 查看。有关详细信息,请参阅 DedocBaseLoader 文档。
- 设置
安装
dedoc
包。pip install -U dedoc
- 实例化
from langchain_community.document_loaders import DedocFileLoader loader = DedocFileLoader( file_path="example.pdf", # split=..., # with_tables=..., # pdf_with_text_layer=..., # pages=..., # ... )
- 加载
docs = loader.load() print(docs[0].page_content[:100]) print(docs[0].metadata)
Some text { 'file_name': 'example.pdf', 'file_type': 'application/pdf', # ... }
- 懒加载
docs = [] docs_lazy = loader.lazy_load() for doc in docs_lazy: docs.append(doc) print(docs[0].page_content[:100]) print(docs[0].metadata)
Some text { 'file_name': 'example.pdf', 'file_type': 'application/pdf', # ... }
使用文件路径和解析参数初始化。
- 参数
file_path (str) – 要处理的文件路径
split (str) –
文档拆分成部分(每部分单独返回),默认值“document”;“document”:将文档文本作为单个langchain Document返回
对象(不要拆分)
- “page”:将文档文本拆分成页面(适用于PDF、DJVU、PPTX、PPT、ODP)
- “node”:将文档文本拆分成树节点(标题节点、列表项节点、纯文本节点)
“line”:将文档文本拆分成行
with_tables(bool)-向结果中添加表格 - 每个表格都作为单个langchain Document对象返回
dedoc(用于通过dedoc解析文档的参数)-
(https://dedoc.readthedocs.io/en/latest/parameters/parameters.html)
with_attachments:启用附件提取;recursion_deep_attachments:附件的递归深度,仅在with_attachments==True时生效
提取
- pdf_with_text_layer:解析PDF文档的处理程序类型,
可用选项[“true”,“false”,“tabby”,“auto”,“auto_tabby”(默认)]
- language:无文本层的文档和图片的语言,可用选项[“eng”,“rus”,“rus+eng”(默认)],语言列表可以扩展,请参阅https://dedoc.readthedocs.io/en/latest/tutorials/add_new_language.html
pages:解析PDF文档的阅读范围页码切片
is_one_column_document:无文本层和图片的PDF的列数检测,可用选项[“true”,“false”,“auto”(默认)]
- document_orientation:固定无文本层和图片的PDF方向(90,180,270度)
可用选项[“auto”(默认),“no_change”]
- need_header_footer_analysis:从解析PDF和图片的结果中删除页眉和页脚
- need_binarization:清洁无文本层和图片的PDF的页面背景(二值化)
- need_pdf_table_analysis:解析无文本层和图片的PDF的表格
delimiter:CSV、TSV文件的列分隔符
with_attachments(Union[str, bool])-
recursion_deep_attachments(int)-
pdf_with_text_layer(str)-
language(str)-
pages(str)-
is_one_column_document(str)-
document_orientation(str)-
need_header_footer_analysis(Union[str, bool])-
need_binarization(Union[str, bool])-
need_pdf_table_analysis(Union[str, bool])-
delimiter(Optional[str])-
encoding(Optional[str])-
方法
__init__
(file_path, *[, split, with_tables, ...])使用文件路径和解析参数初始化。
Documents的懒加载器。
aload
()将数据加载到Document对象中。
懒加载文档。
load
()将数据加载到Document对象中。
load_and_split
([text_splitter])加载Documents并将其拆分为块。
- __init__(file_path: str, *, split: str = 'document', with_tables: bool = True, with_attachments: Union[str, bool] = False, recursion_deep_attachments: int = 10, pdf_with_text_layer: str = 'auto_tabby', language: str = 'rus+eng', pages: str = ':', is_one_column_document: str = 'auto', document_orientation: str = 'auto', need_header_footer_analysis: Union[str, bool] = False, need_binarization: Union[str, bool] = False, need_pdf_table_analysis: Union[str, bool] = True, delimiter: Optional[str] = None, encoding: Optional[str] = None) None ¶
使用文件路径和解析参数初始化。
- 参数
file_path (str) – 要处理的文件路径
split (str) –
文档拆分成部分(每部分单独返回),默认值“document”;“document”:将文档文本作为单个langchain Document返回
对象(不要拆分)
- “page”:将文档文本拆分成页面(适用于PDF、DJVU、PPTX、PPT、ODP)
- “node”:将文档文本拆分成树节点(标题节点、列表项节点、纯文本节点)
“line”:将文档文本拆分成行
with_tables(bool)-向结果中添加表格 - 每个表格都作为单个langchain Document对象返回
dedoc(用于通过dedoc解析文档的参数)-
(https://dedoc.readthedocs.io/en/latest/parameters/parameters.html)
with_attachments:启用附件提取;recursion_deep_attachments:附件的递归深度,仅在with_attachments==True时生效
提取
- pdf_with_text_layer:解析PDF文档的处理程序类型,
可用选项[“true”,“false”,“tabby”,“auto”,“auto_tabby”(默认)]
- language:无文本层的文档和图片的语言,可用选项[“eng”,“rus”,“rus+eng”(默认)],语言列表可以扩展,请参阅https://dedoc.readthedocs.io/en/latest/tutorials/add_new_language.html
pages:解析PDF文档的阅读范围页码切片
is_one_column_document:无文本层和图片的PDF的列数检测,可用选项[“true”,“false”,“auto”(默认)]
- document_orientation:固定无文本层和图片的PDF方向(90,180,270度)
可用选项[“auto”(默认),“no_change”]
- need_header_footer_analysis:从解析PDF和图片的结果中删除页眉和页脚
- need_binarization:清洁无文本层和图片的PDF的页面背景(二值化)
- need_pdf_table_analysis:解析无文本层和图片的PDF的表格
delimiter:CSV、TSV文件的列分隔符
with_attachments(Union[str, bool])-
recursion_deep_attachments(int)-
pdf_with_text_layer(str)-
language(str)-
pages(str)-
is_one_column_document(str)-
document_orientation(str)-
need_header_footer_analysis(Union[str, bool])-
need_binarization(Union[str, bool])-
need_pdf_table_analysis(Union[str, bool])-
delimiter(Optional[str])-
encoding(Optional[str])-
- 返回类型
None
- load_and_split(text_splitter: Optional[TextSplitter] = None) List[Document]¶
加载文档并将其分割成块。块以文档的形式返回。
不要重写此方法。应将其视为已废弃!
- 参数
text_splitter (可选[TextSplitter]) – 用于分割文档的 TextSplitter 实例。默认为 RecursiveCharacterTextSplitter。
- 返回
文档列表。
- 返回类型
List[文档]