Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Tablice - wyświetlenie (top) zdań dla określonych słów
Malinaa
post 26.12.2008, 01:31:54
Post #1





Grupa: Zarejestrowani
Postów: 573
Pomógł: 6
Dołączył: 21.07.2008

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


Witam,
mamy tekst, z którego utworzono tablice słów i tablice zdań.

Jak znaleźć i wybrać z tablicy zdań te zdania, w których wystepują słowa z tablicy słów.
Wymagane jest wybranie kilku zdań o njawyższej liczbie wystąpień słów.

Tablica słów jest już policzona (i posortwana)

  1. <?php
  2. $tekst = 'Dlugi tekst... Ala ma kota. Wiele slow i zdan.';
  3. $tablica_slow = explode(" ", $tekst); // ?
  4. $tablica_policzone = array_count_values($tablica_slow);
  5. $tablica_zdania = explode(".", $tekst); // ?
  6.  
  7. foreach($tablica_zdania as $klucz_zdania => $zdanie) {
  8. $top_zdania = $top_zdania . $zdanie; // ?
  9. }
  10. ?>


Potrzebna pomoc? questionmark.gif

Ten post edytował Malinaa 26.12.2008, 01:37:33


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post
memory
post 26.12.2008, 16:49:02
Post #2





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

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


  1. <?php
  2. foreach($tablica_zdania as $klucz_zdania => $zdanie) {
  3. $mystring =$zdanie;
  4.  
  5.  
  6. $findme   = 'Wiele';
  7. $pos = strpos($mystring, $findme);
  8.  
  9. if ($pos === false) {
  10.    echo "";
  11. }
  12.  
  13. else
  14.  
  15. {
  16.  
  17.    echo "'$mystring'";
  18.    
  19. }
  20. ?>


strpos" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
Malinaa
post 27.12.2008, 03:01:08
Post #3





Grupa: Zarejestrowani
Postów: 573
Pomógł: 6
Dołączył: 21.07.2008

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


Teraz jest coś takiego:

  1. <?php
  2. // Slowa kluczowe - w tej tablicy jest odwrocona pozycja klucza!
  3. foreach($tablica_policzone as $klucz => $slowa) {
  4.  
  5. while ( list($klucz_zdan, $wartosc_zdan) = each($tablica_zdan) ) {
  6.  $znajdz = strpos($wartosc_zdan, $klucz);
  7.  if ($znajdz !== false) {
  8.   $zdania = $zdania . "/$klucz($znajdz) ->$wartosc_zdan/ ";
  9.  }
  10. }
  11.  
  12. $top_slowa = $top_slowa . $klucz;
  13. }
  14.  
  15. $top_zdania = $top_zdania . $zdania;
  16. ?>


1. Problem jest taki, że w tej chwili wyszukuje tylko dla pierwszwgo wystąpienia slowa ($tablica_policzone[slowo1]), jeżeli w tej tablicy jest więcej słów nie znajduje kolejnych zdań, w których są słowa ($tablica_policzone[slowo2...]).
2. strpos() wyszukuje tylko pierwsze wystąpienie słowa w zdaniu, a tu potrzebne jest sprawdzenie całegoi tekstu i określenie, w którym zdaniu znajduje się najwięcej słow (top słów z $tablicy policzone) i wyświetlenie top zdan z $tablica_zdan.

Tablice przykladowe:

$tablica_policzone = Array ( [slowo1] => 6 [slowo2] => 5 [slowo3] => 3 [slowo4] => 3 [slowo5] => 3 [-] => 3 [slowo6] => 2 [slowo7] => 1 )

$tablica_zdan = Array ( [0] => zdanie1 [1] => zdanie2 [2] => zdanie3 )

Jak napisać ten skrypt?


--------------------
I welcome you on the Internet >>> Design by Malina
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: 14.08.2025 - 07:08