Natural Language Processing for Online Applications: Text Retrieval, Extraction & Categorization