잠재적 인 철자 목록에서 주목해야 할 흥미로운 점은 포함 된 목록에 대해 3 개의 Soundex 값만 있다는 것입니다 (이상치 'Kazzafi'를 무시하는 경우).
G310, K310, Q310
이제 거기에는 오 탐지 ( 'Godby'도 G310 임)가 있지만 제한된 메타 폰 적중도 결합하면 제거 할 수 있습니다.
<?
$soundexMatch = array('G310','K310','Q310');
$metaphoneMatch = array('KTF','KTHF','FTF','KHTF','K0F');
$text = "This is a big glob of text about Mr. Gaddafi. Even using compound-Khadafy terms in here, then we might find Mr Qudhafi to be matched fairly well. For example even with apostrophes sprinkled randomly like in Kad'afi, you won't find false positives matched like godfrey, or godby, or even kabbadi";
$wordArray = preg_split('/[\s,.;-]+/',$text);
foreach ($wordArray as $item){
$rate = in_array(soundex($item),$soundexMatch) + in_array(metaphone($item),$metaphoneMatch);
if ($rate > 1){
$matches[] = $item;
}
}
$pattern = implode("|",$matches);
$text = preg_replace("/($pattern)/","<b>$1</b>",$text);
echo $text;
?>
약간의 조정과 약간의 키릴 음역을 말하면 상당히 강력한 해결책이 있습니다.