Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Pan Tadeusz - najczęściej występujące słowa, skrypt zliczający słowa w lekturze
kra1986
post 28.02.2010, 17:15:05
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 snitch.gif


Za pomoc z góry dziękuje winksmiley.jpg
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Maksior
post 28.02.2010, 17:21:06
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 28.02.2010, 17:49:34
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


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
Wicepsik
post 28.02.2010, 18:18:52
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 21:46