Zephyrnet-logo

Pijplijnen voor natuurlijke taalverwerking, uitgelegd

Datum:

Pijplijnen voor natuurlijke taalverwerking, uitgelegd

Dit artikel geeft een beginnersbeeld van NLP weer, evenals een uitleg van hoe een typische NLP-pijplijn eruit zou kunnen zien.


By Ram Tavva, Senior Data Scientist, Director bij ExcelR Solutions

Beeld

Introductie

 
Computers kunnen het beste omgaan met gestructureerde datasets zoals spreadsheets en databasetabellen. Maar wij mensen communiceren nauwelijks op die manier, de meeste van onze communicatie is in ongestructureerde vorm - zin, woorden, spraak en andere, wat niet relevant is voor computers.

Dat is jammer en tonnen gegevens in de database zijn ongestructureerd. Maar heb je er ooit over nagedacht hoe computers omgaan met ongestructureerde gegevens?

Ja, er zijn veel oplossingen voor dit probleem, maar NLP is zoals altijd een game-wisselaar.

Laten we meer te weten komen over NLP in detail ...
 

Wat is NLP?

 
NLP staat voor Natural Language Processing die automatisch de natuurlijke taal manipuleert, zoals spraak en tekst in apps en software.

Spraak kan van alles zijn zoals tekst die de algoritmen als invoer gebruiken, de nauwkeurigheid meten, het door zelf- en semi-supervisiemodellen laten lopen en ons de uitvoer geven waar we naar uitkijken, hetzij in spraak of tekst na invoergegevens.

NLP is een van de meest gewilde technieken die de communicatie tussen mensen en computers gemakkelijker maakt. Als u Windows gebruikt, is er Microsoft Cortana voor u, en als u macOS gebruikt, is Siri uw virtuele assistent.

Het beste is dat zelfs de zoekmachine wordt geleverd met een virtuele assistent. Voorbeeld: Google Search Engine.

Met NLP kun je alles typen wat je wilt zoeken, of je kunt op de microfoon-optie klikken en zeggen, en je krijgt de resultaten die je wilt hebben. Zie hoe NLP de communicatie tussen mensen en computers gemakkelijker maakt. Is het niet verbazingwekkend als je het ziet?

Of je nu de weersomstandigheden of het laatste nieuws op internet wilt weten, of routekaarten naar je weekendbestemming, NLP biedt je alles wat je verlangt.

Pijplijnen voor natuurlijke taalverwerking (NLP-pijpleidingen)

 
Wanneer u NLP oproept met een tekst of stem, converteert het de volledige gegevens in strings, en vervolgens ondergaat de primaire tekenreeks meerdere stappen (het proces dat verwerkingspijplijn wordt genoemd). Het gebruikt getrainde pijplijnen om toezicht te houden op uw invoergegevens en de hele reeks te reconstrueren, afhankelijk van stem toon of zin lengte.

Voor elke pijplijn keert de component terug naar de hoofdreeks. Gaat vervolgens door naar de volgende componenten. De mogelijkheden en efficiëntie zijn afhankelijk van de componenten, hun modellen en training.

Hoe NLP communicatie tussen mensen en computers gemakkelijk maakt

 
NLP gebruikt taalverwerkingspijplijnen om menselijke talen te lezen, te ontcijferen en te begrijpen. Deze pijpleidingen bestaan ​​uit zes hoofdprocessen. Dat breekt de hele stem of tekst in kleine stukjes, reconstrueert het, analyseert en verwerkt het om ons de meest relevante gegevens van de resultatenpagina van de zoekmachine te geven.

Hier zijn 6 interne stappen in NLP-pijpleidingen om de computer te helpen menselijke taal te begrijpen

Zinsegmentatie

 
Als je de alinea ('s) hebt die je moet benaderen, kun je het beste door één zin tegelijk gaan. Het vermindert de complexiteit en vereenvoudigt het proces, en levert zelfs de meest nauwkeurige resultaten op. Computers begrijpen taal nooit zoals mensen dat doen, maar ze kunnen altijd veel doen als je ze op de juiste manier benadert.

Beschouw bijvoorbeeld de bovenstaande paragraaf. Dan is uw volgende stap het opsplitsen van de alinea in enkele zinnen.

  1. Als u de alinea ('s) heeft die u moet benaderen, kunt u het beste door één zin tegelijk gaan.
  2. Het vermindert de complexiteit en vereenvoudigt het proces, en levert zelfs de meest nauwkeurige resultaten op.
  3. Computers begrijpen taal nooit zoals mensen dat doen, maar ze kunnen altijd veel doen als je ze op de juiste manier benadert.
# Importeer de nltk-bibliotheek voor NLP-processen importeer nltk # Variabele die de hele alinea opslaat text = "..." # Tokenize alinea in zinnen zinnen = nltk.sent_tokenize (tekst) # Print zinnen voor zin in zinnen: print (zin)


Als u alinea ('s) heeft om te benaderen, kunt u het beste door één zin tegelijk gaan.

Het vermindert de complexiteit en vereenvoudigt het proces, en levert zelfs de meest nauwkeurige resultaten op.

Computers begrijpen taal nooit zoals mensen dat doen, maar ze kunnen altijd veel doen als je ze op de juiste manier benadert.

Woordtokenisatie

 
Tokenisatie is het proces waarbij een zin, zin, alinea of ​​hele documenten wordt opgesplitst in de kleinste eenheid, zoals afzonderlijke woorden of termen. En elk van deze kleine eenheden staat bekend als tokens.

Deze tekens kunnen woorden, cijfers of leestekens zijn. Gebaseerd op de grens van het woord - eindpunt van het woord. Of het begin van het volgende woord. Het is ook de eerste stap om te stampen en te lemmatiseren.

Dit proces is cruciaal omdat de betekenis van het woord gemakkelijk wordt geïnterpreteerd door de woorden in de tekst te analyseren.

Laten we een voorbeeld nemen:

Die hond is een husky-ras.

Als u de hele zin tokeniseert, krijgt u als antwoord [‘That’, ‘dog’, ‘is’, a, ‘husky’, ‘breed’].

Er zijn talloze manieren waarop u dit kunt doen, maar we kunnen dit getokeniseerde formulier gebruiken om:

  • Tel het aantal woorden in de zin.
  • U kunt ook de frequentie van de herhaalde woorden meten.

Natural Language Toolkit (NLTK) is een Python-bibliotheek voor symbolische en statistische NLP.

import nltk sense_data = "Die hond is een huskyras. Ze zijn intelligent en onafhankelijk." nltk_tokens = nltk.sent_tokenize (zinsgegevens) afdrukken (nltk_tokens)


Output:

[‘That dog is a husky breed.’, ‘They are intelligent and independent.’]

Delen van spraakvoorspelling voor elk token

 
In een deel van de toespraak moeten we elk teken beschouwen. En probeer vervolgens verschillende delen van de toespraak te achterhalen - of de tokens bij zelfstandige naamwoorden, voornaamwoorden, werkwoorden, bijvoeglijke naamwoorden enzovoort horen.

Al deze helpen om te weten over welke zin we het allemaal hebben.

Laten we wat korte woordenschat eruit halen:

Corpus: Hoofdgedeelte van de tekst, enkelvoud. Corpora is het meervoud hiervan.
Lexicon: Woorden en hun betekenis.
Token: Elke “entiteit” die deel uitmaakt van wat dan ook, werd opgesplitst op basis van regels.

importeer nltk uit nltk.corpus importeer stopwoorden uit nltk.tokenize importeer word_tokenize, sent_tokenize stop_words = set (stopwords.words ('english')) // Dummy text txt = Alles draait om geld. # sent_tokenize is een van de voorbeelden van # PunktSentenceTokenizer van de nltk.tokenize.punkt module tokenized = sent_tokenize (txt) voor i in tokenized: # Word tokenizers worden gebruikt om de woorden # en interpunctie in een string te vinden wordsList = nltk.word_tokenize ( i) # stopwoorden verwijderen uit wordList wordsList = [w voor w in wordsList indien niet w in stop_words] # Een tagger gebruiken. Dat is een deeltje # tagger of POS-tagger. tagged = nltk.pos_tag (wordsList) print (getagd) 


Output:

[('Everything', 'NN'), ('is', 'VBZ'),
('all', 'DT'),('about', 'IN'),
('money', 'NN'), ('.', '.')]

Tekst Lemmatisering

 
Engels is ook een van de talen waarin we verschillende vormen van basiswoorden kunnen gebruiken. Wanneer hij op de computer werkt, kan hij begrijpen dat deze woorden voor dezelfde concepten worden gebruikt als er meerdere woorden in de zinnen staan ​​met dezelfde basiswoorden. Het proces is wat we lemmatisering noemen in NLP.

Het gaat naar het hoofdniveau om de basisvorm van alle beschikbare woorden te achterhalen. Ze hebben gewone regels om met de woorden om te gaan, en de meesten van ons zijn zich er niet van bewust.

Beeld
 

Stopwoorden identificeren

 
Wanneer u klaar bent met de lemmatisering, is de volgende stap om elk woord in de zin te identificeren. Engels heeft veel vulwoorden die geen betekenis toevoegen, maar de zin verzwakken. Het is altijd beter om ze weg te laten, omdat ze vaker in de zin voorkomen.

De meeste datawetenschappers verwijderen deze woorden voordat ze verder gaan met analyseren. De basisalgoritmen om de stopwoorden te identificeren door een lijst met bekende stopwoorden te controleren, aangezien er geen standaardregel is voor stopwoorden.

Een voorbeeld dat u zal helpen het identificeren van stopwoorden beter te begrijpen, is:

# NLTK-bibliotheekstopwoorden importeren importeer nltk van nltk.corpus importeer stopwoorden nltk.download ('stopwords') nltk.download ('punkt') van nltk.tokenize import word_tokenize ## print (stopwords.words ('english')) # willekeurig zin met veel stopwoorden sample_text = "Oh man, dit is best gaaf. We zullen meer van dergelijke dingen doen." text_tokens = word_tokenize (sample_text) tokens_without_sw = [woord voor woord in text_tokens, zo niet woord in stopwords.words ('english')] print (text_tokens) print (tokens_without_sw)


Output:

Tokenize-teksten met stopwoorden:

[‘Oh’, ‘man’,’,’ ‘this’, ‘is’, ‘pretty’, ‘cool’, ‘.’, ‘We’, ‘will’, ‘do’, ‘more’, ‘such’, ’things’, ‘.’]

Tokenize-teksten zonder stopwoorden:

[‘Oh’, ‘man’, ’,’ ‘pretty’, ‘cool’, ‘.’, ‘We’, ’things’, ‘.’]

Afhankelijkheid parseren

 
Het parseren is verder onderverdeeld in drie hoofdcategorieën. En elke klas is anders dan de anderen. Ze maken deel uit van het taggen van spraak, het parseren van afhankelijkheden en het formuleren van kieskringen.

De Part-Of-Speech (POS) is voornamelijk bedoeld voor het toekennen van verschillende labels. Het is wat we POS-tags noemen. Deze tags zeggen over een deel van de spraak van de woorden in een zin. Terwijl de afhankelijkheidsfrasering: analyseert de grammaticale structuur van de zin. Gebaseerd op de afhankelijkheden in de woorden van de zinnen.

Terwijl bij het parseren van kieskringen: de opsplitsing van de zin in subzinnen. En deze behoren tot een specifieke categorie, zoals naamwoordelijke zin (NP) en werkwoordsuitdrukking (VP).

Conclusie

 
In deze blog heb je kort geleerd hoe NLP-pijplijnen computers helpen menselijke talen te begrijpen met behulp van verschillende NLP-processen.

Beginnend met NLP, wat zijn pijplijnen voor taalverwerking, hoe maakt NLP communicatie tussen mensen gemakkelijker? En zes insiders die betrokken zijn bij NLP Pipelines.

De zes stappen die betrokken zijn bij NLP-pijplijnen zijn - zinsegmentatie, woordtokenisering, woordsoort voor elk token. Tekstlemmatisering, het identificeren van stopwoorden en het parseren van afhankelijkheden.

 
Bio: Ram Tavva is Senior Data Scientist, Director bij ExcelR Solutions.

Zie ook:

Coinsmart. Beste Bitcoin-beurs in Europa
Bron: https://www.kdnuggets.com/2021/03/natural-language-processing-pipelines-explained.html

spot_img

Laatste intelligentie

spot_img