Ich schreibe ein einfaches Kategorisierungstool, das einen Titel mit einer Reihe von Schlüsselwörtern vergleicht. Beispiel:
$cat['dining'] = array('food','restaurant','brunch','meal','cand(y|ies)');
$cat['services'] = array('service','cleaners','framing','printing');
$string = 'Dinner at seafood restaurant';
Gibt es kreative Möglichkeiten, diese Kategorien in einer Schleife zu durchlaufen oder zu sehen, welche Kategorie die meisten Treffer hat? Beachten Sie, dass ich im Array "dining" eine Regex habe, um Variationen des Wortes "candy" zu finden. Ich habe Folgendes ausprobiert, aber da die Kategorielisten ziemlich lang sind, frage ich mich, ob dies der beste Weg ist:
$keywordRegex = implode("|",$cat['dining']);
preg_match_all("/(\b{$keywordRegex}\b)/i",$string,$matches]);
Danke! Steve
EDIT: Dank @jmathai konnte ich die Rangliste hinzufügen:
$matches = array();
foreach($keywords as $k => $v) {
str_replace($v, '#####', $masterString,$count);
if($count > 0){
$matches[$k] = $count;
}
}
arsort($matches);