Natural Language Processing (NLP) is het vakgebied dat zich bezig houdt met het verwerken van menselijke taal door computers.
Enkele veel voorkomende taken in NLP zijn:
Complexiteit
Natural Language Processing is een voor computers complexe taak. Dit heeft o.a. te maken met de dubbelzinnigheid (ambiguïteit) van de betekenis van woorden in taal. In een zin als ‘Ik boek een reis’ heeft het woord ‘boek’ een andere betekenis als in de zin ‘Ik lees een boek’. Of boek een zelfstandig naamwoord (voorwerp) of werkwoord (actie) is hangt dus af van het gebruik van het woord in de zin. In taal is de betekenis van woorden en zinnen sterk afhankelijk van de context waarin de woorden en zinnen gebruikt worden. Voor mensen is het begrijpen van taal een natuurlijk aangeleerd proces. Voor computers, die logische regels vereisen, is dit proces lastiger uit te leggen.
Een relatief eenvoudige taak als tokenization -het opknippen van tekst in zinnen en woorden- neemt ook diverse complexiteiten met zich mee. Naast een basisregel als “Een zin begint met een hoofdletter en eindigt met een punt.” moet rekening gehouden worden met o.a. afkortingen en namen die ook hoofdletters en punten kunnen bevatten. In messaging/app-berichten komen taalfouten regelmatig voor, zoals ontbrekende leestekens (interpunctie), missende hoofdletters, spelfouten en foutief spatiegebruik. Taalfouten zijn menselijk en een computer dient dus niet alleen om te kunnen gaan met interpunctie, maar ook met het ontbreken ervan. Een goede NLP bevat gedegen spellingscorrectie en kan redundant omgaan met goede en verkeerde schrijfwijzen van woorden.