Merci à toi c'est parfaitement ce qu'il se passe dans la globalité
str_word_count est en effet le plus rapide ..
C'est au moment de constituer les trinomes, avec un array de 8000 elements que cela se met à ralentir ..
l'intérieur de la boucle et rapide, contrairement à ses répétitions
En amont je nettoye le tableau
Code :
- $oc=array_count_values($x);asort($oc);
- foreach($oc as $k=>$v){
- if(strlen($k)>1 AND $v>3)continue;//à conserver
- $z[]=$k;
- }
- $x=array_diff($x,$z);
|
Puis La constitution de mes trinômes & binômes donc je suis peu sastisfait .. 0,13 ms par passage en moyenne .. avec 8700 mots clefs c'est amusant ..
Code :
- foreach($x as $v){$i++;
- $n=$n2;$n2=$n3;$n3=$v; $kw2="$n $n2"; $kw3="$n $n2 $n3";
- if(!strpos($data,$kw2) or count(array_intersect(array($n,$n2),$common))!=0)null;
- elseif(strlen($n)>2 AND strlen($n2)>2 AND strlen($kw2)>9){$out[$kw2]+=2;}
- if(!strpos($data,$kw3) or count(array_intersect(array($n,$n3),$common))!=0)null;
- elseif(strlen($n)>1 AND strlen($n2)>1 AND strlen($n3)>1 AND strlen($kw3)>10){$out[$kw3]+=3;}
- if($i>5000 OR array_product($out)>12000 OR array_sum($out)>50){break;}
- }
|
A cause de sa condition de sortie .. j'espère trouver d'autres fonctions permettant d'associer les binomes, trinomes, plus rapidement, peu être aussi, sans boucle
Nb: $common empêche de créer des association commencant par des mots "stupides" tels que "alors" etc..
une fonction php magique existe-elle ? une sorte de levenshtein recursif dans un preg_match ?
Message édité par grosbin le 08-04-2009 à 18:15:04
---------------
Photos Panoramiques Montagnes Haute Savoie