)]}'
{
  "commit": "bccdf70f626be8d0efb3b63701caf2e789fe8dbf",
  "tree": "543f2e984b656b1f856e4a4f7c1e7d2e4d3149e7",
  "parents": [
    "8bacebb64a582d71eee5005a2de377fb1027da69"
  ],
  "author": {
    "name": "Marc Kupietz",
    "email": "kupietz@ids-mannheim.de",
    "time": "Thu Sep 03 14:26:48 2026 +0200"
  },
  "committer": {
    "name": "Marc Kupietz",
    "email": "kupietz@ids-mannheim.de",
    "time": "Thu Sep 03 14:26:48 2026 +0200"
  },
  "message": "Guard log-likelihood against windows covering the whole corpus\n\nThe contingency table of ll() classifies all N corpus tokens by whether\nthey lie inside a window around the node, using window_size * O1 as the\nrow total. That stops being a partition once the windows cover more than\nthe corpus: N - window_size * O1 turns negative, and the score became\nNaN through a log() of a negative number, with only a warning from log()\nitself to indicate what had happened.\n\nSuch a node has to cover more than 1/w of the corpus, so with the\ndefault window it is out of reach, but in DeReKo \"der\" (2.90% of all\ntokens) gets there from a context of 18 left and 18 right, \"die\" from\n19+19 and \"und\" from 24+24.\n\nThese cases now yield NA with a warning that names the condition and\nsuggests a smaller window. The check is vectorized, so that only the\naffected values become NA.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I5e11396c67bc9103ec73745726d052857536df7f\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "efa0a7ee4d9ae608790888e517e8d5c4a97380f3",
      "old_mode": 33188,
      "old_path": "NEWS.md",
      "new_id": "7cccf7bf2702f9027040b5c87b48f1e1a8dc813e",
      "new_mode": 33188,
      "new_path": "NEWS.md"
    }
  ]
}
