Foundations of Computational Linguistics: Human-Computer Communication in Natural Language