Efficient Methods for Natural Language Processing: A Survey