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?
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()
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 dataAtas 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!