The idea in SRL is to find predicates (mostly verbs) and identify the arguments of these verbs (eg., Agents, Patients, Experiencers, Themes, etc.). For example:
- John ate a sandwich
- For the predicate ate, John is the agent and sandwich is the patient
- A sandwich was eaten by John
- Same as above.
- Bill saw John eat a sandwich
- For the predicate ate, it's the same as above
- For the predicate saw, the agent is Bill
The general approach to doing semantic role labeling is a pipeline of "first parse, second find verbs, third find the arguments to those verbs." (There's some argument as to whether parsing is strictly necessary, but it's clearly at least helpful.)
The biggest challenge here is finding the arguments. Basically we'll go over the parse tree, find potential arguments (basically internal nodes in the tree), and then try to use statistical information to figure out which nodes correspond to which arguments (or none).
- John saw a man with a telescope.
First, we'll identify all potential argument candidates:
- John
- a
- man
- a man
- with
- a
- telescope
- a telescope
- with a telescope
- John
- man
- a man
- telescope
- a telescope
- with a telescope
A more sane approach is to use instead (or in addition) tree paths. This idea has come up in a lot of places, and often works pretty well. If we look at the parse of this sentence:
- (S (NP John) (VP (V saw) (NP (DT a) (NN man)) (PP (P with) (NP (DT a) (NN telescope)))))
There are lots of ways to represent this path, but a baseline might be to say that the path looks like:
- up:VP down:3:PP down:2:NP down:2:NN
However we encode the path, we now need to estimate something like P(means | path). A naive approach would be to Bayes' rule this to get P(means) * P(path | means) and then we could model the path with a Markov model. Or, if you've taken machine learning, you can use the path as a collection of features in some learning algorithm (or if you're being fancy, turn it into a kernel!). We'll talk about this more when we talk about learning.
As a final note, Matthew Gerber and Joyce Chai got best paper at ACL 2010 for their paper Beyond NomBank: A Study of Implicit Arguments for Nominal Predicates, where they look at similar things for nominal predicates rather than verbal predicates. In this case, I agree: this is a great paper.
A follow-up question to the in-class discussion on thursday. How to proceed if an out-of-vocabulary predicate, say "unfriend", is encountered? In this case, it would be unclear how many and what kind of arguments the predicate takes.
ReplyDelete