Trainable Methods for Surface Natural Language Generation | Synapse