![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Czekam na propozycje rozwiązania problemu ;] |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 210 Pomógł: 0 Dołączył: 31.01.2004 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Tu masz funkcję, która powie Ci czy w danym stringu znaleziono szukany tekst: http://pl.php.net/manual/pl/function.strpos.php
Taka 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. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Dobry pomysł. Spróbuje to ograniczyć do rzeczowników wedle iluśtam końcówek.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 521 Pomógł: 0 Dołączył: 3.11.2003 Skąd: 3city Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.08.2025 - 19:19 |