Wie verwende ich Python für NLP, um Tabellendaten in PDF-Dateien zu verarbeiten?
Zusammenfassung: Die Verarbeitung natürlicher Sprache (NLP) ist ein wichtiger Bereich der Informatik und künstlichen Intelligenz, und die Verarbeitung tabellarischer Daten in PDF-Dateien ist eine häufige Aufgabe im NLP. In diesem Artikel wird erläutert, wie Sie mit Python und einigen häufig verwendeten Bibliotheken Tabellendaten in PDF-Dateien verarbeiten, einschließlich der Extraktion von Tabellendaten, der Datenvorverarbeitung und -konvertierung.
Schlüsselwörter: Python, NLP, PDF, tabellarische Daten
1. Einführung
Mit der Entwicklung der Technologie sind PDF-Dateien zu einem gängigen Dokumentformat geworden. In diesen PDF-Dateien werden tabellarische Daten häufig in verschiedenen Bereichen verwendet, darunter Finanzen, medizinische Versorgung und Datenanalyse. Daher ist die Frage, wie man diese tabellarischen Daten aus PDF-Dateien extrahiert und verarbeitet, zu einem beliebten Thema geworden.
Python ist eine leistungsstarke Programmiersprache, die umfangreiche Bibliotheken und Tools zur Lösung verschiedener Probleme bereitstellt. Im Bereich NLP verfügt Python über viele hervorragende Bibliotheken wie PDFMiner, Tabula und Pandas usw. Diese Bibliotheken können uns bei der Verarbeitung tabellarischer Daten in PDF-Dateien helfen.
2. Bibliotheken installieren
Bevor wir Python zur Verarbeitung tabellarischer Daten in PDF-Dateien verwenden, müssen wir einige notwendige Bibliotheken installieren. Wir können den Pip-Paketmanager verwenden, um diese Bibliotheken zu installieren. Öffnen Sie ein Terminal- oder Befehlszeilenfenster und geben Sie den folgenden Befehl ein:
pip install pdfminer.six pip install tabula-py pip install pandas
3. Tabellendaten extrahieren
Zuerst müssen wir die Tabellendaten in der PDF-Datei extrahieren. Wir können die PDFMiner-Bibliothek verwenden, um diese Funktionalität zu erreichen. Hier ist ein Beispielcode zum Extrahieren von Tabellendaten mithilfe der PDFMiner-Bibliothek:
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)
In diesem Beispiel erstellen wir zunächst ein PDFResourceManager
-Objekt, ein TextConverter
-Objekt und einige andere notwendige Objekte . Anschließend öffnen wir die PDF-Datei und verwenden PDFPageInterpreter
, um die Datei Seite für Seite zu interpretieren. Schließlich speichern wir die extrahierten Textdaten in einer Variablen und geben sie zurück. 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
In diesem Beispiel speichern wir die extrahierten Daten zunächst in einer zweidimensionalen Liste. Anschließend erstellen wir ein Pandas DataFrame-Objekt und führen eine Reihe von Vorverarbeitungsvorgängen daran durch, darunter das Entfernen von Leerzeichen, das Bereinigen von Daten und die Behandlung fehlender Werte. Abschließend drucken wir die vorverarbeiteten Daten aus. 5. Datenkonvertierungto_csv()
von Pandas, um die Daten in eine CSV-Datei zu konvertieren und dort zu speichern den angegebenen Pfad. Das obige ist der detaillierte Inhalt vonWie verwende ich Python für NLP, um Tabellendaten in PDF-Dateien zu verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!