advanced natural language processing algorithms