Learning Structured Information in Natural Language Applications