Basic NLP Concepts: Tokenization Segmentation POS-Tagging Lemmatization Stemming Levenshtein Distance/Edit Distance Byte-pair Encoding Language Models and Perplexity Regular Expression Matching