Natural Language Processing for Online Applications: Text retrieval, extraction and categorization