簡體   English   中英

如何使用 python 識別 pdf 中的圖形?

[英]how to recognize a graph in pdf using python?

新的 pdf 解析。

我想識別 pdf 文件中的圖形,因此我可以跳過它而不提取此類文本。 我所知道的關於 pdf 的是它是從 word 生成的(未掃描)。

輸入 - pdf,帶有這樣的圖表。 output 應該是 - 真或假

pdfplumber 可以識別表格,但似乎無法識別圖形。 嘗試識別曲線和矩形,但結果不一致。

也許還有另一種方式?

謝謝!

選項1:

(感謝@KJ 評論)我最終使用一些批量估計來了解頁面是否包含圖表。

如果頁面中有超過 MIN_RECTS,我假設那里有一個圖表(列被預測為矩形)或者如果有超過 MIN_CURVES 比有一個圖表(對我來說它是 0,但這取決於你是否有一些非 - header 或頁腳中的瑣碎形狀)。 它不是最好的,但它大部分時間都有效。

一些代碼的示例 - 之后同時使用函數和 extract_text() 會給我帶來非常好的結果。

page = pdfplumber.open("file.pdf").pages[0]

def contains_graphs(page):
  return len(page.rects) > MIN_RECTS or len(page.curves) > MIN_CURVES 

def only_chars_from_page_filter(page):
  return page.filter(lambda obj: obj["object_type"] == "char")

選項 2:

按照@G5W 的評論,可以使用 pywin32 將 PDF 轉換為 MS Word 文件以將 PDF 讀入 Word,然后僅使用 python-docx 提取文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM