Maison > Article > développement back-end > Un exemple de l'algorithme de correspondance maximale implémenté en PHP
Cet article présente principalement l'algorithme de correspondance maximale implémenté en PHP, décrit brièvement le concept et le principe de l'algorithme de correspondance maximale et analyse les techniques de fonctionnement associées à la mise en œuvre et à l'utilisation de l'algorithme de correspondance maximale en PHP sous la forme de exemples. Les amis dans le besoin peuvent se référer à
Cet article décrit l'algorithme de correspondance maximale implémenté en PHP. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :
Algorithme de correspondance maximale avant : Faites correspondre plusieurs caractères consécutifs dans le texte à segmenter avec la liste de mots de gauche à droite. S'il y a une correspondance, alors un mot est segmenté. Mais il y a ici un problème : pour obtenir une correspondance maximale, il n'est pas possible de diviser la première correspondance. La fonction
contient trois paramètres :
$query Mot de requête
$dict Dictionnaire
$max_len Longueur maximale (ici la valeur par défaut est fixée à 15)
Exemple de dictionnaire :
$dict = array( '脚本之家'=>'脚本之家', '脚本下载'=>'脚本下载', 'JS编程'=>'JS编程' );
Définition de la fonction :
/* * $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>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; }
Utilisation :
$query='欢迎访问脚本之家!脚本之家是国内专业的网站,提供各种脚本下载及JS、Python、php等编程资料'; extractWords($query,$dict);
Résultat de l'exécution :
脚本之家,脚本之家,脚本下载
Une analyse et une explication de la méthode de PHP implémentant une requête http simulée
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!