Freeform generation from a fixed vocabulary