countTokensFrequency($samples); $count = count($samples); foreach ($this->idf as &$value) { $value = log($count / $value, 10); } foreach ($samples as &$sample) { foreach ($sample as $index => &$feature) { $feature = $feature * $this->idf[$index]; } } } /** * @param array $samples * * @return array */ private function countTokensFrequency(array $samples) { $this->idf = array_fill_keys(array_keys($samples[0]), 0); foreach ($samples as $sample) { foreach ($sample as $index => $count) { if ($count > 0) { ++$this->idf[$index]; } } } } }