Tokenisierung
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 ………
- 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:
ll) sent_tokenize: Es verwendet geteilten Text als zuvor trainiertes Modell.
lll) wordpunct_tokenize: Hier werden alle Wörter und Satzzeichen aufgeteilt.
lV) TreebankWordTokenizer: Es spaltet Text wie diese Interpunktion ?!.,;auf der anderen Seite, es ist eine Vielzahl von gemeinsamen Regeln für englische Wörter.
V) TweetTokenizer: Es teilt Text wie diese Satzzeichen ?!.,;, also Emojis
Vl) MWETokenizer: Hier können wir Token nach Belieben hinzufügen, da dieser Tokenizer add_mweuns dies ermöglicht
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.
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.
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.
- Teilen Sie die häufig verwendeten Wörter nicht in kleinere Teilwörter auf.
- 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).
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

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































