CE478 : natural language processing