Tokenisierung

Jan 10 2023
Was ist Tokenisierung?? Kurz gesagt, es teilt Texte in Wörter oder Sätze auf… Hier werden wir uns mit verschiedenen Tokenizern befassen, die wir in NLP verwenden können ……… 2. Spezifische Aufteilung Dasselbe wie Leerzeichen, aber hier geben wir Aufteilungen, die wir wollen 3.

Was ist Tokenisierung?? Kurz gesagt, es teilt Texte in Wörter oder Sätze auf…

Tokenisierung

Hier werden wir uns mit verschiedenen Tokenizern befassen, die wir in NLP verwenden können ………

  1. Weißer Raum

text = 'Earth was born around 4.54 billion years ago.'
print(text.split())
# output
# ['Earth', 'was', 'born', 'around', '4.54', 'billion', 'years', 'ago.']

2. Spezifische Aufteilung

Dasselbe wie Leerraum, aber hier geben wir splitjeden gewünschten Splitter an

text = 'Egypt, a country linking northeast Africa with the Middle East, dates to the time of the pharaohs.'
print(text.split(','))
# output
# ['Egypt', ' a country linking northeast Africa with the Middle East', ' dates to the time of the pharaohs.']

3. NLTK

NLTK ist eine führende Plattform zum Erstellen von Python-Programmen für die Arbeit mit Daten in menschlicher Sprache. Es gibt viele Tokenizer, die wir verwenden können

l) word_toknizer: Es löst das Problem in der Split-Funktion:

word_toknizer: siehe gelbe Markierung oben

ll) sent_tokenize: Es verwendet geteilten Text als zuvor trainiertes Modell.

sent_tokenize: Dies ist mein Zitat, es wurde als Zitat und mein Name aufgeteilt

lll) wordpunct_tokenize: Hier werden alle Wörter und Satzzeichen aufgeteilt.

wordpunct_tokenize: Es gibt uns ein Token mit allen Wörtern und Satzzeichen

lV) TreebankWordTokenizer: Es spaltet Text wie diese Interpunktion ?!.,;auf der anderen Seite, es ist eine Vielzahl von gemeinsamen Regeln für englische Wörter.

TreebankWordTokenizer: Sehen Sie sich die gelbe Markierung oben an, Sie werden wissen, dass das mein Name ist, also sieht es ihn als Token

V) TweetTokenizer: Es teilt Text wie diese Satzzeichen ?!.,;, also Emojis

TweetTokenizer

Vl) MWETokenizer: Hier können wir Token nach Belieben hinzufügen, da dieser Tokenizer add_mweuns dies ermöglicht

MWETokenizer: Wir haben ein Token hinzugefügt, wie wir im Ergebnis sehen, werden Sie dieses Token sehen

4. TextBlob

TextBlob ist eine Python-Bibliothek (2 und 3) zur Verarbeitung von Textdaten . Es bietet eine einfache API zum Eintauchen in gängige Aufgaben der Verarbeitung natürlicher Sprache (Natural Language Processing, NLP) wie Wortart-Tagging, Extraktion von Nominalphrasen, Stimmungsanalyse, Klassifizierung, Übersetzung und mehr.

from textblob import TextBlob
text="""But I'm glad you'll see me as I am. Above all, I wouldn't want people to think that I want to 
prove anything. I don't want to prove anything, I just want to live; to cause no evil to anyone but myself. 
I have that right, haven't I? Leo Tolstoy """

blob_object= TextBlob(text)     # Word tokenization of  the text
text_words = blob_object.words  # To see all tokens
print(text_words)  # To count the number of tokens
print(len(text_words))

# output
# ['But', 'I', "'m", 'glad', 'you', "'ll", 'see', 'me', 'as', 'I', 'am', 'Above', 'all', 'I', 'would', "n't", 'want', 'people', 'to', 'think', 'that', 'I', 'want', 'to', 'prove', 'anything', 'I', 'do', "n't", 'want', 'to', 'prove', 'anything', 'I', 'just', 'want', 'to', 'live', 'to', 'cause', 'no', 'evil', 'to', 'anyone', 'but', 'myself', 'I', 'have', 'that', 'right', 'have', "n't", 'I', 'Leo', 'Tolstoy']
# 55

5. spacig

spaCy ist eine kostenlose Open-Source-Bibliothek für Natural Language Processing in Python . Es bietet NER, POS-Tagging, Abhängigkeitsanalyse, Wortvektoren und mehr.

Es gibt uns Token und seinen Index alle Wörter und Satzzeichen und Emojis

6. Gensim

Gensim: Es ist eine Open-Source-Bibliothek in Python, geschrieben von Radim Rehurek, die für die unüberwachte Themenmodellierung und die Verarbeitung natürlicher Sprache verwendet wird . Es wurde entwickelt, um semantische Themen aus Dokumenten zu extrahieren. Es kann große Textsammlungen verarbeiten.

Hier werden alle Satzzeichen und Emojis entfernt

7. Keras

Keras ist eine Open-Source-Bibliothek und eines der zuverlässigsten Deep-Learning-Frameworks. Um die Tokenisierung durchzuführen, verwenden wir die Methode text_to_word_sequence aus der Klasse Class Keras.preprocessing.text. Das Tolle an Keras ist die Umwandlung des Alphabets in Kleinbuchstaben, bevor es in Tokens umgewandelt wird, was eine ziemliche Zeitersparnis sein kann.

from keras.preprocessing.text import Tokenizer
from keras.preprocessing.text import text_to_word_sequence

text = "Two things are infinite: the universe and human stupidity; and I'm not sure about the universe.  #Albert Einstein"


tokinzer = Tokenizer(num_words=20)  # as recommended we put here the max text length we have
tokinzer.fit_on_texts(text)
tokens = text_to_word_sequence(text)
print(tokens)

# output
# ['two', 'things', 'are', 'infinite', 'the', 'universe', 'and', 'human', 'stupidity', 'and', "i'm", 'not', 'sure', 'about', 'the', 'universe', '', 'albert', 'einstein']

8. Unterwortbasierte Tokenisierung

Die beliebte Tokenisierung ist die teilwortbasierte Tokenisierung, die eine Lösung zwischen wort- und zeichenbasierter Tokenisierung darstellt. Die Hauptidee besteht darin, die Probleme zu lösen, mit denen die wortbasierte Tokenisierung (sehr großer Wortschatz, große Anzahl von OOV-Tokens und unterschiedliche Bedeutungen sehr ähnlicher Wörter) und die zeichenbasierte Tokenisierung (sehr lange Sequenzen und weniger aussagekräftige einzelne Tokens) konfrontiert sind.

Die teilwortbasierten Tokenisierungsalgorithmen verwenden die folgenden Prinzipien.

  1. Teilen Sie die häufig verwendeten Wörter nicht in kleinere Teilwörter auf.
  2. Teilen Sie die seltenen Wörter in kleinere bedeutungsvolle Teilwörter auf.

Herausforderungen

Lassen Sie uns die Herausforderungen und Einschränkungen der Tokenisierungsaufgabe diskutieren.

Im Allgemeinen wird diese Aufgabe für Textkorpus verwendet, der in Englisch oder Französisch geschrieben ist, wobei diese Sprachen Wörter durch Verwendung von Leerzeichen oder Satzzeichen trennen, um die Grenze der Sätze zu definieren. Leider konnte diese Methode nicht auf andere Sprachen wie Chinesisch, Japanisch, Koreanisch Thai, Hindi, Urdu, Tamil und andere angewendet werden. Dieses Problem macht es erforderlich, ein gemeinsames Tokenisierungstool zu entwickeln, das alle Sprachen kombiniert.

Eine weitere Einschränkung liegt in der Tokenisierung arabischer Texte, da Arabisch als Sprache eine komplizierte Morphologie hat. Beispielsweise kann ein einzelnes arabisches Wort bis zu sechs verschiedene Zeichen enthalten, wie das Wort „عقد“ (eaqad).

gleiche Zeichen, haben aber unterschiedliche Bedeutungen

Fazit

Wir sprachen über Tokenisierung und viele Techniken, die wir verwenden können, da wir sehen, dass auf diesem Gebiet viele Arten von Forschung betrieben werden und es wächst und es viele Herausforderungen für NLP gibt, aber wir werden sehen, dass diese Probleme in Zukunft gelöst werden.

Sie können den Code in diesem Link sehen