Heim > Artikel > Backend-Entwicklung > Wie extrahiere ich mit Python für NLP strukturierte Textdaten aus PDF-Dateien?
Wie extrahiere ich strukturierte Textdaten aus PDF-Dateien mit Python für NLP?
Einleitung:
Natürliche Sprachverarbeitung (NLP) ist einer der wichtigen Zweige im Bereich der künstlichen Intelligenz. Ihr Ziel ist es, Computer in die Lage zu versetzen, menschliche Sprache zu verstehen und zu verarbeiten. Textdaten sind die Kernressource von NLP. Daher ist die Extraktion strukturierter Textdaten aus verschiedenen Quellen zu einer grundlegenden Aufgabe von NLP geworden. PDF-Dateien sind ein gängiges Dokumentformat. In diesem Artikel wird erläutert, wie Sie Python für NLP verwenden und strukturierte Textdaten aus PDF-Dateien extrahieren.
Schritt 1: Abhängige Bibliotheken installieren
Zuerst müssen wir einige notwendige Python-Bibliotheken installieren, um PDF-Dateien zu verarbeiten. Unter ihnen ist die PyPDF2-Bibliothek die wichtigste, die uns beim Lesen und Analysieren von PDF-Dateien helfen kann. Die PyPDF2-Bibliothek kann mit dem folgenden Befehl installiert werden:
pip install PyPDF2
Schritt 2: PDF-Datei lesen
Bevor wir beginnen, müssen wir eine Beispiel-PDF-Datei zur Demonstration vorbereiten. Angenommen, unsere Beispiel-PDF-Datei heißt „sample.pdf“. Als nächstes verwenden wir die PyPDF2-Bibliothek, um PDF-Dateien zu lesen, wie unten gezeigt:
import PyPDF2 filename = "sample.pdf" # 打开PDF文件 pdf_file = open(filename, 'rb') # 创建一个PDF阅读器 pdf_reader = PyPDF2.PdfReader(pdf_file) # 获取PDF文件中的页数 num_pages = pdf_reader.numPages # 逐页提取文本 text_data = [] for page in range(num_pages): page_obj = pdf_reader.getPage(page) text_data.append(page_obj.extractText()) # 关闭PDF文件 pdf_file.close()
Im obigen Code öffnen wir zuerst die PDF-Datei und erstellen dann einen PDF-Reader mit der PyPDF2-Bibliothek. Danach erhalten wir die Seitenzahl der PDF-Datei und verwenden eine Schleife, um den Textinhalt Seite für Seite zu extrahieren und die extrahierten Textdaten in einer Liste zu speichern. Denken Sie abschließend daran, die PDF-Datei zu schließen.
Schritt 3: Textdaten bereinigen
Die aus PDF-Dateien extrahierten Textdaten enthalten häufig eine große Anzahl von Leerzeichen und anderen irrelevanten Sonderzeichen. Daher müssen wir die Textdaten bereinigen und vorverarbeiten, bevor wir mit dem nächsten Schritt fortfahren. Hier ist ein Beispiel für eine einfache Textbereinigungsfunktion:
import re def clean_text(text): # 去除多余的空白字符 text = re.sub('s+', ' ', text) # 去除特殊字符 text = re.sub('[^A-Za-z0-9]+', ' ', text) return text # 清理文本数据 cleaned_text_data = [] for text in text_data: cleaned_text = clean_text(text) cleaned_text_data.append(cleaned_text)
Im obigen Code verwenden wir zunächst reguläre Ausdrücke, um zusätzliche Leerzeichen zu entfernen, und entfernen dann Sonderzeichen. Natürlich kann die Textreinigungsmethode an die tatsächliche Situation angepasst werden.
Schritt 4: Weiterverarbeitung der Textdaten
In den obigen Schritten haben wir die strukturierten Textdaten aus der PDF-Datei extrahiert und eine einfache Bereinigung durchgeführt. Abhängig von den spezifischen Anwendungsanforderungen müssen wir jedoch möglicherweise eine weitere Textverarbeitung durchführen. Hier stellen wir kurz zwei gängige Textverarbeitungsaufgaben vor: Worthäufigkeitsstatistik und Schlüsselwortextraktion.
Worthäufigkeitsstatistik:
Worthäufigkeitsstatistik ist eine der häufigsten Aufgaben im NLP und ihr Zweck besteht darin, zu zählen, wie oft jedes Wort im Text vorkommt. Das Folgende ist ein einfaches Beispiel für eine Worthäufigkeitsstatistik:
from collections import Counter # 将文本数据拼接为一个字符串 combined_text = ' '.join(cleaned_text_data) # 分词 words = combined_text.split() # 统计词频 word_freq = Counter(words) # 打印出现频率最高的前10个词语 print(word_freq.most_common(10))
Schlüsselwortextraktion:
Die Schlüsselwortextraktion ist eine wichtige Aufgabe im NLP und ihr Zweck besteht darin, die repräsentativsten Schlüsselwörter aus Textdaten zu extrahieren. In Python können wir die textrank4zh-Bibliothek zur Schlüsselwortextraktion verwenden. Das Beispiel lautet wie folgt:
from textrank4zh import TextRank4Keyword # 创建TextRank4Keyword对象 tr4w = TextRank4Keyword() # 提取关键词 tr4w.analyze(text=combined_text, lower=True, window=2) # 打印关键词 for item in tr4w.get_keywords(10, word_min_len=2): print(item.word)
Im obigen Code erstellen wir zuerst ein TextRank4Keyword-Objekt und rufen dann die Methode „analysate()“ auf, um Schlüsselwörter zu extrahieren. Danach können wir die angegebene Anzahl von Schlüsselwörtern über die Methode get_keywords() abrufen. Der Standardwert sind die ersten 10 Schlüsselwörter.
Fazit:
In diesem Artikel wird erläutert, wie Sie Python für die Verarbeitung natürlicher Sprache (NLP) verwenden und strukturierte Textdaten aus PDF-Dateien extrahieren. Wir haben die PyPDF2-Bibliothek zum Lesen und Analysieren von PDF-Dateien verwendet und anschließend eine einfache Textbereinigung und Vorverarbeitung durchgeführt. Schließlich haben wir auch die Durchführung von Worthäufigkeitsstatistiken und die Schlüsselwortextraktion vorgestellt. Ich glaube, dass Leser durch die Einleitung dieses Artikels lernen können, wie man strukturierte Textdaten aus PDF-Dateien extrahiert und sie weiter auf Aufgaben der Verarbeitung natürlicher Sprache anwendet.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich mit Python für NLP strukturierte Textdaten aus PDF-Dateien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!