-NMe- schreef op maandag 13 juni 2005 @ 19:22:
[...]
http://nl2.php.net/levenshtein
Overigens vind ik ook dat je met dit soort dingen op moet passen. In het kader van gebruikersvriendelijkheid kun je het gebruiken ("Geen matches gevonden voor 'Mancheter Untied', bedoelde u 'Manchester United'?"), maar je kan IMO geen keuzes gaan maken op basis van wat zo'n script je vertelt. Bovendien is de Levenshtein-afstand tussen Man. Utd. en Manchester United
zo groot, dat je script de overeenkomst waarschijnlijk niet eens zal zien.

Om jullie een beetje op de hoogte te houden heb ik nu de volgende code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| $query = "SELECT * FROM soccer ORDER BY id ASC";
$resultaat = mysql_query($query);
while($obj = mysql_fetch_object($resultaat)){
$query2 = "SELECT * FROM soccer WHERE id > '$obj->id' ORDER BY id ASC";
$resultaat2 = mysql_query($query2);
while($obj2 = mysql_fetch_object($resultaat2)){
similar_text($obj->thuis."".$obj->uit, $obj2->thuis."".$obj2->uit, $p) ;
if ($p > 80) {echo "<br>".$obj2->thuis." - ".$obj->uit."<br>".$obj2->thuis." - ".$obj2->uit."<br>";}
}
} |
Zoals je ziet heb ik levenshtein en soundex losgelaten en heb een soort combined string gevormd die zich uitermate goed laat meten met similar_text. 80% is een erg goeie ondergrens voor matches.
Probleem is nu een methode om precies die te krijgen die bijelkaar horen en verderop bij langskomen niet meer mee te nemen.
Iemand hier een idee over?
[
Voor 19% gewijzigd door
BKJ op 13-06-2005 19:40
]