Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Pan Tadeusz - najczęściej występujące słowa, skrypt zliczający słowa w lekturze
kra1986
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 29.01.2010

Ostrzeżenie: (0%)
-----


Wie ktoś może jak poradzić sobie z następującym problemem:

Jest plik.txt np "Pan Tadeusz", za zadanie mam napisać skrypt wyświetlający 10 najczęściej występujących słów, i posortować je wg kolejności wystąpień słów (IMG:style_emoticons/default/snitch.gif)


Za pomoc z góry dziękuje (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Maksior
post
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 30.04.2009
Skąd: Reda

Ostrzeżenie: (0%)
-----


Proponuje skorzystać na początek z funkcji explode, a potem przeszukać np tablice. Problem w tym, że ten skrypt może być nie efektywny.
Go to the top of the page
+Quote Post
MateuszS
post
Post #3





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


potwornie sie nudze w ten ostatni dzien ferii

  1. <?
  2.  
  3. function policzWystapienia($plik) {
  4.  
  5. $otworz = fopen($plik, "r");
  6. if(!$otworz) exit("Blad odczytu pliku ".$plik);
  7. $tekst = fread($otworz, filesize($plik));
  8. $znaki = array(",",".","?","!",":",";","(",")","+","-");
  9. $ile = count($znaki);
  10. $tekst=str_replace(" ","", strtolower($tekst));
  11. for($i=0; $i<$ile; $i++) {
  12. $tekst = str_replace($znaki[$i], "", $tekst);
  13. }
  14. $dziel = explode(" ", $tekst);
  15. $wyrazy = array();
  16. $ile=count($dziel);
  17. for($i=0; $i<$ile; $i++) {
  18. if(!in_array($dziel[$i], $wyrazy)) {
  19. array_push($wyrazy, $dziel[$i]);
  20. $zliczone[$dziel[$i]] = 1;
  21. } else {
  22. $zliczone[$dziel[$i]]++;
  23. }
  24. }
  25.  
  26. arsort($zliczone);
  27. return $zliczone;
  28. }
  29.  
  30.  
  31. $plik = "tekst.txt";
  32. $zliczone = policzWystapienia($plik);
  33. foreach($zliczone as $wyraz=>$wystapien) {
  34. echo $wyraz. "=>". $wystapien. "<br />";
  35. }
  36.  
  37. ?>


Pewnie da sie tu zaimplementowac jakies fajne funkcje PHP, wyrażenia regularne itp. ale ja tego nie robiłem ;P

Ten post edytował MateuszScirka 28.02.2010, 18:26:20
Go to the top of the page
+Quote Post
Wicepsik
post
Post #4





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


  1. $znaki = array(",",".","?","!",":",";","(",")","+","-", "\n", "\r\n");
  2. $tekst = str_replace($znaki, ' ', strtolower(file_get_contents('tekst.txt')));
  3. $tekst = explode(' ', $tekst);


Ten post edytował Wicepsik 28.02.2010, 18:25:47
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 22:36