Finite-State Methods and Natural Language Processing