One possible solution is to use supervised learning, which requires training data (Galley et al., 2004;Abbott et al., 2011;Andreas et al., 2012).
training data are also likely domain and language dependent, which makes them hard for re-use.