SHiP
22.01.2005, 16:33:36
Mam problem z wyszukiwarką tzn tworząc nową stronę muszę napisać skrypt który będzie wyszukiwał najczęściej powtarzające się wyrazy w iluśtam wpisach w bazie. No i tego zrobić już nie umiem

Czekam na propozycje rozwiązania problemu ;]
Tu masz funkcję, która powie Ci czy w danym stringu znaleziono szukany tekst:
http://pl.php.net/manual/pl/function.strpos.phpTaka moja mała uwaga: Wydaje mi się, że szukanie powtarzających się słów może trwać baardzo długo. Lepiej ograniczyć szukane słowa to jakiejś mniejszej dziedziny.
SHiP
24.01.2005, 12:06:05
Dobry pomysł. Spróbuje to ograniczyć do rzeczowników wedle iluśtam końcówek.
hawk
24.01.2005, 13:19:04
Problem jest trudny, bo nie wiadomo z góry, jakich wyrazów szukać.
Ja proponuję pociachać wszystkie stringi po spacjach i zliczać wystąpienia każdego wyrazu. I sumować po wszystkich stringach.
Najbardziej czasochłonna operacja - odczyt stringów z bazy - będzie się wykonywać tylko raz dla każdego stringa. Czyli bardziej optymalnie już się nie da.
Pozostaje utrzymywanie tablicy asocjacyjnej wyraz - liczba wystąpień. Tutaj już gorzej, ale w zależności od algorytmu hashowania wbudowanego w php wcale nie musi być źle.
Problemem pozostaje łączenie różnych form tego samego wyrazu. Tutaj to już trzeba dobrej znajomości gramatyki i algorytmu, który potrafi sprowadzać wyrazy do podstawowej formy.
Ograniczenie "dziedziny" szukanych słów jest dobrym pomysłem. Nie ma sensu zliczać wystąpień "i" oraz podobnych wyrazów.