/**
  *  Funkce pro spočítání velikostí u všech vektorů
  */
 private function generateSizes($ngramsArr)
 {
     $outputArr = array();
     foreach ($ngramsArr as $key => $ngram) {
         $outputArr[$key] = StringClass::getVectorSize($ngram);
     }
     return $outputArr;
 }
Esempio n. 2
0
 /**
  *  Funkce pro zjištení podobnosti výčtových sloupců na základě trigramů
  */
 private function matchTrigrams($column1, $column2, $coverage = false)
 {
     $colATrigramsArr = StringClass::getTrigramsArr($this->getValues($column1));
     $col2name = (string) $column2->name . (isset($column2->formatName) ? '###' . (string) $column2->formatName : '');
     if (!isset($this->xml2trigramsArr[$col2name])) {
         //zatím nemáme určené trigramy pro sloupec ze druhého souboru
         $this->xml2trigramsArr[$col2name] = StringClass::getTrigramsArr($this->getValues($column2));
         $this->xml2trigramsSizeArr[$col2name] = StringClass::getVectorSize($this->xml2trigramsArr[$col2name]);
     }
     if ($coverage) {
         return StringClass::getTrigramsCoverage($colATrigramsArr, StringClass::getVectorSize($colATrigramsArr), $this->xml2trigramsArr[$col2name], $this->xml2trigramsSizeArr[$col2name]);
     } else {
         return StringClass::getTrigramsSimilarity($colATrigramsArr, StringClass::getVectorSize($colATrigramsArr), $this->xml2trigramsArr[$col2name], $this->xml2trigramsSizeArr[$col2name]);
     }
 }