public function recommend($keywords)
 {
     return KeywordRecommender::makeCombineRecList($keywords);
 }
 private function __recommend($mode, $keywords, $queryId)
 {
     $weightArray = array();
     if ($mode == KEY_NO_EXPANSION) {
         if (!get_magic_quotes_gpc()) {
             $keywords = addslashes($keywords);
             $keywords = array_unique(explode(' ', $keywords));
             foreach ($keywords as $key) {
                 $product_temp = KeywordRecommender::fetch_product_weight($key);
                 foreach ($product_temp as $p_name => $p_weight) {
                     if (isset($weightArray[$p_name])) {
                         $weightArray[$p_name] += $p_weight;
                     } else {
                         $weightArray[$p_name] = $p_weight;
                     }
                 }
             }
             return $weightArray;
         }
     } else {
         if ($mode == KEY_LINK_JACCARD) {
             $expand_keywords = KeywordRecommender::fetch_expand_key($keywords);
             foreach ($expand_keywords as $expand_key) {
                 $expand_weight = KeywordRecommender::fetch_product_weight($expand_key);
                 foreach ($expand_weight as $p_name => $p_weight) {
                     if (isset($weightArray[$p_name])) {
                         $weightArray[$p_name] += $p_weight;
                     } else {
                         $weightArray[$p_name] = $p_weight;
                     }
                 }
             }
             return $weightArray;
         } else {
             if ($mode == KEY_LINK_COSINE) {
                 $keywords = array_unique(explode(' ', $keywords));
                 $expand_keywords = array();
                 foreach ($keywords as $key) {
                     $expand_results = $this->dm->query("select keyword_expand from keyword_cosine_link where keyword = '{$key}'");
                     while ($expand_row = mysql_fetch_array($expand_results)) {
                         if (!in_array($expand_row[0], $keywords)) {
                             $expand_keywords[] = $expand_row[0];
                         }
                     }
                 }
                 $expand_keywords = array_unique($expand_keywords);
                 foreach ($expand_keywords as $expand_key) {
                     $expand_weight = $this->fetch_product_weight($expand_key);
                     foreach ($expand_weight as $p_name => $p_weight) {
                         if (isset($weightArray[$p_name])) {
                             $weightArray[$p_name] += $p_weight;
                         } else {
                             $weightArray[$p_name] = $p_weight;
                         }
                     }
                 }
                 return $weightArray;
             } else {
                 if ($mode == KEY_COL_SLOPEONE) {
                     if ($this->lock == false) {
                         $this->loadUserItem();
                     }
                     $this->lock = true;
                     $keywords = array_unique(explode(' ', $keywords));
                     $openslopeone = new OpenSlopeOne();
                     foreach ($keywords as $key) {
                         if (key_exists($key, $this->user)) {
                             $weightArrayTemp = $openslopeone->getRecommendedItemsByUser($this->user[$key]);
                             if ($weightArrayTemp != NULL) {
                                 foreach ($weightArrayTemp as $p_name => $p_weight) {
                                     if (isset($weightArray[$this->item[$p_name]])) {
                                         $weightArray[$this->item[$p_name]] += $p_weight;
                                     } else {
                                         $weightArray[$this->item[$p_name]] = $p_weight;
                                     }
                                 }
                             }
                         }
                     }
                     return $weightArray;
                 }
             }
         }
     }
 }