Пример #1
0
 /**
  * 產生提示文字
  * @return String
  */
 public function _produce_tip_text()
 {
     //langvar.speech.tip.recommend_by_threshold
     $threshold = $this->CI->config->item('langvar.' . $this->langvar_name . '.tip.recommend_by_threshold');
     $membership_function = $this->_get_membership_function();
     $anchor_speech = $this->annotation->get_anchor_speech();
     $this->_CI_load('library', 'fuzzy/Output_language_variable_collection');
     $tip_text_header = $this->name . '.';
     $recommend_langs = array();
     foreach ($membership_function as $speech => $ms) {
         if (FALSE === in_array($speech, $anchor_speech)) {
             //先計算是否高過recommend_by_threshold
             $ms_langcoll = new Output_language_variable_collection();
             $ms_langcoll->set_memberships($ms);
             $score = $ms_langcoll->get_defuzzy_code();
             $lang = $this->lang->line($tip_text_header . $speech);
             //test_msg($score, array($this->langvar_name.'.tip.recommend_by_threshold', $lang, $threshold, ($score < $threshold)));
             if ($score < $threshold) {
                 break;
             }
             if (FALSE === $lang) {
                 continue;
             }
             $recommend_langs[] = $lang;
             if (count($recommend_langs) > 4) {
                 break;
             }
         }
     }
     $recommend = '';
     foreach ($recommend_langs as $lang) {
         if ($recommend != '') {
             $recommend .= $this->lang->line('tip.comma');
         }
         $recommend .= $lang;
     }
     $text = $this->lang->line($this->name . '.text', $recommend);
     return $text;
 }