NLP for CP
Addressing Constraint Programming with Natural Language Processing
Modeling in constraint programming is a hard task that requires considerable expertise. Automated model reformulation aims at assisting a naive user in modeling constraint problems. In this context, formal specification languages have been devised to express constraint problems in a manner similar to natural yet rigorous specifications that use a mixture of natural language and discrete mathematics. Yet, a gap remains between such languages and the natural language in which humans informally describe problems. Our long-range goal is to alleviate this issue by proposing a method for automatically building formal model specifications from natural language description, using techniques coming from machine learning and natural language processing.
Our first step in this challenging research direction was the development of a system that automatically detects the parts of text that describe constraints [1]. The system takes as input the natural language description of a constraint problem, and outputs a highlighting of portions of such text, identified as belonging to a constraint description. We then took a similar approach to detect the parts of text that describe the objects and the decisions to be modelled, which give hints on the possible variables of the problem and their domain values.
In the Resources page, we give links to the dataset we created, the predictions obtained for our experimental evaluation, and the software needed to reproduce our results. In the XYZ page, we provide a GUI of our system.