本文實例講述了PHP實現的最大正向匹配算法。分享給大家供大家參考,具體如下:
正向最大匹配算法:從左到右將待分詞文本中的幾個連續字符與詞表匹配,如果匹配上,則切分出一個詞。但這里有一個問題:要做到最大匹配,并不是第一次匹配到就可以切分的 。
函數中包含三個參數:
$query 查詢詞
$dict 詞典
$max_len 最大長度(這里默認值設置為15)
詞典示例:
$dict = array( 腳本之家 = 腳本之家 , 腳本下載 = 腳本下載 , JS編程 = JS編程 );
函數定義:
/* * $query 查詢詞 * $dict 詞典 * $max_len 最大長度function extractWords($query,$dict,$max_len=15){ $feature = $slen=mb_strlen($query, UTF8 $c_bg = 0; while($c_bg $slen){ $matched = false; $c_len =(($slen-$c_bg) $max_len)?$max_len:($slen-$c_bg); $t_str = mb_substr($query, $c_bg,$c_len, UTF8 for($i=$c_len;$i $i--){ $ttts = mb_substr($t_str, 0,$i, UTF8 if(!empty($dict[$ttts])){// echo matched = .$ttts.PHP_EOL; $matched = true; $c_bg += $i; if(!empty($feature)){ $feature.= , $feature.=$ttts; break; if(!$matched){ $c_bg++; echo $feature.PHP_EOL;}
使用方法:
$query= 歡迎訪問腳本之家!腳本之家是國內專業的網站,提供各種腳本下載及JS、Python、php等編程資料 extractWords($query,$dict);
運行結果:
腳本之家,腳本之家,腳本下載您可能感興趣的文章:
PHP性能分析工具xhprof的安裝使用與相關的注意事項
php封裝db類連接sqlite3數據庫的方法實例講解
PHP實現模擬http請求的方法分析講解
以上就是PHP實現的最大正向匹配算法示例講解的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答