static public function tmi(array $ngram, int $totalNgrams) : float
    {
        $var = self::setStatVariables($ngram, $totalNgrams);

        $tmi = 0;

        if($var['jointFrequency']) {
            $tmi += $var['jointFrequency']/$totalNgrams * self::computePMI( $var['jointFrequency'], $var['m11'] )/ log(2);
        }

        if($var['LminusJ']) {
            $tmi += $var['LminusJ']/$totalNgrams * self::computePMI( $var['LminusJ'], $var['m12'] )/ log(2);
        }

        if($var['RminusJ']) {
            $tmi += $var['RminusJ']/$totalNgrams * self::computePMI( $var['RminusJ'], $var['m21'] )/ log(2);
        }

        if($var['n22']) {
            $tmi += $var['n22']/$totalNgrams * self::computePMI( $var['n22'], $var['m22'] )/ log(2);
        }

        return $tmi;
    }
static public function tmi(array $ngram, int $totalNgrams) : float
    {
        $var = self::setStatVariables($ngram, $totalNgrams);

        $tmi = 0;

        if($var['jointFrequency']) {
            $tmi += $var['jointFrequency']/$totalNgrams * self::computePMI( $var['jointFrequency'], $var['m11'] )/ log(2);
        }

        if($var['LminusJ']) {
            $tmi += $var['LminusJ']/$totalNgrams * self::computePMI( $var['LminusJ'], $var['m12'] )/ log(2);
        }

        if($var['RminusJ']) {
            $tmi += $var['RminusJ']/$totalNgrams * self::computePMI( $var['RminusJ'], $var['m21'] )/ log(2);
        }

        if($var['n22']) {
            $tmi += $var['n22']/$totalNgrams * self::computePMI( $var['n22'], $var['m22'] )/ log(2);
        }

        return $tmi;
    }
static public function tmi ( array $ ngram , int $ totalNgrams ) : float { $ var = self :: setStatVariables ( $ ngram , $ totalNgrams ) ; $ tmi = 0 ; if ( $ var [ 'jointFrequency' ] ) { $ tmi += $ var [ 'jointFrequency' ] / $ totalNgrams * self :: computePMI ( $ var [ 'jointFrequency' ] , $ var [ 'm11' ] ) / log ( 2 ) ; } if ( $ var [ 'LminusJ' ] ) { $ tmi += $ var [ 'LminusJ' ] / $ totalNgrams * self :: computePMI ( $ var [ 'LminusJ' ] , $ var [ 'm12' ] ) / log ( 2 ) ; } if ( $ var [ 'RminusJ' ] ) { $ tmi += $ var [ 'RminusJ' ] / $ totalNgrams * self :: computePMI ( $ var [ 'RminusJ' ] , $ var [ 'm21' ] ) / log ( 2 ) ; } if ( $ var [ 'n22' ] ) { $ tmi += $ var [ 'n22' ] / $ totalNgrams * self :: computePMI ( $ var [ 'n22' ] , $ var [ 'm22' ] ) / log ( 2 ) ; } return $ tmi ; }
Calculate the true mutual information value
@param array $ngram Array of ngrams with frequencies
@return float Return the calculated value
Calculate the true mutual information value