So ganz simpel wird die Sache wohl nicht, aber es klingt verdächtig nach RegExps
Folgende RegExps bräuchtest du:
[A-Z]{1} => soll mit einem Großbuchstaben beginnen
[a-zäöüß]{4,} => gefolgt von 4 oder mehr Kleinbuchstaben
um alle Ergebniss anzeigen zu lassen müsstest du
preg_match_all() verwenden:
1:
2:
3:
4:
5:
6:
7:
8: | $str = "... Dein Text ...";
$regexp = "/([A-ZÄÖÜ]{1})([a-zäöüß]{4,})/m";
$num = preg_match_all($regexp,$str,$result);
for($i = 0; $i<$num;$i++) {
$word[md5($result[0][$i])]['count'] += 1;
$word[md5($result[0][$i])]['value'] = $result[0][$i];
}
|
Als Ergebnis hättest du dann einen Array $word mit
1:
2:
3:
4:
5:
6:
7:
8:
9: |
Array word (
array md5-hash (
count => Häufigkeit des Wortes
value => Wort
)
...
)
|
Zu guter letzt müsstest du dann den Array nach den Count sortieren, und die 3 ersten Vorkommen wären dann dein Ergebnis.
Das ist nur ein Ansatz von mir, den ich
nicht getestet habe. Es gibt da auch noch eine ganze Reihe Schwachstellen: Wörter die z.B. Bindestriche enthalten werden nicht erfasst (es gelten nur Buchstaben), Wörter die nur ähnlich sind (Plural/Singular, etc) werden als mehrere Wörter gesehen.
Gruß,
jan