欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 【RAG+读代码】学术文档解析工具Nougat

【RAG+读代码】学术文档解析工具Nougat

2025/6/14 20:50:11 来源:https://blog.csdn.net/kakaZhui/article/details/148642747  浏览:    关键词:【RAG+读代码】学术文档解析工具Nougat

一、项目基本介绍

Nougat是由Meta AI Research开发的学术文档解析工具,基于Neural Optical Understanding技术,专门用于将包含复杂数学公式和表格的学术论文PDF转换为结构化Markdown格式。项目地址:https://github.com/facebookresearch/nougat

核心能力:

  • 准确解析LaTeX数学表达式和复杂表格
  • 支持跨页公式的连续识别
  • 输出兼容Mathpix Markdown规范
  • 单页处理耗时约3-5秒(GPU环境)

技术指标:

  • 基础模型参数量:1.3B
  • 最大输入分辨率:4096 tokens
  • 支持页面范围选择
  • 平均准确率:89.7%(arXiv论文测试集)

二、快速上手指南

安装与基础使用

pip install nougat-ocr
nougat path/to/paper.pdf -o output_dir --model 0.1.0-base

API服务调用

import requestsurl = "http://localhost:8503/predict/"
files = {"file": open("paper.pdf", "rb")}
response = requests.post(url, files=files)
print(response.text)  # 获取Markdown内容

处理效果示例

输入PDF片段:

| Model       | Accuracy | F1 Score |
|-------------|----------|----------|
| Baseline    | 82.3%    | 0.794    |
| Nougat-base | 89.7%    | 0.883    |

输出Markdown:

| Model       | Accuracy | F1 Score |
|-------------|----------|----------|
| Baseline    | 82.3%    | 0.794    |
| Nougat-base | 89.7%    | 0.883    |

三、核心架构设计

模型架构

采用Encoder-Decoder双塔结构:

# model.py核心类定义
class NougatModel(PreTrainedModel):def __init__(self, config):self.encoder = SwinEncoder(...)  # 视觉编码器self.decoder = BARTDecoder(...)   # 文本解码器

视觉编码器(SwinEncoder)

关键技术:

  • 动态图像预处理(自动旋转/裁剪/填充)
  • 窗口注意力机制(窗口大小7x7)
  • 四阶段特征提取:
    encoder_layer = [2, 2, 14, 2]  # 各阶段层数
    num_heads = [4, 8, 16, 32]     # 多头注意力配置
    

文本解码器(BARTDecoder)

核心特性:

  • 最大序列长度4096 tokens
  • 动态位置编码扩展:
    def resize_bart_abs_pos_emb(weight, max_length):# 线性插值扩展位置编码return F.interpolate(

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词