/** * 產生提示文字 * @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; }