I hope this FAQ is helpful. For prospective Ph.D. students, I'd also
like to recommend this nice article
on choosing a
Ph.D. program in Computer Science, which contains a lot of
information applicable to other disciplines, as well.
For a much more general and comprehensive discussion of graduate
school and life in academia, I recommend Cynthia Verba,
Scholarly
Pursuits: A Guide to Professional Development During the Graduate
Years, which is old but still quite useful.
I recognize that some people come from a culture where these modes of address are the natural way to approach a professor. However -- and I'm sorry to be strict about this -- I will immediately delete
any e-mail inquiries that are not addressed to me personally (that is, explicitly using my name), since those often indicate that I am part of a bulk e-mail.
Please do not send me email to ask this question or any of the related questions listed below. If you're considering applying for grad school at UMD, that's wonderful, and I appreciate your interest in working with me. However, there are too many factors involved for me to know the answer to this question myself at the time you will be writing it, and please trust me that emailing me just to tell me that you're applying will make absolutely no difference.
That said, if you apply you are more than welcome to mention me in your application as a potential advisor and to talk about how your research vision fits with my own interests. Though, CS applicants, please make sure to read this important note.
Related questions and answers:
I'm interested in prospective Linguistics or CS students who have
strong computational skills, a deep interest in human language, and who care about the problems they work on.
In general, looking at my recent publications will help you get a sense of what I do and how I approach things.
At the present time, I am most interested in students who are interested in one of the following problem areas. If you decide to apply, don't just tell me you're interested in one or more of these areas; tell me what interests you about them, how you are thinking of approaching the topic, and of course tell me about any relevant research experience.
If you are from a low-income, first generation, or traditionally underrepresented group in academia, or in computer science and/or linguistics in particular, I invite (indeed, encourage) you to let me know, if that information would not otherwise be apparent to me.
Currently the answer is no, so please don't write to ask. I will change the answer here if that changes.
I'm happy to consider
the possibility. I've had good experiences mentoring undergrad
researchers, usually people with strong computational background.
I've sent undergrads on to excellent industry positions (e.g. at
BBN) and grad schools (e.g. JHU, MIT, UMichigan), and I'm generally
happy to talk. Send me your resume and let me know how your capabilities
and interests connect to my current research priorities (see above).
I'm happy to consider the possibility. Please send me e-mail with
information about your experience so far (including how you've been working with, and on what), and how your capabilities
and interests connect to my current research priorities (see above).
I'm happy to talk about collaboration with grad students in other departments, as long as
their advisors are engaged or at least on board. That's different from advising ---
I generally do not take on research advisees whose main focus is
outside of computational linguistics. If you want to do work that is aligned with my current research interests,
and you have already
taken relevant coursework and are seriously interested in
changing fields, please send me e-mail with information about
your background, the kind of research you're interested in, and why
you're interested in making the change.
The only way to get an answer to this question is to apply to a
Ph.D. program here. And before reading further, please see this question and how I answered it.
In general, students who work with me have a
strong background in computer science, as well as exposure to
natural language processing, linguistics, or both.
The ideal student for me in the Linguistics Department
tends either to be a strong computer scientist who is so in love with
language that they want the degree in Linguistics rather than CS,
or someone coming from the cognitive science side (e.g. Linguistics,
Psychology) who already has significant experience with computational work,
at minimum someone who already has some degree of comfort with programming (typically Python).
An important thing to note: UMD does not offer degrees
specifically in computational linguistics or NLP. Students interested
in these topics typically enroll in the Ph.D. program in either Linguistics, Computer Science, or at the iSchool (i.e. College of Information
Studies). (See also the Neural and Cognitive Science program.)
Each of those programs offers information for
prospective students on its Web page. I have advised or co-advised
students from all of them.
Regardless of department, the strongest applicants will have an
established track record in computational linguistics research,
e.g. co-authorship on papers published at first-tier conferences.
That said, it is often the case that people from low-income, first
generation, or traditionally underrepresented groups have not had as
many opportunities for these experiences, so if you are a member of one of those groups,
I invite (indeed, encourage) you to let me know, if that information would not otherwise be apparent to me.
Please see this question and answer for information about research areas that I'm interested in.
An important note for Computer Science applicants:
The CS department here will often admit strong students regardless of
whether or not they are matched in advance with a specific advisor.
For many (even most) students in CS, the first year (or sometimes two
years) involves a "shopping around" process where students get to know
potential advisors and vice versa. So getting admitted to CS at University of Maryland isn't
the same as getting admitted to work with a particular advisor, even if that advisor
was mentioned in your application. If you are admitted to CS and want to work with me,
it's essential to contact me directly before you make your acceptance decision, so that we can talk about it.
Regarding qualifications, as I noted above, I am most interested in
students who have both a strong computational background and a deep
interest in human language. I can potentially co-advise students who
have just one of these or the other, depending on who the other co-advisor is.
I am sometimes asked by undergraduates interested in computational
linguistics what courses they should take, prior to grad school
applications, to better prepare themselves. First of all, bravo!
That's a good question to be asking, especially if you're asking it
early enough to do something about it. In order of priority, I think
the areas below are probably where you should focus on the computational side.
(Note also that I'm a really big fan of the 3Blue1Brown videos on YouTube, and I very highly recommend you look there for material related to some of these topics. The sequences on linear algebra, calculus, and neural networks are particularly good and I recommend them even if you're already familiar with the material.)
On the other side, if you've got computational background but you're new to language, some valuable courses to have include:
Please do not ask me this question.
From year to year, it is very difficult to say very far in advance whether or not I will even be taking new students, and unfortunately I cannot tell you your chances of being admitted. This depends not
only on your background, but on many interacting details of the
admissions process within each department, including the other
applicants that year. So please do not ask me your chances of being admitted or of my advising you, thanks.
This depends on your background and your goals. These programs are
all quite competitive, so you'll want to apply to a department where
your background provides a good chance of being accepted. Also think
about your goals. If you're thinking about eventually going into
academia, what kind of department do you imagine yourself applying to?
During your grad school experience, you'll be taking a variety of
required and elective courses outside your research area -- do you
want to be a department where required coursework explores things like
semantics and phonology, or one where you'll be spending time on
things like databases and recursion theory?
If this is a question you're asking, it probably couldn't hurt you to
look at this nice article on choosing a
Ph.D. program in Computer Science, which contains a lot of
information applicable to other disciplines, as well.
Generally if I have an open postdoc position, I'll advertise on the
CORPORA mailing list. On the other hand, I'm always happy to hear
from people who are finishing up their Ph.D. if their research
interests are closely aligned with mine. Send me some mail and tell
me about yourself. Please include a current c.v.
Please do not e-mail me with this question. It does not matter if you are self-funded. I am unlikely to host visitors if I do not personally know them or their advisor. The best way to approach this is by asking your advisor to introduce us.
If you're looking for traditional textbooks, the unquestionable standard is Jurafsky and Martin, now in its 3rd edition. As of this writing it's publicly available for free on the Web as a pre-publication draft. There are lots of people who have done online lectures based on this book; it's not hard to find slide decks for the chapters done by various academics, via web search.
If you want to watch lectures, I think Chris Manning's
CS224N Natural Language Processing with Deep Learning is brilliant. Note that lectures get updated periodically so it's worth looking for the most up-to-date lecture playlist for the course on YouTube by searching on the course title.
Having said the above, though, if you're interested in getting up to speed on NLP what I really recommend is structuring a hands-on effort around the Natural Language Toolkit. This is a python package that covers traditional NLP, but even more important, the package is tightly linked to a NLTK Book that introduces the basic concepts with python code that one can just copy/paste and then play around with. It's also worth noting that the NLTK package/book combination is a good fit for someone who programs in some other language but needs an introduction to python focused on NLP.
In general one would not typically use NLTK in a serious production setting -- for that my go-to recommendation would be spaCy -- but in terms of a great pedagogical combination of bare-minimum explanation and associated code, NLTK is the way to go if you want to get ramped up on the ideas, especially for someone who's interested in doing that in a very hands-on way. One could then use Jurafsky and Martin as a textbook reference to look in more detail when NLTK's explanations are a little too sparse; conversely, once you understand the basics through NLTK, getting up to speed on doing things in spacy will be a lot easier. Note that NLTK is probably lighter than one might want on the most recent deep learning approaches, but if you've got Jurafsky and Martin for the core ideas and Manning's lectures for detailed and more up to date discussion then I think you've got pretty much everything you need.