LaTeX_图表上下文提取
更新时间:2026-07-29
简介
LatexFigureContextExtractor 从 LaTeX 源码中抽取图表的 caption、label、图片路径及其引用段落。
功能描述
• 解析 figure / wrapfigure 环境、子图(subfigure/subfloat)、minipage 等结构,抽取 caption、label 与 \includegraphics 图片路径。
• 按 citation_commands 匹配引用命令(如 \ref / \cref),回溯定位引用该图 label 的段落作为上下文。
• 一行 LaTeX 源码可 fan-out 出多张图,聚合为一行的图 struct 列表返回(列式 1 进 1 出),无图样本返回空列表。
算子参数
输入
| 输入 | 含义 |
|---|---|
| text | 完整的 LaTeX 源码字符串 |
输出
| 输出 | 含义 |
|---|---|
| result | 类型 list<struct{images: list<large_string>, caption, label, citing_paragraphs: list<large_string>, parent_caption, parent_label}>;每个元素对应一张图及其引用上下文,无图返回空列表 |
参数
| 参数名称 | 类型 | 默认值 | 描述 | |
|---|---|---|---|---|
| citation_commands | list |None | None | 引用命令列表;None 时默认 [r"\ref", r"\cref", r"\Cref", r"\autoref"],用于匹配引用图 label 的段落 |
|
| paragraph_separator | str | "\n\n" | 段落分隔符,用于将去环境后的正文切分为段落 |
调用示例
Python
1from __future__ import annotations
2
3import os
4
5import daft
6from daft import col
7
8from daft.aihc.common.udf import aihc_udf
9from daft.aihc.functions.text.latex_figure_context_extractor import LatexFigureContextExtractor
10
11if __name__ == "__main__":
12 if os.getenv("DAFT_RUNNER", "native") == "ray":
13 import ray
14
15 ray.init(ignore_reinit_error=True)
16 daft.set_runner_ray()
17 daft.set_execution_config(actor_udf_ready_timeout=6000, min_cpu_per_task=0)
18
19 latex = r"""
20 As shown in Figure~\ref{fig:demo}, the result is good.
21 \begin{figure}
22 \includegraphics{demo.png}
23 \caption{A demo figure.}
24 \label{fig:demo}
25 \end{figure}
26 """
27 samples = {"text": [latex]}
28 ds = daft.from_pydict(samples)
29 ds = ds.with_column(
30 "figures",
31 aihc_udf(
32 LatexFigureContextExtractor,
33 construct_args={},
34 num_cpus=1,
35 concurrency=1,
36 batch_size=1,
37 )(col("text")),
38 )
39 ds.show()
评价此篇文章
