<html>
<p>
    DeReKoVecs (Fankhauser & Kupietz 2022, 2017, 2019; Kupietz et al. 2018) is the new open lab of the Corpus Linguistics group at IDS Mannheim. Similar to the
    Collocation Database <a href="http://corpora.ids-mannheim.de/">CCDB</a> (Keibel &amp; Belica 2007, Belica 2011), DeReKoVecs serves for investigating and comparing
    of measurements, dimension reduction procedures, visualizations etc., to track down detailed paradigmatic and syntagmatic relations
    between words based on their use in very large corpora such as the German Reference Corpus DeReKo (Kupietz et al. 2010, 2018) or the Reference Corpus of the Contemporary Romanian Language CoRoLa (Barbu Mititelu et al. 2018, Cristea et al. 2017).
</p>
<p>
    The models used here are based on an extension of word2vec (Mikolov et al. 2013), wang2vec (Ling et al. 2015) 
    and on the other hand on simple co-occurence counts and analysis methods that operate on these.
</p>
<h3>Effective window size and auto focus</h3>
<p>
    The association measures LL, MI, MI², MI³ and nPMI are not computed over the whole context
    window, but only over the <em>attested positions</em>, i.e. those positions in which the
    collocate occurs at least once. The expected frequency is based on this effective window,
    which rates a collocate occurring in few positions higher than one spread over many, and thus
    helps to tell actual collocations from words that merely occur in the same contexts. Note
    that the values are therefore not directly comparable to those of tools that always compute
    with a fixed window size.
</p>
<p>
    LDaf, in contrast, is the <em>auto focus</em> score (Belica), i.e. the highest value that any
    – not necessarily contiguous – selection of positions reaches, an idea also known from the
    collocation database <a href="http://corpora.ids-mannheim.de/">CCDB</a>. As its denominator
    grows with the width of the selection, it rewards pairs whose co-occurrences are
    concentrated, which is why it usually orders collocates most usefully and is used as the
    default order here. It is Dice-like, but not Log-Dice, so it is not on the same scale as LD
    and can be higher or lower than it. Both can be read off the auto-focus column of the
    collocation table, where the attested positions are marked with ◽ and those selected by the
    auto focus with ◾. LD itself does not depend on any window.
</p>

<h3>Disclaimer</h3>
<p>
    Please note that  – unlike e.g. <a href="https://korap.ids-mannheim.de/">KorAP</a> – we cannot operate DeReKoVecs 
    as a service with high reliability. DeReKoVecs is only intended as a glass laboratory. 
    Things can change unannounced at any time and even a complete breakdown over a longer period of time cannot be excluded with certainty.
    If you would like to use DeReKoVecs for your own research in the longer term, please contact us.
</p>
<h3>Scheduled Downtimes and Announcements</h3>
<dl id="downtimes">
    <dt>2026-09-04</dt>
    <dd>
        Log-Dice (LD) is now computed exactly as defined by Rychlý (2008),
        \(14 + \log_2 \frac{2f_{1,2}}{f_1 + f_2}\), without the window size factor that used to be
        applied to \(f_1\). Values are therefore higher than before, by up to \(\log_2\) of the
        window size, and directly comparable to those of other tools such as Sketch Engine.
        LDaf is unchanged, as is the order of the collocates: it is the auto focus score, which
        keeps the window size factor deliberately, since that is what makes it sensitive to how
        concentrated a pair is. The other measures are unaffected as well, the window size
        belonging in their expected frequency.
    </dd>
</dl>
</html>
