Closed dan-zeman closed 2 years ago
Actually, I now see that the non-determinism may be caused by the other blocks I have in the scenario. Still investigating.
I don't think corefud.MoveHead
is non-deterministic.
It just conservatively keeps the original head if it is one of the acceptable heads in the enhanced graph (and there was no head in the basic dependencies).
I don't think
corefud.MoveHead
is non-deterministic. It just conservatively keeps the original head if it is one of the acceptable heads in the enhanced graph (and there was no head in the basic dependencies).
So is there a way to say that the original head should not play any role? Or should I always insert this before corefud.MoveHead
?
util.Eval node='for m in node.coref_mentions: m.head = m.words[0]'
So now both is possible: either the util.Eval code or corefud.MoveHead keep_head_if_possible=0
.
Great, thanks!
I routinely use
git diff
to check whether the most recent change in processing had the intended impact on the data. Recently I noticed a number of spurious mention head changes after every change I did, and the changes had nothing obvious to do with the changes I did in conversion code. So I addedcorefud.MoveHead
to the scenario but the problem is still there.To test it, I ran the same scenario on the same input (cs_pcedt-ud-dev.conllu) three times in a row. The output of the first two runs was identical (showing only the second one below) but the output of the third one was different.
And the git diffs on the result (there was no commit in the meantime, so both diffs are against the same base):