LanguageDetector\Distance\OutOfPlace::distance PHP Method

distance() public method

public distance ( array $sample, array $ngrams, $total )
$sample array
$ngrams array
    public function distance(array $sample, array $ngrams, $total)
    {
        $score = 0;
        $penalty = count($sample) + 1;
        $pos = 0;
        foreach (array_slice($ngrams, 0, count($sample)) as $ngram => $dummy) {
            if (empty($sample[$ngram])) {
                $score += $penalty;
                $pos++;
                continue;
            }
            $score += abs($pos - $sample[$ngram]['pos']);
            $pos++;
        }
        return 1 - $score / (($penalty - 1) * $total);
    }
OutOfPlace