![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 2.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
zabiram się do napisania skryptu, a właściwie systemu ekspertowego, do klasyfikowania wpisów na podkategorie wg ich treści. Założenia są ogólnie proste, dodajemy wpisy, wpis zawiera treść, temat oraz kategorie główną, np. Rodzina. Po dodaniu wpisu dokonywana jest analiza treści i tematu, w zależności od kategorii (wstępna klasyfikacja podana przez uzytkownika) wybierany jest zestaw podkategorii (np. dla kategorii Rodzina byłoby to mama, tata, dziadek, babcia itd.) i wśród nich odpowiednio do treści wybieranybyłby najbardziej pasujący. Zastanawiam się jak się do tego zabrać, na pewno potrzebna będzie duża baza słownikowa, mam 10 kategorii głównych, no i sam algorytm będzie rzeczą najtrudniejszą. Jeśli ktoś z Was spotkał się z takim problemem, albo ma jakis pomysł na rozwiązanie tego zagadnienia, byłbym bardzo wdzięczny za pomoc, pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
A ja wiem czy nie da ci odzwierciedlenia ? Dla mnie to jedyne logiczne rozwiązanie, komputer to nie człowiek, trzeba po prostu nadać punkty i zliczyć je aby dowiedzieć się, które ze słów kluczowych jest najlepiej punktowane do textu.
Przejrzałem funkcje mysql dotyczące stringów i nie znalazłem nic sensownego co by mogło nam pomoc wiec... zostają wiec funkcje php lub wyrażenia regularne (IMG:style_emoticons/default/smile.gif) Ostatnio thek z tego forum w innym poście podsuną funkcję, która fajnie się do tego nadaje: http://pl.php.net/str_word_count lub jeśli nie chce ci się bawić i wystarczy ci w miarę proste rozwiązanie to szybko i sprawnie będzie to załatwić tym: http://pl.php.net/manual/en/function.substr-count.php Czyli tak: Pobierasz z bazy wszystkie podkategorie z tej wskazanej przez użytkownika, pobierasz keywordsy i parsujesz explode(',', $keywords); i potem oczywiście pętelka dla każdej z podkategorii i używasz swojego algorytmu opartego, na którejś z funkcji podanych wyżej (do pierwszej musisz napisać sobie obsługę z użyciem in_array(); druga zwróci ci gotowy wynik ale nie odzwierciedla rzeczywistości, która w tym wypadku w cale moim zdaniem nie jest taka ważna. Potem już wiadomo - wyłaniamy zwycięzcę i skrypt skończony (IMG:style_emoticons/default/biggrin.gif) Sorki że nie mogłem wcześniej odpisać ale nie miałem jak (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 16:26 |