Heim  >  Artikel  >  Backend-Entwicklung  >  Ein Beispiel für den in PHP implementierten Maximum-Forward-Matching-Algorithmus

Ein Beispiel für den in PHP implementierten Maximum-Forward-Matching-Algorithmus

jacklove
jackloveOriginal
2018-07-05 17:47:151733Durchsuche

Dieser Artikel stellt hauptsächlich den in PHP implementierten Maximum-Forward-Matching-Algorithmus vor, beschreibt kurz das Konzept und Prinzip des Maximum-Forward-Matching-Algorithmus und analysiert die zugehörigen Betriebstechniken zur Implementierung und Verwendung des Maximum-Forward-Matching-Algorithmus in PHP in Form von Beispiele. Freunde in Not können sich auf

beziehen. Dieser Artikel beschreibt den in PHP implementierten Maximum-Forward-Matching-Algorithmus. Teilen Sie es allen als Referenz mit. Die Details lauten wie folgt:

Vorwärts-Maximum-Matching-Algorithmus: Ordnen Sie mehrere aufeinanderfolgende Zeichen im zu segmentierenden Text der Wortliste von links nach rechts zu. Wenn es eine Übereinstimmung gibt, wird ein Wort segmentiert. Hier gibt es jedoch ein Problem: Um eine maximale Übereinstimmung zu erreichen, ist es nicht möglich, die erste Übereinstimmung aufzuteilen. Die Funktion

enthält drei Parameter:

$query Abfragewort
$dict Dictionary
$max_len Maximale Länge (hier ist der Standardwert auf 15 eingestellt)

Wörterbuchbeispiel:

$dict = array(
  '脚本之家'=>'脚本之家',
  '脚本下载'=>'脚本下载',
  'JS编程'=>'JS编程'
);

Funktionsdefinition:

/*
 * $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,&#39;UTF8&#39;);
      for($i=$c_len;$i>1;$i--){
        $ttts = mb_substr($t_str, 0,$i,&#39;UTF8&#39;);
          if(!empty($dict[$ttts])){
//          echo &#39;matched = &#39;.$ttts.PHP_EOL;
            $matched = true;
            $c_bg += $i;
            if(!empty($feature)){
              $feature.=",";
            }
            $feature.=$ttts;
            break;
          }
      }
      if(!$matched){
        $c_bg++;
      }
    }
    echo $feature.PHP_EOL;
}

Verwendung:

$query=&#39;欢迎访问脚本之家!脚本之家是国内专业的网站,提供各种脚本下载及JS、Python、php等编程资料&#39;;
extractWords($query,$dict);

Laufergebnis:

脚本之家,脚本之家,脚本下载

Artikel, die Sie interessieren könnten:

Installation und Verwendung des PHP-Performance-Analysetools xhprof und zugehörige Vorsichtsmaßnahmen

Eine Beispielerklärung der Methode, mit der PHP die DB-Klasse kapselt, um eine Verbindung zur SQLite3-Datenbank herzustellen

Eine Analyse und Erklärung der Methode zur Simulation von HTTP-Anfragen in PHP

Das obige ist der detaillierte Inhalt vonEin Beispiel für den in PHP implementierten Maximum-Forward-Matching-Algorithmus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn