最大正向匹配算法 PHP实现
程序员文章站
2022-03-07 20:41:58
...
字符串最大正向匹配算法说明可以参考其他文章,这里只做实现。
三个参数:查询词 $query,词典$dict,最大长度,这里设置为15词典示例:
$dict = array( '测试字符'=>'测试字符','测试'=>'测试',)public 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>1;$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; }
以上就介绍了最大正向匹配算法 PHP实现,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。