NLTK Tokenize: Tokenizer voor woorden en zinnen met voorbeeld

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, intelligent 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 stammen en lemmatisering, maar behandel ze als stappen voor het opschonen van tekstgegevens met behulp van NLP (Natuurlijke taalverwerking). We bespreken stammen en lemmatisering later in de tutorial. 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.

Samengevat

  • Tokenisatie in NLP is het proces waarbij een grote hoeveelheid tekst wordt verdeeld in kleinere delen, tokens genaamd.
  • Natuurlijke taalverwerking wordt gebruikt voor het bouwen van toepassingen zoals tekstclassificatie, intelligent chatbot, sentimentele analyse, taalvertaling, enz.
  • Natural Language toolkit heeft een zeer belangrijke module NLTK-tokenize-zin die verder bestaat uit submodules
  • We gebruiken de methode word_tokenize() om een ​​zin in woorden te splitsen. De uitvoer van de woordtokenizer in NLTK kan worden geconverteerd naar Data Frame voor een beter tekstbegrip in machine learning-toepassingen.
  • Submodule die beschikbaar is voor het bovenstaande is sent_tokenize. Zin-tokenizer in Python NLTK is een belangrijke functie voor machinetraining.