You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从PDF文档中提取全部metes and bounds而非仅单个条目?

提取PDF中全部边界测量(Metes and Bounds)数据的解决方案

问题分析

你已实现PDF文本提取功能,但当前find_metes_and_bounds函数仅能提取单个边界测量条目,无法捕获完整法律文本中的所有相关数据。从提供的完整文本来看,边界测量条目通常包含方向(含方位角/方位词)、距离的结构,比如:

向南(S)00°12'55"西(W)方向行进658.37英尺
沿所述通行权向东北方向行进弦长282.52英尺

解决方案:使用正则表达式匹配所有条目

重写find_metes_and_bounds函数,通过正则表达式匹配所有符合格式的边界测量语句,实现批量提取。

修改后的完整代码

import pytesseract
from pdf2image import convert_from_path
import os
import re

def extract_text_from_pdf(pdf_path, poppler_path, tesseract_path):
    pytesseract.pytesseract.tesseract_cmd = tesseract_path
    images = convert_from_path(pdf_path, poppler_path=poppler_path)
    extracted_text = ""
    for i, image in enumerate(images):
        image_path = f'temp_image_{i}.png'
        image.save(image_path)
        text = pytesseract.image_to_string(image_path)
        extracted_text += text
        os.remove(image_path)
    
    metes_and_bounds = find_metes_and_bounds(extracted_text)
    return metes_and_bounds

def find_metes_and_bounds(text):
    # 正则表达式匹配两种类型的边界测量条目:
    # 1. 含方位角的格式:如"向南(S)00°12'55"西(W)方向行进658.37英尺"
    # 2. 仅方位词的格式:如"沿所述通行权向东北方向行进弦长282.52英尺"
    pattern = r'(向[东南西北]+(?:([NSWE]))?\s*(?:\d{1,2}°\d{1,2}\'\d{1,2}\"\s*[NSWE]([东南西北]))?\s*方向行进(?:弦长)?\s*\d+\.\d+\s*英尺|向[东南西北]+方向直线行进至.*起点)'
    matches = re.findall(pattern, text, re.DOTALL)
    # 去除匹配结果中的空字符串,整理成列表
    return [match.strip() for match in matches if match.strip()]

pdf_path = r'C:\Users\user\Desktop\U0102639.pdf'
poppler_path = r'C:\Program Files (x86)\poppler-0.68.0\bin'
tesseract_path = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

metes_and_bounds = extract_text_from_pdf(pdf_path, poppler_path, tesseract_path)

# 打印所有提取到的条目
for idx, item in enumerate(metes_and_bounds, 1):
    print(f"条目{idx}: {item}")

代码说明

  1. 正则表达式逻辑:
    • 覆盖两种边界测量格式:带方位角的精准方向描述,以及仅含方位词的模糊方向描述
    • 兼容带英文方位缩写(如(S))的格式,同时捕获包含距离的完整语句
    • 补充匹配最后一条“沿东南方向直线行进至所述除外地块的起点”这类特殊条目
  2. 结果处理:将所有匹配结果整理为非空列表,确保输出所有有效边界测量条目

预期输出

运行代码后,将提取到完整文本中的所有边界测量条目:

条目1: 向南(S)00°12'55"西(W)方向行进658.37英尺
条目2: 向南(S)89°45'44"东(E)方向行进1284.98英尺
条目3: 沿所述通行权向东北方向行进弦长282.52英尺
条目4: 向北(N)73°54'04"西(W)方向行进约1432.68英尺
条目5: 向南(S)00°12'55"西(W)方向行进658.37英尺
条目6: 向南(S)89°45'44"东(E)方向行进1284.98英尺
条目7: 向北(N)89°45'54"西(W)方向行进200英尺
条目8: 向北(N)11°35'44"西(W)方向行进75英尺
条目9: 沿东南方向直线行进至所述除外地块的起点

内容的提问来源于stack exchange,提问作者Mason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 23:50:35