NLTK Tokenize: woorden en zinnen Tokenizer met voorbeeld

Inhoudsopgave:

Anonim

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 het stampen en lemmatiseren. Tokenization helpt ook om gevoelige data-elementen te vervangen door niet-gevoelige data-elementen.

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

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

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

  1. woord tokenize
  2. zin tokenize

Tokenisatie van woorden

We gebruiken de methode word_tokenize () om een ​​zin in woorden te splitsen. De uitvoer van woordtokenisatie kan worden geconverteerd naar dataframe voor een beter begrip van tekst in toepassingen voor machine learning. Het kan ook worden gebruikt als invoer voor verdere stappen voor het opschonen van tekst, zoals het verwijderen van interpunctie, het verwijderen van numerieke tekens of het stemmen. Machine learning-modellen hebben numerieke gegevens nodig om te worden getraind en om een ​​voorspelling te doen. Woordtokenisatie wordt een cruciaal onderdeel van de conversie van tekst (string) naar numerieke gegevens. Lees alstublieft over Bag of Words of CountVectorizer. Raadpleeg het onderstaande woord tokenize NLTK-voorbeeld om de theorie beter te begrijpen.

from nltk.tokenize import word_tokenizetext = "God is Great! I won a lottery."print(word_tokenize(text))Output: ['God', 'is', 'Great', '!', 'I', 'won', 'a', 'lottery', '.']

Code Verklaring

  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 module word_tokenize en het resultaat afgedrukt. Deze module breekt elk woord af met interpunctie die u in de uitvoer kunt zien.

Tokenisatie van zinnen

Sub-module die beschikbaar is voor het bovenstaande is sent_tokenize. Een voor de hand liggende vraag in uw gedachten zou zijn waarom zin-tokenisatie nodig is als we de optie hebben voor woord-tokenisatie . Stel je voor dat je het gemiddelde aantal woorden per zin moet tellen, hoe ga je dan berekenen? Om een ​​dergelijke taak uit te voeren, hebt u zowel de NLTK-zin-tokenizer als de NLTK-woord-tokenizer nodig om de verhouding te berekenen. Dergelijke output dient als een belangrijk kenmerk voor machinetraining, aangezien het antwoord numeriek zou zijn.

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

from nltk.tokenize import sent_tokenizetext = "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.

Toelichting op het programma:

  1. In een regel als het vorige programma, importeerde de module sent_tokenize.
  2. We hebben dezelfde zin genomen. Verdere zin-tokenizer in NLTK-module heeft die zinnen geparseerd en uitvoer weergegeven. Het is duidelijk dat deze functie elke zin breekt.

Bovenstaande voorbeelden van tokenizer Python zijn goede instellingsstenen om de mechanica van het woord en de tokenisatie van zinnen te begrijpen.

Overzicht

  • Tokenization 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 applicaties zoals tekstclassificatie, intelligente 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 word tokenizer in NLTK kan worden geconverteerd naar dataframe voor een beter begrip van tekst in machine learning-toepassingen.
  • Sub-module die beschikbaar is voor het bovenstaande is sent_tokenize. Zin-tokenizer in Python NLTK is een belangrijke functie voor machinetraining.