Wenn du dich bereits mit einigen Programmiersprachen auseinandergesetzt hast, ist dir der Begriff „Text-Parsing“ möglicherweise schon begegnet. Er wird verwendet, um komplexe Datenwerte in Dateien zu vereinfachen. Dieser Artikel zeigt dir, wie du Text mithilfe von Programmiersprachen analysieren kannst. Solltest du beim Parsen von Text auf Fehler stoßen, erfährst du hier auch, wie du diese beheben kannst.
Textanalyse: Eine Einführung
In diesem Artikel bieten wir dir eine umfassende Anleitung zum Parsen von Text auf unterschiedliche Weisen. Darüber hinaus geben wir eine kurze Einführung in das Konzept des Text-Parsings.
Was versteht man unter Textanalyse?
Bevor du dich mit der konkreten Analyse von Text mithilfe von Code beschäftigst, ist es wichtig, die grundlegenden Konzepte der jeweiligen Sprache und des Codings zu verstehen.
NLP: Verarbeitung natürlicher Sprache
Um Text zu analysieren, wird die Verarbeitung natürlicher Sprache (Natural Language Processing, NLP) eingesetzt. NLP ist ein Teilbereich der künstlichen Intelligenz. Die Programmiersprache Python, die in diese Kategorie fällt, wird häufig für die Textanalyse verwendet.
NLP-Codes ermöglichen es Computern, menschliche Sprache zu verstehen und zu verarbeiten. Dadurch können sie für vielfältige Anwendungen genutzt werden. Um maschinelle Lerntechniken (ML) auf Sprache anzuwenden, müssen unstrukturierte Textdaten in strukturierte Tabellendaten umgewandelt werden. Für das eigentliche Parsen wird oft Python verwendet, um die entsprechenden Programmcodes zu modifizieren.
Die Definition von Text-Parsing
Text-Parsing bedeutet im Grunde, Daten von einem Format in ein anderes zu konvertieren. Das Format, in dem eine Datei gespeichert ist, muss geparst oder in ein anderes Format umgewandelt werden. So kann der Benutzer sie in unterschiedlichen Anwendungen nutzen.
- Anders ausgedrückt: Beim Parsing wird eine Zeichenkette oder ein Text in logische Komponenten zerlegt, wobei das Dateiformat geändert wird.
- Bestimmte Regeln der Programmiersprache Python werden verwendet, um diese Programmieraufgabe zu bewältigen. Beim Text-Parsing wird die vorliegende Textsequenz in kleinere Teile zerlegt.
Warum ist Text-Parsing notwendig?
Es gibt verschiedene Gründe, warum Text geparst werden muss. Diese werden in diesem Abschnitt erläutert. Ein Verständnis dafür ist wichtig, bevor du lernst, wie Text geparst wird.
- Computerdaten liegen nicht alle im gleichen Format vor. Sie können je nach Anwendung variieren.
- Datenformate sind für verschiedene Anwendungen unterschiedlich. Inkompatibler Code führt zu Fehlern.
- Es gibt kein universelles Computerprogramm, das alle Datenformate verarbeiten kann.
Methode 1: Verwendung der DataFrame-Klasse
Die DataFrame-Klasse in Python bietet alle notwendigen Funktionen, um Text zu parsen. Diese integrierte Bibliothek enthält Code, um Daten beliebigen Formats in ein anderes zu konvertieren.
Kurze Einführung in die DataFrame-Klasse
Die DataFrame-Klasse ist eine umfassende Datenstruktur, die als Datenanalysewerkzeug dient. Sie ist ein leistungsstarkes Tool, mit dem Daten mit wenig Aufwand analysiert werden können.
- Der Code wird in ein Pandas DataFrame eingelesen, um die Analyse mit Python durchzuführen.
- Die Klasse enthält zahlreiche von Pandas bereitgestellte Pakete, die von Python-Datenanalysten verwendet werden.
- Ein Merkmal dieser Klasse ist Abstraktion: Die interne Funktionsweise der Funktion ist vor den Nutzern der NumPy-Bibliothek verborgen. NumPy ist eine Python-Bibliothek mit Befehlen und Funktionen zur Arbeit mit Arrays.
- Mit der DataFrame-Klasse kann ein zweidimensionales Array mit mehreren Zeilen- und Spaltenindizes dargestellt werden. Diese Indizes helfen bei der Speicherung mehrdimensionaler Daten und werden daher MultiIndex genannt. Diese müssen ggf. angepasst werden, um Parsing-Fehler zu vermeiden.
Die Pandas-Bibliothek von Python unterstützt SQL- oder Datenbankoperationen mit hoher Präzision, um Fehler beim Parsen von Text zu vermeiden. Sie enthält auch IO-Tools, die bei der Analyse von Dateien in CSV, MS Excel, JSON, HDF5 und anderen Formaten helfen.
Text-Parsing mit der DataFrame-Klasse
Um zu verstehen, wie Text geparst wird, kannst du den Standardprozess mit der DataFrame-Klasse nutzen, wie im Folgenden erläutert:
- Analysiere das Datenformat der Eingabedaten.
- Definiere das Ausgabeformat der Daten, z.B. als CSV-Datei (Comma Separated Value).
- Schreibe den Code mit primitiven Datentypen wie List oder Dict.
Hinweis: Das Schreiben von Code in ein leeres DataFrame kann aufwendig und komplex sein. Pandas ermöglicht die Erstellung von Daten in der DataFrame-Klasse aus den genannten Datentypen. Somit können Daten im primitiven Datentyp leicht in das gewünschte Format geparst werden.
- Analysiere die Daten mit dem Pandas DataFrame und gib das Ergebnis aus.
Option I: Standardformat
Hier wird die Standardmethode zum Formatieren einer Datei mit einem bestimmten Format wie CSV erläutert.
- Speichere die Datei mit den Datenwerten lokal auf deinem PC, z.B. als data.txt.
- Importiere die Datei in Pandas mit einem bestimmten Namen und importiere die Daten in eine andere Variable. In dem Code wird Pandas beispielsweise unter dem Namen „pd“ importiert.
- Der Import sollte den vollständigen Code enthalten, einschließlich des Namens der Eingabedatei, der Funktion und des Formats.
Hinweis: In diesem Fall wird die Variable „res“ verwendet, um die Lesefunktion für die Daten in der Datei „data.txt“ auszuführen, wobei die in „pd“ importierten Pandas genutzt werden. Das Datenformat des Eingabetextes wird als CSV angegeben.
- Rufe den Dateityp auf und analysiere den geparsten Text. Beispielsweise gibt der Befehl „res“ nach der Ausführung den geparsten Text aus.
Ein Beispielcode für den oben genannten Prozess ist unten angegeben und hilft zu verstehen, wie Text geparst wird.
import pandas as pd res = pd.read_csv('data.txt') res
Wenn du in diesem Fall die Datenwerte z.B. als [1,2,3] in die Datei „data.txt“ eingibst, wird diese als 1 2 3 geparst und angezeigt.
Option II: String-Methode
Wenn der an den Code übergebene Text nur Zeichenketten oder Buchstaben enthält, können Sonderzeichen wie Kommas oder Leerzeichen genutzt werden, um den Text zu trennen und zu parsen. Der Prozess ähnelt den internen String-Operationen. Um herauszufinden, wie du Parsing-Fehler beheben kannst, musst du diesen Prozess des Parsens von Text mit dieser Option befolgen, der hier erläutert wird.
- Die Daten werden aus dem String extrahiert und alle Sonderzeichen, die den Text trennen, werden identifiziert.
Beispielsweise werden im unten stehenden Code die Sonderzeichen „,“ und „:“ in der Zeichenkette „my_string“ identifiziert. Dieser Vorgang muss sorgfältig durchgeführt werden, um Fehler beim Parsen von Text zu vermeiden.
- Der Text im String wird basierend auf den Werten und der Position der Sonderzeichen individuell aufgeteilt.
Die Zeichenkette wird beispielsweise mithilfe des Split-Befehls in Textdatenwerte aufgeteilt.
- Die Datenwerte des Strings werden als geparster Text ausgegeben. Hier wird der Befehl „print“ verwendet, um die geparsten Datenwerte auszugeben.
Der Beispielcode für den oben genannten Prozess ist unten angegeben.
my_string = 'Names: Tech, computer' sfinal = [name.strip() for name in my_string.split(':')[1].split(',')] print("Names: {}".format(sfinal))
In diesem Fall wird das Ergebnis der geparsten Zeichenkette wie folgt angezeigt:
Names: ['Tech', 'computer']
Für eine bessere Übersichtlichkeit und um zu verstehen, wie Text analysiert wird, wenn eine Zeichenkette verwendet wird, wird eine „for“-Schleife verwendet und der Code wie folgt geändert:
my_string = 'Names: Tech, computer' s1 = my_string.split(':') s2 = s1[1] s3 = s2.split(',') s4 = [name.strip() for name in s3] for idx, item in enumerate([s1, s2, s3, s4]): print("Step {}: {}".format(idx, item))
Das Ergebnis des geparsten Textes für jeden dieser Schritte wird wie unten dargestellt angezeigt. Du kannst sehen, dass im Schritt 0 die Zeichenkette basierend auf dem Sonderzeichen „:“ getrennt wird und die Textdaten in den nachfolgenden Schritten basierend auf dem Zeichen weiter aufgeteilt werden.
Step 0: ['Names', 'Tech, computer'] Step 1: Tech, computer Step 2: [' Tech', ' computer'] Step 3: ['Tech', 'computer']
Option III: Analyse komplexer Dateien
In vielen Fällen enthalten zu parsende Dateien unterschiedliche Datentypen und Datenwerte. In solchen Fällen kann es schwierig sein, die Datei mit den oben genannten Methoden zu parsen.
Funktionen zum Analysieren von komplexen Daten in einer Datei bestehen darin, die Datenwerte in tabellarischer Form darzustellen.
- Der Titel oder die Metadaten werden oben in der Datei gedruckt.
- Die Variablen und Felder werden tabellarisch in der Ausgabe angezeigt.
- Die Datenwerte bilden einen zusammengesetzten Schlüssel.
Bevor du lernst, wie Text mit dieser Methode analysiert wird, musst du einige grundlegende Konzepte verstehen. Das Parsen der Datenwerte erfolgt auf Basis von regulären Ausdrücken (Regex).
Regex-Muster
Um Parsing-Fehler zu vermeiden, musst du sicherstellen, dass die Regex-Muster in den Ausdrücken korrekt sind. Der Code zum Analysieren der Datenwerte der Zeichenketten verwendet häufig die folgenden Regex-Muster:
-
\d
: entspricht einer Dezimalziffer in der Zeichenkette. -
\s
: entspricht einem Leerzeichen. -
\w
: entspricht einem alphanumerischen Zeichen. -
+
oder*
: führt eine „gierige“ Übereinstimmung durch, indem ein oder mehrere Zeichen in den Zeichenketten abgeglichen werden. -
a-z
: entspricht den Kleinbuchstabengruppen in den Textdatenwerten. -
A-Z
odera-z
: entspricht den Groß- und Kleinbuchstabengruppen der Zeichenkette. -
0-9
: entspricht den Zahlenwerten.
Reguläre Ausdrücke
Module für reguläre Ausdrücke (Regex) sind ein wichtiger Bestandteil des Pandas-Pakets in Python. Ein falscher Ausdruck kann zu Fehlern beim Parsen von Text führen. Regex ist eine kleine Sprache, die in Python eingebettet ist, um Zeichenkettenmuster in einem Ausdruck zu finden. Reguläre Ausdrücke sind Zeichenketten mit einer speziellen Syntax. Sie ermöglichen das Abgleichen von Mustern in anderen Zeichenketten basierend auf den Werten in den Zeichenketten.
Die Regex wird basierend auf dem Datentyp und den Anforderungen des Ausdrucks in der Zeichenkette erstellt, z.B. „String = (.*)n“. Die Regex wird in jedem Ausdruck vor dem Muster verwendet. Die in regulären Ausdrücken verwendeten Symbole sind im Folgenden aufgeführt und helfen, zu verstehen, wie Text geparst wird.
-
.
: um ein beliebiges Zeichen aus den Daten abzurufen. -
*
: um null oder mehr Daten aus dem vorherigen Ausdruck zu verwenden. -
(.*)
: um einen Teil des regulären Ausdrucks innerhalb der Klammern zu gruppieren. -
n
: um am Ende einer Zeile im Code ein neues Zeilenzeichen zu erstellen. -
d
: um einen kurzen ganzzahligen Wert im Bereich von 0 bis 9 zu erstellen. -
+
: um ein oder mehrere Daten aus dem vorherigen Ausdruck zu verwenden. -
|
: um eine logische Aussage zu erstellen, z.B. für „oder“-Ausdrücke.
RegexObjects
Das RegexObject ist ein Rückgabewert der Kompilierungsfunktion und wird verwendet, um ein MatchObject zurückzugeben, wenn der Ausdruck mit einem übereinstimmenden Wert gefunden wird.
1. MatchObject
Da der boolesche Wert des MatchObject immer „True“ ist, kannst du eine „if“-Anweisung verwenden, um die positiven Übereinstimmungen im Objekt zu identifizieren. Bei der Verwendung der „if“-Anweisung wird die Gruppe verwendet, auf die der Index verweist, um die Übereinstimmung des Objekts im Ausdruck zu ermitteln.
-
group()
gibt eine oder mehrere Untergruppen der Übereinstimmung zurück. -
group(0)
gibt die gesamte Übereinstimmung zurück. -
group(1)
gibt die erste eingeklammerte Untergruppe zurück. -
Wenn mehrere Gruppen angesprochen werden, sollte eine Python-spezifische Erweiterung verwendet werden, um den Namen der Gruppe anzugeben, in der eine Übereinstimmung gefunden werden muss. Diese Erweiterung wird innerhalb der Gruppe in Klammern gesetzt. Der Ausdruck
(?P<group1>regex1)
würde sich beispielsweise auf die spezifische Gruppe mit dem Namen „group1“ beziehen und auf Übereinstimmung im regulären Ausdruck „regex1“ prüfen. Um Parsing-Fehler zu vermeiden, musst du sicherstellen, dass die Gruppen richtig ausgerichtet sind.
2. Methoden des MatchObjects
Beim Parsen von Text ist es wichtig zu wissen, dass das MatchObject zwei grundlegende Methoden hat. Wenn das MatchObject im angegebenen Ausdruck gefunden wird, gibt es seine Instanz zurück, andernfalls „None“.
-
Die
match(string)
-Methode wird verwendet, um die Übereinstimmungen der Zeichenkette am Anfang des regulären Ausdrucks zu finden. -
Die
search(string)
-Methode wird verwendet, um die Zeichenkette zu durchsuchen, um die Position für eine Übereinstimmung im regulären Ausdruck zu finden.
Funktionen für reguläre Ausdrücke
Regex-Funktionen sind Codezeilen, die verwendet werden, um eine bestimmte Funktion auszuführen, die vom Benutzer aus den gefundenen Datenwerten angegeben wird.
Hinweis: Um die Funktionen zu schreiben, werden „Raw Strings“ für die regulären Ausdrücke verwendet, um Fehler beim Parsen von Text zu vermeiden. Dies geschieht, indem der Index „r“ vor jedem Muster im Ausdruck gesetzt wird.
Die in den Ausdrücken verwendeten gängigen Funktionen werden im Folgenden erläutert:
1. re.findall()
Diese Funktion gibt alle Muster in der Zeichenkette zurück, wenn eine Übereinstimmung gefunden wird. Sie gibt eine leere Liste zurück, wenn keine Übereinstimmung gefunden wird. Zum Beispiel wird die Funktion string = re.findall('[aeiou]', regex_filename)
verwendet, um das Vorkommen von Vokalen im Dateinamen zu finden.
2. re.split()
Diese Funktion wird verwendet, um die Zeichenkette aufzuteilen, falls eine Übereinstimmung mit einem angegebenen Zeichen, z. B. einem Leerzeichen, gefunden wird. Falls keine Übereinstimmung gefunden wird, wird eine leere Zeichenkette zurückgegeben.
3. re.sub()
Diese Funktion ersetzt den übereinstimmenden Text durch den Inhalt der angegebenen Ersetzungsvariablen. Im Gegensatz zu anderen Funktionen wird der ursprüngliche String zurückgegeben, wenn kein Muster gefunden wird.
4. re.search()
Eine der grundlegenden Funktionen, die beim Erlernen des Parsens von Text helfen, ist die Suchfunktion. Sie hilft beim Suchen des Musters in der Zeichenkette und beim Zurückgeben des Übereinstimmungsobjekts. Wenn die Suche keine Übereinstimmung findet, wird kein Wert zurückgegeben.
5. re.compile(Muster)
Diese Funktion wird verwendet, um Muster regulärer Ausdrücke in ein RegexObject zu kompilieren, wie bereits erläutert wurde.
Weitere Voraussetzungen
Die aufgeführten Anforderungen sind zusätzliche Features, die von erfahrenen Programmierern bei der Datenanalyse verwendet werden.
- Zur Visualisierung regulärer Ausdrücke wird
regexper
verwendet. - Zum Testen regulärer Ausdrücke wird
regex101
verwendet.
Prozess der Textanalyse
Die Methode zum Analysieren von Text mit dieser komplexen Option wird im Folgenden beschrieben:
- Der wichtigste Schritt ist, das Eingabeformat zu verstehen, indem der Inhalt der Datei gelesen wird. Beispielsweise werden die Funktionen
with open
undread()
verwendet, um den Inhalt der Datei mit dem Namen „sample“ zu öffnen und zu lesen. Die Beispieldatei hat den Inhalt aus der Datei „file.txt“. Um Fehler beim Parsen zu vermeiden, muss die Datei vollständig gelesen werden. - Der Inhalt der Datei wird gedruckt, um die Daten manuell zu analysieren und die Metadaten der Werte zu ermitteln. Hier wird die Funktion
print()
verwendet, um den Inhalt der Beispieldatei auszugeben. - Die erforderlichen Datenpakete zum Parsen des Textes werden in den Code importiert und der Klasse wird ein Name für die weitere Codierung gegeben. Hier werden die regulären Ausdrücke und Pandas importiert.
- Die für den Code erforderlichen regulären Ausdrücke werden in der Datei definiert, indem das Regex-Muster und die Regex-Funktion eingeschlossen werden. Dadurch kann das Textobjekt oder der Korpus den Code für die Datenanalyse übernehmen.
- Um zu verstehen, wie Text analysiert wird, kannst du dir den hier angegebenen Beispielcode ansehen. Die Funktion
compile()
wird verwendet, um den String aus der Gruppe „stringname1“ der Datei „filename“ zu kompilieren. Die Funktion zum Überprüfen von Übereinstimmungen in der Regex wird mit dem Befehlief_parse_line(line)
aufgerufen. - Der Zeilenparser für den Code wird mit
def_parse_file(filepath)
geschrieben. Die definierte Funktion sucht nach allen Regex-Übereinstimmungen in der angegebenen Funktion. Hier sucht die Methoderegex search()
nach dem Schlüssel „rx“ in der Datei „filename“ und gibt den Schlüssel sowie die Übereinstimmung der ersten passenden Regex zurück. Jedes Problem mit diesem Schritt kann zu Fehlern beim Parsen von Text führen. - Der nächste Schritt besteht darin, einen Dateiparser mit der Dateiparserfunktion
def_parse_file(filepath)
zu schreiben. Eine leere Liste wird erstellt, um die Daten des Codes zu sammeln:data = []
. Die Übereinstimmung in jeder Zeile wird mitmatch = _parse_line(line)
überprüft, und die genauen Wertdaten werden basierend auf dem Datentyp zurückgegeben. - Um die Nummer und den Wert für die Tabelle zu extrahieren, wird der Befehl
line.strip().split(',')
verwendet. Der Befehlrow{}
wird verwendet, um ein Wörterbuch mit der Datenzeile zu erstellen. Der Befehldata.append(row)
wird verwendet, um die Daten zu interpretieren und in ein tabellarisches Format zu parsen.
Der Befehl data = pd.DataFrame(data)
wird verwendet, um ein Pandas DataFrame aus den dict-Werten zu erstellen. Alternativ kannst du die folgenden Befehle für die jeweilige Aufgabe wie unten angegeben verwenden:
-
data.set_index(['string', 'integer'], inplace=True)
, um den Index der Tabelle festzulegen. -
data = data.groupby(level=data.index.names).first()
, um Daten zu konsolidieren undNaN
-Werte zu entfernen. -
data = data.apply(pd.to_numeric, errors='ignore')
, um den Wert von Fließkommazahlen auf Ganzzahlen zu aktualisieren.
Der letzte Schritt, um zu verstehen, wie Text geparst wird, besteht darin, den Parser mit der if-Anweisung zu testen. Die Werte einer Variablen werden dem Datensatz zugewiesen und mit dem Befehl print(data)
ausgegeben.
Der Beispielcode für die obige Erklärung ist hier angegeben.
with open('file.txt') as sample: sample_contents = sample.read() print(sample_contents) import re import pandas as pd rx_filename = { 'string1': re.compile(r'string = (?P<stringname1>.*)n'), } def ief_parse_line(line): for key, rx in rx_filename.items(): match = rx.search(line) if match: return key, match return None, None def parse_file(filepath): data = [] with open(filepath, 'r') as file_object: line = file_object.readline() while line: key, match = _parse_line(line) if key == 'string1': string = match.group('string1') integer = int(string1) value_type = match.group('string1') line = file_object.readline() while line.strip(): number, value = line.strip().split(',') value = value.strip() row = { 'Data1': string1, 'Data2': number, value_type: value } data.append(row) line = file_object.readline() line = file_object.readline() data = pd.DataFrame(data) return data if __name__ == '__main__': filepath = 'sample.txt' data = parse(filepath) print(data)
Methode 2: Tokenisierung von Wörtern
Der Prozess der Umwandlung eines Textes oder Korpus in kleinere Einheiten (Token) basierend auf bestimmten Regeln wird als Tokenisierung bezeichnet. Um Fehler beim Parsen zu vermeiden, ist es wichtig, die Befehle zur Wort-Tokenisierung im Code zu analysieren. Ähnlich wie bei Regex können bei dieser Methode eigene Regeln erstellt werden. Sie hilft bei Aufgaben der Textvorverarbeitung, wie z.B. dem Mapping von Wortarten. Darüber hinaus werden bei dieser Methode Aktivitäten wie das Finden und Abgleichen von gebräuchlichen Wörtern, das Bereinigen von Text und das Vorbereiten von Daten für fortgeschrittene Textanalysetechniken wie die Stimmungsanalyse durchgeführt. Fehlerhafte Tokenisierung kann zu Fehlern beim Analysieren von Text führen.
Ntlk-Bibliothek
Der Prozess nutzt die populäre Sprach-Toolkit-Bibliothek „nltk“, die eine Vielzahl von Funktionen für viele NLP-Aufgaben enthält. Diese kann über die „Pip“- oder „Pip-Installationspakete“ heruntergeladen werden. Um zu wissen, wie Text geparst wird, kannst du das Basispaket der Anaconda-Distribution verwenden, das die Bibliothek standardmäßig enthält.
Formen der Tokenisierung
Die gängigen Formen dieser Methode sind die Wort-Tokenisierung und die Satz-Tokenisierung. Bei der ersteren wird ein Wort nur einmal gedruckt, während bei der letzteren das Wort auf Satzebene gedruckt wird.
Prozess der Textanalyse
- Die „nltk“-Toolkit-Bibliothek wird importiert und die Tokenisierungsformen werden aus der Bibliothek importiert.
- Eine Zeichenkette wird angegeben und die Befehle zum Ausführen der Tokenisierung werden definiert.
- Wenn die Zeichenkette gedruckt wird, lautet die Ausgabe „Computer ist das Wort.“.
- Bei der Wort-Tokenisierung (
word_tokenize()
) wird jedes Wort im Satz einzeln in Anführungszeichen ausgegeben und durch ein Komma getrennt. Die Ausgabe des Befehls wäre: ‚computer‘, ‚is‘, ‚the‘, ‚word‘, ‚.‘ - Bei der Satz-Tokenisierung (
sent_tokenize()
) werden die einzelnen Sätze in Anführungszeichen gesetzt, wobei die Wiederholung von Wörtern möglich ist. Die Ausgabe des Befehls wäre: „Computer ist das Wort.“.
Der Code, der die obigen Schritte zur Tokenisierung erläutert, ist hier angegeben.
import nltk from nltk.tokenize import sent_tokenize, word_tokenize string = "computer is the word." print(string) print(word_tokenize(string)) print(sent_tokenize(string))
Methode 3: Verwendung der DocParser-Klasse
Ähnlich wie die DataFrame-Klasse kann die DocParser-Klasse verwendet werden, um Text im Code zu analysieren. Die Klasse ermöglicht es dir, die Parse-Funktion mit dem Dateipfad aufzurufen.
Prozess der Textanalyse
Um zu erfahren, wie Text mit der DocParser-Klasse analysiert wird, befolge die nachstehenden Anweisungen:
- Die Funktion
get_format(filename)
wird verwendet, um die Dateierweiterung zu extrahieren, diese einer Variablen für die Funktion zuzuweisen und sie an die nächste Funktion zu übergeben. Beispielsweise würdep1 = get_format(filename)
die Dateierweiterung von „filename“ extrahieren, diese der Variablen „p1“ zuweisen und an die nächste Funktion übergeben. - Eine logische Struktur mit anderen Funktionen wird mithilfe von if-elif-else-Anweisungen und -Funktionen aufgebaut.
- Wenn die Dateierweiterung gültig ist und die Struktur logisch aufgebaut ist, wird die Funktion
get_parser
verwendet, um die Daten im Dateipfad zu parsen und das String-Objekt an den Benutzer zurückzugeben.
Hinweis: Um Fehler beim Parsen zu vermeiden, muss diese Funktion korrekt implementiert werden.
- Das Parsen der Datenwerte erfolgt mit der Dateiendung der Datei. Die konkrete Implementierung der Klasse, z.B.
parse_txt
oderparse_docx
, wird verwendet, um String-Objekte aus den Teilen des angegebenen Dateityps zu generieren. - Das Parsen kann für Dateien mit anderen lesbaren Erweiterungen wie
parse_pdf
,parse_html
undparse_pptx
durchgeführt werden. - Die Datenwerte und die Schnittstelle können mit Importanweisungen in Anwendungen importiert werden, und ein DocParser-Objekt wird instanziiert. Dies kann durch Analysieren von Dateien in Python erfolgen, z.B.
parse_file.py
. Dieser Vorgang muss sorgfältig durchgeführt werden, um Fehler beim Parsen von Text zu vermeiden.
Methode 4: Verwendung eines Textanalyse-Tools
Das Textanalyse-Tool wird verwendet, um bestimmte Daten aus Variablen zu extrahieren und sie anderen Variablen zuzuweisen. Dies ist unabhängig von anderen Tools, die in einer Aufgabe verwendet werden, und das BPA-Plattform-Tool wird verwendet, um Variablen zu verarbeiten und auszugeben. Verwende den hier angegebenen Link, um darauf zuzugreifen: Textanalyse-Tool online und verwende die zuvor gegebenen Antworten zum Analysieren von Text.
Methode 5: Verwendung des TextFieldParser (Visual Basic)
Der TextFieldParser
verwendet Objekte zum Analysieren und Verarbeiten großer Dateien, die strukturiert und getrennt sind. Bei dieser Methode können Breite und Spalte von Text wie Protokolldateien oder ältere Datenbankinformationen verwendet werden. Die Parsing-Methode ähnelt der Iteration des Codes über eine Textdatei und wird hauptsächlich verwendet, um Textfelder zu extrahieren, die den Verfahren zur Bearbeitung von Zeichenketten ähneln. Dies geschieht, um begrenzte Zeichenketten und Felder unterschiedlicher Breite unter Verwendung von Trennzeichen wie Komma oder Tabulatorzeichen zu tokenisieren.
Funktionen zum Analysieren von Text
Die folgenden Funktionen können verwendet werden, um Text in dieser Methode zu analysieren:
- Um ein Trennzeichen zu definieren, wird
SetDelimiters
verwendet. Beispielsweise wird der BefehltestReader.SetDelimiters(vbTab)
verwendet, um den Tabulator als Trennzeichen festzulegen. - Um eine Feldbreite auf einen positiven ganzzahligen Wert für Textdateien mit fester Feldbreite festzulegen, kannst du den Befehl
testReader.SetFieldWidths(Integer)
verwenden. - Um den Feldtyp des Textes zu testen, kannst du den folgenden Befehl verwenden:
testReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth
.
Methoden zum Finden von MatchObject
Es gibt zwei grundlegende Methoden, um das MatchObject im Code oder geparsten Text zu finden:
- Die erste Methode besteht darin, das Format zu definieren und die Datei mit der
ReadFields
-Methode zu durchlaufen. Diese Methode hilft bei der Verarbeitung jeder Codezeile. - Mit der
PeekChars
-Methode wird jedes Feld vor dem Lesen einzeln geprüft, mehrere Formate definiert und reagiert.
In beiden Fällen wird eine MalformedLineException
-Ausnahme zurückgegeben, wenn ein Feld nicht mit dem angegebenen Format übereinstimmt, während die Analyse durchgeführt wird oder ermittelt wird, wie Text analysiert wird.
Profi-Tipp: Textanalyse in MS Excel
Als letzte und einfache Methode zum Analysieren von Text kannst du MS-Excel als Parser verwenden, um tabulatorgetrennte und kommagetrennte Dateien zu erstellen. Dies kann hilfreich sein, um deine geparsten Ergebnisse zu überprüfen und Fehler zu finden.
1. Wähle die Datenwerte in der Quelldatei aus und drücke gleichzeitig Strg + C, um die Datei zu kopieren.
2. Öffne Excel über die Windows-Suchleiste.
3. Klicke auf die Zelle A1 und drücke gleichzeitig Strg + V, um den kopierten Text einzufügen.
4. Wähle die Zelle A1 aus, gehe zur Registerkarte „Daten“ und klicke im Abschnitt „Datentools“ auf „Text in Spalten“.
5A. Wähle die Option „Getrennt“, wenn als Trennzeichen ein Komma oder Tabulatorzeichen verwendet wird, und klicke auf „Weiter“ und „Fert