NLTK Tokenize: Tokenizer voor woorden en zinnen met voorbeeld

โšก Slimme samenvatting

NLTK Tokenize splitst grote teksten op in kleinere eenheden, tokens genaamd, een fundamentele stap in natuurlijke taalverwerking. De toolkit biedt word_tokenize voor het opsplitsen van zinnen in woorden en sent_tokenize voor het verdelen van tekst in afzonderlijke zinnen.

  • โœ‚๏ธ Tokenisatie: Verdeelt grote teksten in kleinere eenheden, tokens genaamd, voor analyse.
  • ???? NLP Foundation: Dient als basisstap voor het stammen, lemmatiseren en omzetten van tekst naar getallen.
  • ๐Ÿ”ค word_tokenize(): Splitst een zin in afzonderlijke woorden, waarbij leestekens worden gescheiden.
  • ๐Ÿ“ verzonden_tokenize(): Deelt een passage op in afzonderlijke zinnen.
  • ๐Ÿ“Š Use case: Door beide te combineren, kun je kenmerken berekenen zoals het gemiddelde aantal woorden per zin voor machine learning.

NLTK-tokenisatie

Wat is tokenisatie?

tokenization is het proces waarbij een grote hoeveelheid tekst wordt verdeeld in kleinere delen, tokens genaamd. Deze tokens zijn erg handig voor het vinden van patronen en worden beschouwd als een basisstap voor stammen en lemmatisering. Tokenisatie helpt ook om gevoelige gegevenselementen te vervangen door niet-gevoelige gegevenselementen.

Natuurlijke taalverwerking wordt gebruikt voor het bouwen van toepassingen zoals tekstclassificatie, intelligente chatbot, sentimentele analyse, taalvertaling, enz. Het wordt van cruciaal belang om het patroon in de tekst te begrijpen om het bovengenoemde doel te bereiken.

Maak je voorlopig geen zorgen over stemming en lemmatisering, maar behandel ze als stappen voor het opschonen van tekstuele gegevens met behulp van NLP (Natural language processing). We zullen stemming en lemmatisering later in de tutorial bespreken. Taken zoals Tekstclassificatie of spamfiltering maakt gebruik van NLP samen met deep learning-bibliotheken zoals Keras en tensorstroom.

Natural Language toolkit heeft een zeer belangrijke module NLTK tokenize zinnen die verder uit submodules bestaan

  1. woord tokeniseren
  2. zin tokeniseren

Tokenisatie van woorden

Wij gebruiken de methode woord_tokenize() om een โ€‹โ€‹zin in woorden te splitsen. De uitvoer van woordtokenisatie kan worden geconverteerd naar Data Frame voor een beter tekstbegrip in machine learning-toepassingen. Het kan ook worden gebruikt als invoer voor verdere stappen voor het opschonen van tekst, zoals het verwijderen van leestekens, het verwijderen van numerieke tekens of het aftekenen. Machine learning-modellen hebben numerieke gegevens nodig om te worden getraind en een voorspelling te kunnen doen. Woordtokenisatie wordt een cruciaal onderdeel van de conversie van tekst (tekenreeks) naar numerieke gegevens. Lees alstublieft meer Zak met woorden of CountVectorizer. Raadpleeg het onderstaande woord tokenize NLTK-voorbeeld om de theorie beter te begrijpen.

from nltk.tokenize import word_tokenize
text = "God is Great! I won a lottery."
print(word_tokenize(text))

Output: ['God', 'is', 'Great', '!', 'I', 'won', 'a', 'lottery', '.']

Tokenisatie van woorden

Code Uitleg

  1. word_tokenize-module wordt geรฏmporteerd uit de NLTK-bibliotheek.
  2. Een variabele โ€œtekstโ€ wordt geรฏnitialiseerd met twee zinnen.
  3. De tekstvariabele wordt doorgegeven in de word_tokenize-module en het resultaat wordt afgedrukt. Deze module breekt elk woord af met leestekens die u in de uitvoer kunt zien.

Tokenisatie van zinnen

Submodule die beschikbaar is voor het bovenstaande is sent_tokenize. Een voor de hand liggende vraag in uw gedachten zou zijn waarom tokenisatie van zinnen nodig is als we de mogelijkheid hebben om woorden te tokeniseren. Stel je voor dat je het gemiddelde aantal woorden per zin moet tellen, hoe bereken je dat? Om een โ€‹โ€‹dergelijke taak uit te voeren, hebt u zowel NLTK-zintokenizer als NLTK-woordtokenizer nodig om de verhouding te berekenen. Dergelijke output dient als een belangrijk kenmerk voor machinetraining, aangezien het antwoord numeriek zou zijn.

Bekijk het onderstaande voorbeeld van NLTK-tokenizer om te zien hoe tokenisatie van zinnen verschilt van tokenisatie van woorden.

from nltk.tokenize import sent_tokenize
text = "God is Great! I won a lottery."
print(sent_tokenize(text))

Output: ['God is Great!', 'I won a lottery ']

We hebben 12 woorden en twee zinnen voor dezelfde invoer.

Tokenisatie van zinnen

Uitleg van het programma

  1. Importeer in een regel zoals het vorige programma de module sent_tokenize.
  2. Wij hebben dezelfde straf genomen. Een verdere zin-tokenizer in de NLTK-module heeft die zinnen geparseerd en uitvoer weergegeven. Het is duidelijk dat deze functie elke zin afbreekt.

Bovenstaande woord-tokenizer Python voorbeelden zijn goede instellingsstenen om de werking van de tokenisatie van woorden en zinnen te begrijpen.

Veelgestelde vragen

Woordtokenisatie splitst tekst op in afzonderlijke woorden en leestekens met behulp van word_tokenize(), terwijl zins-tokenisatie tekst opsplitst in afzonderlijke zinnen met behulp van sent_tokenize(). Beide methoden worden vaak gecombineerd om kenmerken zoals het aantal woorden per zin af te leiden.

Tokenisatie is de eerste stap die ruwe tekst omzet in hanteerbare eenheden, waardoor patroonherkenning, stemming, lemmatisatie en conversie naar numerieke kenmerken mogelijk worden. Deze kenmerken zijn essentieel voor machine learning-modellen voor taken zoals classificatie en vertaling.

Ja. NLTK ondersteunt meerdere talen door het juiste Punkt-model te laden, bijvoorbeeld sent_tokenize(text, language='french'). De ondersteuning verschilt per taal en sommige scripts hebben mogelijk gespecialiseerde tokenizers nodig.

Grote taalmodellen zetten tekst om in tokens, vaak deelwoorden, voordat ze worden verwerkt. Het model voorspelt het volgende token op basis van de voorgaande tokens, waardoor tokenisatie direct van invloed is op de lengte van de context, de kosten en de kwaliteit van de output.

Ja. Moderne AI-tokenizers gebruiken methoden zoals Byte Pair Encoding of WordPiece om zeldzame woorden in kleinere delen op te splitsen. Hierdoor blijven woordenschatten compact, terwijl onbekende of samengestelde woorden toch goed worden weergegeven.

Vat dit bericht samen met: