class SAP_BM25 { public static function score($query_terms, $index) { $N = count($index); $k1 = 1.5; $b = 0.75; $doc_lengths = []; $avgdl = 0; foreach ($index as $id => $vector) { $len = array_sum($vector); $doc_lengths[$id] = $len; $avgdl += $len; } $avgdl = $avgdl / max($N,1); $scores = []; foreach ($index as $id => $vector) { $score = 0; $dl = $doc_lengths[$id]; foreach ($query_terms as $term) { $df = 0; foreach ($index as $doc) { if (isset($doc[$term])) $df++; } if ($df == 0) continue; $idf = log(($N - $df + 0.5)/($df + 0.5) + 1); $tf = $vector[$term] ?? 0; $score += $idf * ( ($tf * ($k1 + 1)) / ($tf + $k1 * (1 - $b + $b * ($dl/$avgdl))) ); } if ($score > 0) $scores[$id] = $score; } arsort($scores); return $scores; } } class SAP_Medical_Classifier { public static function classify($query) { $map = [ 'ed' => '泌尿器科', '勃起' => '泌尿器科', '薄毛' => '皮膚科', 'aga' => '皮膚科', '不眠' => '心療内科', '動悸' => '循環器内科' ]; $query = strtolower($query); foreach ($map as $keyword => $dept) { if (strpos($query, $keyword) !== false) { return $dept; } } return null; } } class SAP_AI_Search { public static function search($query) { $expanded = SAP_Synonym::expand($query); $index = get_option('sap_vector_index', []); $scores = SAP_BM25::score($expanded, $index); return $scores; } } class SAP_REST { public static function init(){ register_rest_route('sap/v1','/ai-search',[ 'methods'=>'GET', 'callback'=>[__CLASS__,'search'], 'permission_callback'=>'__return_true' ]); } public static function search($req){ $query = sanitize_text_field($req['q']); $cache_key = 'sap_ai_'.md5($query); if($cached = get_transient($cache_key)){ return $cached; } $results = SAP_AI_Search::search($query); $response = [ 'query'=>$query, 'department'=>SAP_Medical_Classifier::classify($query), 'results'=>$results ]; set_transient($cache_key,$response,600); return $response; } } 医)冨森会森ノ宮キャンパス歯科・口腔外科 へのコメント https://meplus.org/my-number-hosp-pharm/%e5%8c%bb%ef%bc%89%e5%86%a8%e6%a3%ae%e4%bc%9a%e6%a3%ae%e3%83%8e%e5%ae%ae%e3%82%ad%e3%83%a3%e3%83%b3%e3%83%91%e3%82%b9%e6%ad%af%e7%a7%91%e3%83%bb%e5%8f%a3%e8%85%94%e5%a4%96%e7%a7%91?utm_source=rss&utm_medium=rss&utm_campaign=%25e5%258c%25bb%25ef%25bc%2589%25e5%2586%25a8%25e6%25a3%25ae%25e4%25bc%259a%25e6%25a3%25ae%25e3%2583%258e%25e5%25ae%25ae%25e3%2582%25ad%25e3%2583%25a3%25e3%2583%25b3%25e3%2583%2591%25e3%2582%25b9%25e6%25ad%25af%25e7%25a7%2591%25e3%2583%25bb%25e5%258f%25a3%25e8%2585%2594%25e5%25a4%2596%25e7%25a7%2591 オンライン診療対応の医療機関を探す Wed, 02 Apr 2025 15:36:15 +0000 hourly 1