Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan Python untuk NLP untuk memproses data jadual dalam fail PDF?

Bagaimana untuk menggunakan Python untuk NLP untuk memproses data jadual dalam fail PDF?

PHPz
PHPzasal
2023-09-27 15:04:47888semak imbas

如何利用Python for NLP处理PDF文件中的表格数据?

Bagaimana untuk menggunakan Python untuk NLP untuk memproses data jadual dalam fail PDF?

Abstrak: Pemprosesan Bahasa Semulajadi (NLP) ialah bidang penting yang melibatkan sains komputer dan kecerdasan buatan, dan memproses data jadual dalam fail PDF adalah tugas biasa dalam NLP. Artikel ini akan memperkenalkan cara menggunakan Python dan beberapa perpustakaan yang biasa digunakan untuk memproses data jadual dalam fail PDF, termasuk mengekstrak data jadual, prapemprosesan data dan penukaran.

Kata kunci: Python, NLP, PDF, data jadual

1 Pengenalan

Dengan perkembangan teknologi, fail PDF telah menjadi dokumen biasa. format. Dalam fail PDF ini, data jadual digunakan secara meluas dalam pelbagai bidang, termasuk kewangan, penjagaan perubatan dan analisis data. Oleh itu, cara mengekstrak dan memproses data jadual ini daripada fail PDF telah menjadi isu popular.

Python ialah bahasa pengaturcaraan berkuasa yang menyediakan set perpustakaan dan alatan yang kaya untuk menyelesaikan pelbagai masalah. Dalam bidang NLP, Python mempunyai banyak perpustakaan yang sangat baik, seperti PDFMiner, Tabula, dan Pandas, dll. Perpustakaan ini boleh membantu kami memproses data jadual dalam fail PDF.

2. Pasang perpustakaan

Sebelum kita mula menggunakan Python untuk memproses data jadual dalam fail PDF, kita perlu memasang beberapa perpustakaan yang diperlukan. Kita boleh menggunakan pengurus pakej pip untuk memasang perpustakaan ini. Buka tetingkap terminal atau baris arahan dan masukkan arahan berikut:

pip install pdfminer.six
pip install tabula-py
pip install pandas

3. Ekstrak data jadual

Pertama, kita perlu mengekstrak data jadual dalam fail PDF. Kita boleh menggunakan perpustakaan PDFMiner untuk mencapai fungsi ini. Berikut ialah contoh kod yang menggunakan perpustakaan PDFMiner untuk mengekstrak data jadual:

import pdfminer
import io
from pdfminer.converter import TextConverter
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage

def extract_text_from_pdf(pdf_path):
    resource_manager = PDFResourceManager()
    output_string = io.StringIO()
    laparams = LAParams()
    with TextConverter(resource_manager, output_string, laparams=laparams) as converter:
        with open(pdf_path, 'rb') as file:
            interpreter = PDFPageInterpreter(resource_manager, converter)
            for page in PDFPage.get_pages(file):
                interpreter.process_page(page)
    
    text = output_string.getvalue()
    output_string.close()
    return text

pdf_path = "example.pdf"
pdf_text = extract_text_from_pdf(pdf_path)
print(pdf_text)

Dalam contoh ini, kami mula-mula mencipta objek PDFResourceManager dan TextConverter kod >objek dan beberapa objek lain yang diperlukan. Kami kemudian membuka fail PDF dan menggunakan <code>PDFPageInterpreter untuk mentafsir halaman fail demi halaman. Akhir sekali, kami menyimpan data teks yang diekstrak dalam pembolehubah dan mengembalikannya. PDFResourceManager对象、一个TextConverter对象以及一些其他必要的对象。然后,我们打开PDF文件并使用PDFPageInterpreter逐页解释文件。最后,我们将提取的文本数据存储在一个变量中并返回。

四、数据预处理

在提取表格数据后,我们需要进行一些数据预处理,以便更好地处理这些数据。常见的预处理任务包括去除空格、清洗数据、处理缺失值等。这里我们使用Pandas库来进行数据预处理。

下面是一个使用Pandas库进行数据预处理的示例代码:

import pandas as pd

def preprocess_data(data):
    df = pd.DataFrame(data)
    df = df.applymap(lambda x: x.strip())
    df = df.dropna()
    df = df.reset_index(drop=True)
    
    return df

data = [
    ["Name", "Age", "Gender"],
    ["John", "25", "Male"],
    ["Lisa", "30", "Female"],
    ["Mike", "28", "Male"],
]

df = preprocess_data(data)
print(df)

在这个示例中,我们首先将提取的数据存储在一个二维列表中。然后,我们创建一个Pandas的DataFrame对象,并对其进行一系列预处理操作,包括去除空格、清洗数据、处理缺失值。最后,我们将预处理后的数据打印出来。

五、数据转换

在进行了数据预处理之后,我们可以将表格数据转换为其他常见的数据结构,如JSON、CSV或Excel。下面是一个使用Pandas库将数据转换为CSV文件的示例代码:

def convert_data_to_csv(df, csv_path):
    df.to_csv(csv_path, index=False)

csv_path = "output.csv"
convert_data_to_csv(df, csv_path)

在这个示例中,我们使用Pandas的to_csv()

4. Prapemprosesan data

Selepas mengekstrak data jadual, kami perlu melakukan beberapa prapemprosesan data untuk memproses data dengan lebih baik. Tugas prapemprosesan biasa termasuk mengalih keluar ruang, membersihkan data, mengendalikan nilai yang hilang, dsb. Di sini kami menggunakan perpustakaan Pandas untuk prapemprosesan data.

Berikut ialah kod sampel untuk prapemprosesan data menggunakan pustaka Pandas:

rrreee

Dalam contoh ini, kami mula-mula menyimpan data yang diekstrak dalam senarai dua dimensi. Kemudian, kami mencipta objek Pandas DataFrame dan melakukan satu siri operasi prapemprosesan padanya, termasuk mengalih keluar ruang, membersihkan data dan mengendalikan nilai yang hilang. Akhir sekali, kami mencetak data yang telah diproses.

5. Penukaran data
  1. Selepas prapemprosesan data, kami boleh menukar data jadual kepada struktur data biasa yang lain, seperti JSON, CSV atau Excel. Berikut ialah kod sampel yang menggunakan pustaka Pandas untuk menukar data kepada fail CSV: fail dan simpannya dalam laluan yang ditentukan.
  2. 6. Ringkasan
  3. Melalui pengenalan artikel ini, kami telah mempelajari cara menggunakan Python dan beberapa perpustakaan yang biasa digunakan untuk memproses data jadual dalam fail PDF. Kami mula-mula menggunakan perpustakaan PDFMiner untuk mengekstrak data teks dalam fail PDF, dan kemudian menggunakan pustaka Pandas untuk mempraproses dan mengubah data yang diekstrak.
  4. Sudah tentu, data jadual dalam fail PDF mungkin mempunyai struktur dan format yang berbeza, yang memerlukan kami membuat pelarasan dan pemprosesan yang sesuai mengikut situasi tertentu. Saya harap artikel ini telah memberi anda sedikit bantuan dan panduan dalam memproses data jadual dalam fail PDF.
Rujukan: #🎜🎜##🎜🎜##🎜🎜#https://realpython.com/pdf-python/#🎜🎜##🎜🎜#https://pandas.pydata . org/#🎜🎜##🎜🎜#https://pdfminer-docs.readthedocs.io/#🎜🎜##🎜🎜#https://tabula-py.readthedocs.io/#🎜🎜##🎜🎜 #

Atas ialah kandungan terperinci Bagaimana untuk menggunakan Python untuk NLP untuk memproses data jadual dalam fail PDF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn