Instructors: Danish Pruthi and Aditya Gopalan

Term: January 2025 – May 2025

Time: Tuesdays & Thursdays (11:30-13:00)

Venue: Biological Sciences Auditorium

Credits: 3:1

Outline: This course is a graduate-level introduction to the field of Natural Language Processing (NLP), which involves building computational systems to handle human languages. Why care about NLP systems? We interact with them on a daily basis—such systems answer the questions we ask (using Google, or other search engines), curate the content we read, autocomplete words we are likely to type, translate text from languages we don’t know, flag content on social media that we might find harmful, etc. Such systems are prominently used in industry as well as academia, especially for analyzing textual data.

Learning Outcomes: The course is structured to emphasize practical learning. With four assignments, students will get a good sense on challenges involved in building models that deal with human languages. Post completion, students will feel comfortable developing models for problems involving textual data. The course also spends a considerable amount of time on language models, so students would be able to participate (in an informed way) in the current wave of large language models (LLMs). After the course, students would also be able to pick up most recent published research, and understand majority of the ideas in them.

Prerequisites: The class is intended for graduate students and senior undergraduates. We do not plan to impose any strict requisites on IISc courses that one should have completed to register for this course. However, students are expected to know the basics of linear algebra, probability, and calculus. Programming assignments would require proficiency in Python, familiarity with PyTorch would also be useful. There will be no pre-requisite quiz, we expect students to self-determine whether they are prepared to take this course or not.

Announcements

Course Schedule

The course schedule is as follows. This is subject to changes based on student feedback and pace of the instruction.

Date Topic Reading Material
Jan 8 Course introduction
Jan 13 Text classification I Eisenstein Sec 2-2.1
Jan 15 Text classification II Eisenstein Sec 2-2.1
Jan 20 Word Representations Word2Vec: 1, 2; J & M Chapter 6
Jan 22 N-gram Language Models J& M Ch 3
Jan 27 N-gram models II

Course Evaluation

Details will be added shortly.

Assignments

The programming assignments will tentatively involve building systems for learning word representations, text classification, language modeling, machine translation, and named entity recognition. The assignments will be implemented using interactive Python notebooks intended to run on Google’s Colab infrastructure. This allows students to use GPUs for free and with minimal setup. The notebooks will contain instructions interleaved with code blocks for students to fill in. These assignments are meant to be solved individually.

Discussions & (Anonymous) Feedback

We will use Teams for all discussions on course-related matters. Registered students should have received the joining link/passkey.

If you have any feedback, you can share it (anonymously or otherwise) through this link: http://tinyurl.com/feedback-for-danish

Teaching Assistants

  1. Dayita Chaudhari
  2. Harshit Rawat
  3. Purva Parmar
  4. Savyasachi Deval
  5. Sudharshan T R
  6. Victor Azad

Reference Books

  1. Speech and Language Processing (3rd ed. draft) by Dan Jurafsky and James H. Martin
  2. Introduction to Natural Language Processing by Jacob Eisenstein
  3. Neural Network Methods for Natural Language Processing by Yoav Goldberg
-