Skip to content

[Python] 使用 python-pptx 套件抽取 PPT 中的文字

Last Updated on 2023-07-20 by Clay

Introduction

最近在處理一些工作上的事情時,發現客戶可能有潛在性的『需要從 PPT 中抽取文字』的需求 —— 我詢問過 PM 和主管,他們表示讓客戶自己手動複製 PPT 簡報中的文字出來就好。除非客戶有想到,然後對我們提出使用程式抽取出來的要求。

但是一來嘛我覺得這個任務或許並不是那麼地難(去年可是做了一個同樣是 PPT 抽取資訊的,但還是抽不同顏色標籤的功能),二來嘛我怕當客戶真的提出這個要求時我手邊的事情全部都撞在一起,那可不好。

所以我就研究了一下該如何做到這件事,發現早就已經有這個套件了,我們只需要安裝一下,然後跑跑範例程式碼,PPT 簡報中的文字就會被直接抽取出來囉。

我們唯一可能要多做的,就是根據我們不同的要求做些後處理就是了。


Installation

首先,自然是使用 pip 指令安裝 python-pptx 函式庫。

pip3 install python-pptx

使用方法

使用方法如下,有一些程式基礎的人來說想必可以閱讀得很輕鬆。

from pptx import Presentation


defget_text_from_pptx(file_path: str) -> str:
    presentation = Presentation(file_path)
    text = []
    
    for slide in presentation.slides:
        for shape in slide.shapes:
            if shape.has_text_frame:
                for paragraph in shape.text_frame.paragraphs:
                    for run in paragraph.runs:
                        text.append(run.text)

    return" ".join(text)


defmain() -> None:
    text = get_text_from_pptx("./raw_data/clay.pptx")
    print(text)

if __name__ == "__main__":
    main()



Output:

– Text Summarization Long short-term memory, Gated Recurrent Unit, TextCNN Extractive summarization, Abstractive summarization Sequence to Sequence

這個 PPT 檔案是我自己隨便製作的樣本,可以看到文字資訊已經被成功抽出來了。


References


Read More

Tags:

Leave a Reply