Integer linear programs (ILPs) have been used to solve NP-hard decoding algorithms in NLP. They have been used in dependency parsing, coreference resolution, summarization, and many others. Often, ILP formulations are used to solve a decoding problem exactly before a specialized algorithm has been developed (for an example, see Smatch).
(Search “integer linear programming slides pdf” on Google)