I have problems with generation from DLFs created by the Disjunctivizer. For example, when I try to realize (with regression tests) the test output formulas I always get an exception, as if the formulas would have a wrong structure and would be ignored by the realizer. It seems that the realizer cannot handle <dlf> ...</dlf> structure. If I understood it correctly from this paper http://www.ling.ohio-state.edu/~white.1240/papers/White-inlg06.pdf , the packing/unpacking mode is essential for this kind of sentence generation, but activating it also didn't help me. I wonder what I'm missing or misunderstanding there. Do you have any hints?
Thanks in advance!
Polina
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It looks like this may just be an issue of expecting the DLF to be within <lf> ... </lf> instead of <dlf> ... </dlf>. I've added an example to the git repo that works with ccg-realize and the routes grammar:
That is, from the openccg/grammars/routes directory, it should be possible to run ccg-realize dlf_test.xml and see in the resulting log file different outputs resulting from the various disjunctions therein.
Re the Disjunctivizer, it has not actually been tested extensively with the realizer because of an unresolved technical issue with the hypertagger that stalled further work in that direction. In particular, realization with the broad coverage grammar requires the hypertagger to be used, but the hypertagger hasn't been extended to take the disjunctions into account, which degrades its predictions and thus lowers realization quality. Thus, at this point, DLFs can only be used as intended with small hand-crafted grammars (ones not requiring the hypertagger). With the large coverage grammar, an alternative is to sample from the choices before running the realizer.
In principle it should still be possible to use the Disjunctivizer with small grammars; you might just try changing the root element for each LF to <lf> ... </lf> before sending it off to the realizer.
Mike
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
I have problems with generation from DLFs created by the Disjunctivizer. For example, when I try to realize (with regression tests) the test output formulas I always get an exception, as if the formulas would have a wrong structure and would be ignored by the realizer. It seems that the realizer cannot handle <dlf> ...</dlf> structure. If I understood it correctly from this paper http://www.ling.ohio-state.edu/~white.1240/papers/White-inlg06.pdf , the packing/unpacking mode is essential for this kind of sentence generation, but activating it also didn't help me. I wonder what I'm missing or misunderstanding there. Do you have any hints?
Thanks in advance!
Polina
Hello Polina
It looks like this may just be an issue of expecting the DLF to be within <lf> ... </lf> instead of <dlf> ... </dlf>. I've added an example to the git repo that works with ccg-realize and the routes grammar:
https://github.com/OpenCCG/openccg/blob/master/grammars/routes/dlf_test.xml
That is, from the openccg/grammars/routes directory, it should be possible to run ccg-realize dlf_test.xml and see in the resulting log file different outputs resulting from the various disjunctions therein.
Re the Disjunctivizer, it has not actually been tested extensively with the realizer because of an unresolved technical issue with the hypertagger that stalled further work in that direction. In particular, realization with the broad coverage grammar requires the hypertagger to be used, but the hypertagger hasn't been extended to take the disjunctions into account, which degrades its predictions and thus lowers realization quality. Thus, at this point, DLFs can only be used as intended with small hand-crafted grammars (ones not requiring the hypertagger). With the large coverage grammar, an alternative is to sample from the choices before running the realizer.
In principle it should still be possible to use the Disjunctivizer with small grammars; you might just try changing the root element for each LF to <lf> ... </lf> before sending it off to the realizer.
Mike
Thank you! This helped me a lot.