langchain_community.document_loaders.dedoc
.DedocBaseLoader¶
- class langchain_community.document_loaders.dedoc.DedocBaseLoader(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]¶
使用dedoc (https://dedoc.readthedocs.io)的基加载器。
- 加载器允许从给定文件中提取文本、表格和附件
- 文本可以根据页面、dedoc树节点、文本行进行分割
(根据split参数)。
- (当with_attachments=True时)根据split参数分割附件。
对于附件,langchain Document对象有一个额外的元数据字段`type`=”attachment”。
- (当with_tables=True时)表格不做分割 - 每个表格对应一个
langchain Document对象。对于表格,Document对象有额外的元数据字段type`=”table”和`text_as_html,其中包含表格的HTML表示。
使用文件路径和解析参数进行初始化。
- 参数
file_path (str) – 要处理的文件路径
split (str) –
将文档分割成部分的类型(每个部分单独返回),默认值“document”:将文档文本作为单个langchain文档返回
对象(不分割)
- “page”:将文档文本分割成页面(适用于PDF、DJVU、PPTX、PPT、ODP)
- “node”:将文档文本分割成树节点(标题节点、列表节点、原始文本节点)
“line”:将文档文本分割成行
with_tables (bool) – 将表格添加到结果中 - 每个表格作为单个langchain文档对象返回
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:对于没有文本层的PDF和图片,文档的语言,
可用选项[“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:从输出结果中移除标题和页脚
- for PDF and images
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, ...])使用文件路径和解析参数进行初始化。
文档的懒加载器。
aload
()将数据加载到文档对象中。
懒加载文档。
load
()将数据加载到文档对象中。
load_and_split
([text_splitter])加载文档并将其分割成块。
- __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 [source]¶
使用文件路径和解析参数进行初始化。
- 参数
file_path (str) – 要处理的文件路径
split (str) –
将文档分割成部分的类型(每个部分单独返回),默认值“document”:将文档文本作为单个langchain文档返回
对象(不分割)
- “page”:将文档文本分割成页面(适用于PDF、DJVU、PPTX、PPT、ODP)
- “node”:将文档文本分割成树节点(标题节点、列表节点、原始文本节点)
“line”:将文档文本分割成行
with_tables (bool) – 将表格添加到结果中 - 每个表格作为单个langchain文档对象返回
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:对于没有文本层的PDF和图片,文档的语言,
可用选项[“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:从输出结果中移除标题和页脚
- for PDF and images
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] ¶
加载文档并将它们分割成块。块以Document的形式返回。
不应覆盖此方法。它应该被认为已弃用!
- 参数
text_splitter (可选[TextSplitter]) – 用于分割文档的TextSplitter实例。默认值为RecursiveCharacterTextSplitter。
- 返回
文档列表。
- 返回类型
列表[Document]