So verwenden Sie das Tokenize -Modul in Python

So verwenden Sie das Tokenize -Modul in Python
Dieser Artikel behandelt eine Anleitung zur Verwendung des Moduls „Tokenize“ in Python. Das Tokenize -Modul kann verwendet werden, um den Text auf verschiedene Weise zu segmentieren oder in kleine Stücke zu teilen. Sie können diese Segmente in Python -Anwendungen verwenden, die maschinelles Lernen, Verarbeitung natürlicher Sprache und Algorithmen für künstliche Intelligenz verwenden. Alle Codeproben in diesem Artikel werden mit Python 3 getestet.9.5 auf Ubuntu 21.04.

Über das Tokenize -Modul

Wie der Name schon sagt, kann das Tokenize -Modul verwendet werden, um „Token“ aus einem Absatz oder einem Teil des Textes zu erstellen. Jedes einzelne gebrochene Stück kehrte zurück, nachdem der Tokenisierungsprozess als Token bezeichnet wurde. Sobald Sie einen Text tokenisieren, können Sie Ihre eigene Logik in Ihrem Python -Programm implementieren, um die Token gemäß Ihrem Anwendungsfall zu verarbeiten. Das Tokenize -Modul bietet einige nützliche Methoden, mit denen Token erstellt werden können. Die Verwendung dieser Methoden kann am besten anhand von Beispielen verstanden werden. Einige von ihnen werden unten erklärt.

Tokenisierung eines Absatzes oder Satzes

Sie können einen Absatz oder einen Satz mit platz getrennten Wörtern unter Verwendung des unten erläuterten Codeprobes tokenisieren.

Tokenize importieren
von IO Import Bytesio
Text = "Lorem Ipsum Dolor Sit Amet, Consectetur Adipiscing Elit, SED do eiusmod Tempor incididid ut labore et dolore magna aliqua."
Tokens = Tokenize.Tokenize (Bytesio (Text.codieren ('utf-8')).Zeile lesen)
für t in tokens:
Druck (t)

Die ersten beiden Aussagen importieren die erforderlichen Python -Module, die für die Umwandlung eines Textstücks in einzelne Token erforderlich sind. Eine Variable namens "Text" enthält eine Beispielzeichenfolge. Als nächstes wird die Methode "Tokenize" aus dem Tokenize -Modul genannt. Es verwendet die "Readline" -Methode als obligatorisches Argument. Da die Textvariable vom Typ „STR“ ausgeht, wirft die Verwendung direkter Verwendung einen Fehler auf. Das Readline -Argument ist eine aufrufbare Methode, die Bytes anstelle einer Zeichenfolge zurückgeben muss, damit die Tokenize -Methode korrekt funktioniert. Mit der Klasse „Bytesio“ wird der Text durch Angabe eines Codierungsarts in einen Byt -Strom konvertiert.

Die Tokenize -Methode generiert ein benanntes Tupel mit fünf Typen: Typ (Typ des Tokens), String (Name des Tokens), Start (Startposition des Tokens), End (Endposition des Tokens) und Zeile (Zeile (die Zeile Das wurde zum Erstellen von Token verwendet). Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie eine ähnliche Ausgabe wie folgt erhalten:

Tokeninfo (Typ = 62 (Codierung), String = 'utf-8', start = (0, 0), End = (0, 0), Line = ")
Tokeninfo (Typ = 1 (Name), String = 'lorem', start = (1, 0), Ende = (1, 5), Line = 'lorem ipsum dolor sitz Amet, Zauberer Adipiscing Elit, SED do eiusmod Temporal Incididunt Ut LABORE ET DOLORE MAGNA Aliqua.'))


Tokeninfo (Typ = 54 (OP), String = '.', start = (1, 122), Ende = (1, 123), Linie =' Lorem Ipsum Dolor Sit Amet, Castetur Adipiscing Elit, SED do eiusmod tempor incidididn ut labore et dolore Magna Aliqua.'))
TokenInfo (type = 4 (newline), string = ", start = (1, 123), end = (1, 124), line =")
Tokeninfo (Typ = 0 (Endmarker), String = ", Start = (2, 0), End = (2, 0), Line =")

Wie Sie in der obigen Ausgabe sehen können, generiert die Tokenize -Methode eine “TokeninfoObjekt mit fünf oben genannten Typen. Wenn Sie auf diese Typen einzeln zugreifen möchten, verwenden Sie die Punktnotation (wie in der folgenden Code -Stichprobe gezeigt).

Tokenize importieren
von IO Import Bytesio
Text = "Lorem Ipsum Dolor Sit Amet, Consectetur Adipiscing Elit, SED do eiusmod Tempor incididid ut labore et dolore magna aliqua."
Tokens = Tokenize.Tokenize (Bytesio (Text.codieren ('utf-8')).Zeile lesen)
für t in tokens:
drucken (t.String, t.Start, t.Ende, t.Typ)

Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:


UTF-8 (0, 0) (0, 0) 62
Lorem (1, 0) (1, 5) 1
Ipsum (1, 6) (1, 11) 1

Notiere dass der "T.TypCall gibt eine konstante Zahl für den Token -Typ zurück. Wenn Sie einen typisch mehr menschlich lesbarer Token wünschen, verwenden Sie die “Zeichen”Modul und die“TOK_NAME”Wörterbuch erhältlich darin.

Tokenize importieren
von IO Import Bytesio
Token importieren
Text = "Lorem Ipsum Dolor Sit Amet, Consectetur Adipiscing Elit, SED do eiusmod Tempor incididid ut labore et dolore magna aliqua."
Tokens = Tokenize.Tokenize (Bytesio (Text.codieren ('utf-8')).Zeile lesen)
für t in tokens:
drucken (t.String, t.Start, t.Ende, Token.tok_name [t.Typ])

Durch Lieferung “t.Geben Sie "Konstante auf" Tok_name "-Dictionary ein. Sie können einen menschlichen lesbaren Namen für den Token -Typ erhalten. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

UTF-8 (0, 0) (0, 0) Codierung
Lorem (1, 0) (1, 5) Name
ipsum (1, 6) (1, 11) Name
Dolor (1, 12) (1, 17) Name

Eine vollständige Liste aller Token -Typen und ihrer Namen ist hier verfügbar. Beachten Sie, dass das erste Token immer der Codierungstyp des Eingabestreams ist und keinen Start- und Endwert hat.

Sie können problemlos eine Liste von gerechten Token -Namen erhalten, die für Schleifenanweisungen oder Listenverständnisse verwendet werden, wie im folgenden Code -Beispiel gezeigt.

Tokenize importieren
von IO Import Bytesio
Text = "Lorem Ipsum Dolor Sit Amet, Consectetur Adipiscing Elit, SED do eiusmod Tempor incididid ut labore et dolore magna aliqua."
Tokens = Tokenize.Tokenize (Bytesio (Text.codieren ('utf-8')).Zeile lesen)
token_list = [t.String für T in Tokens]
drucken (token_list)

Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

['UTF-8', 'Lorem', 'Ipsum', 'Dolor', 'Sit', 'Amet', ',' Consectetur ',' Adipiscing ',' Elit ',', 'SED' , 'do', 'eiusmod', 'tempor', 'incididunt', 'ut', 'labore', 'et', 'Dolore', 'Magna', 'Aliqua', ''.', ","]

Sie können die im Tokenize -Modul verfügbare Methode "generate_tokens" verwenden, wenn Sie eine Zeichenfolge tokenisieren möchten, ohne sie in Bytes zu konvertieren. Es dauert immer noch eine Callable Readline -Methode als obligatorisches Argument, aber es behandelt nur Zeichenfolgen, die von der Readline -Methode zurückgegeben wurden und nicht von Bytes (im Gegensatz zur oben erläuterten Tokenize -Methode). Das folgende Code -Beispiel zeigt die Verwendung der Methode generate_tokens. Anstelle der Bytesio -Klasse wird jetzt die "Stringio" -Klasse verwendet.

Tokenize importieren
Aus IO importieren Stringio
Text = "Lorem Ipsum Dolor Sit Amet, Consectetur Adipiscing Elit, SED do eiusmod Tempor incididid ut labore et dolore magna aliqua."
Tokens = Tokenize.generate_tokens (stringio (text).Zeile lesen)
token_list = [t.String für T in Tokens]
drucken (token_list)

Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

['Lorem', 'Ipsum', 'Dolor', 'Sit', 'Amet', ',', "Consectetur ',' Adipiscing ',' Elit ',', 'Sed', 'Do', '' '', '' '' Eiusmod ',' tempor ',' incididunt ',' ut ',' labore ',' et ',' Dolore ',' Magna ',' Aliqua ',' '.', ","]

Tokenisierungsinhalte einer Datei

Sie können die Anweisung "mit offener" -Modus "mit offener" Modus verwenden, um den Inhalt einer Datei direkt zu lesen und sie dann zu tokenisieren. Der "R" im "RB" -Modus steht für den schreibgeschützten Modus, während "B" für den Binärmodus steht. Die nachstehende Code -Probe öffnet eine „Probe.TXT ”-Datei und tokenisiert ihren Inhalt mit den Methoden zur Tokenize- und Readline.

Tokenize importieren
mit offen ("Probe.txt "," rb ") als f:
Tokens = Tokenize.Tokenize (f.Zeile lesen)
token_list = [t.String für T in Tokens]
drucken (token_list)

Sie können auch "Open" verwenden, eine im Tokenize -Modul verfügbare Convenience -Methode und dann Call generate_tokens und Readline -Methoden, um Token aus einer Datei direkt zu erstellen.

Tokenize importieren
mit Tokenize.offen ("Probe.txt ") als f:
Tokens = Tokenize.generate_tokens (f.Zeile lesen)
token_list = [t.String für T in Tokens]
drucken (token_list)

Angenommen, die Probe.Die TXT -Datei enthält denselben Beispielzeichen.

['Lorem', 'Ipsum', 'Dolor', 'Sit', 'Amet', ',', "Consectetur ',' Adipiscing ',' Elit ',', 'Sed', 'Do', '' '', '' '' Eiusmod ',' tempor ',' incididunt ',' ut ',' labore ',' et ',' Dolore ',' Magna ',' Aliqua ',' '.', ","]

Abschluss

Das Tokenize-Modul in Python bietet einen nützlichen Weg, um Textbrocken mit räumlich getrennten Wörtern zu tokenisieren. Es schafft auch eine Karte von Start- und Beendungspositionen von Tokens. Wenn Sie jedes einzelne Wort eines Textes tokenisieren möchten, ist die Tokenize -Methode besser als die „Split“.