![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 410 Pomógł: 5 Dołączył: 25.01.2005 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Dawno nie pisałem, bo piszę, gdy mam naprawdę "po górkę". OK. Do rzeczy. Mam w tabeli tytuły książek. Wszystko ładnie-pięknie, ale wraz ze wzrostem ilości książek (a właściwie ich opisów), zauważyłem, że niektóre z nich mają w sobie (tzn w tytule) te same wyrazy (frazy). No i teraz tak: Pomyślałem sobie, że "fajnie by było, gdyby" pod daną książką było coś w stylu "Zobacz również", gdzie pojawiałyby się tytuły PODOBNE do tej aktualnie oglądanej. No i dobra. Zamysł jest, więc do roboty (IMG:style_emoticons/default/smile.gif)
No i mam oczywiście książki inne, niż aktualnie przeglądana, ale kurcze z tytułem jest problem. Załóżmy dwa tytuły książek: "Między ustami a brzegiem pucharu" "Między Majdanem a Smoleńskiem" W obu tytułach pojawia się "Między", więc powinno wyświetlać. Problem jest jeszcze inny. Bo gdy już dojdę (z Waszą pomocą) do poprawnego wyświetlania, to pojawi się kolejny problem. Otóż w wielu tytułach mamy np. łączniki lub zaimki, np: "i", "a", "lub", "oraz", "to", "do", "nad" ... No przyznacie, że bez sensu jest, by wyświetlało mi tytuły tylko dlatego, że w innym jest "do". Pomyślałem, że stworzę tablicę z tymi łącznikami i zaimkami i spróbuję wyświetlić na nowo. I tu pojawiła się górka. Jak to połączyć. Próbuję walczyć z tym kolejny dzionek i za nic w świecie nie mogę tego rozwalić. Krótko mówiąc zapytanie powinno brzmieć: pokaż wszystkie tytuły zawierające w TITLE jakikolwiek podobny wyraz (w dowolnym miejscu) oprócz "$niechciane_wyrazy" i posortuj je jakoś tam (IMG:style_emoticons/default/wink.gif) No i kolejny problem, jaki się nasuwa: odmiana Pozostanę celowo przy tytule "Między Majdanem a Smoleńskiem". Mam w bazie również książkę pt "Ostatni lot. Przyczyny katastrofy smoleńskiej. Śledztwo dziennikarskie". No i teraz dodatkowo jak to wszystko do kupy połączyć, by pod książką "Między Majaden a Smoleńskiem" pojawił się tytuł "Ostatni lot...."? Bardzo Was proszę o pomoc. Sam nie dam rady... Ten post edytował roobik 13.03.2014, 02:01:36 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 6 Dołączył: 22.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
To generalnie nie są proste zagadanienia dla kogoś kto w tym nie siedzi.
Sprowadzanie do formy podstawowej Najprostsza metoda to stemowanie (stemming) cytat z neta (http://search.blox.pl/2010/01/Myslec-po-polsku.html) Cytat czyli usuwanie końcówek wyrazów i tak sprowadzanie ich do gramatycznej formy podstawowej. Np. odmiana wyrazu ?czekać? to: czekam, czekasz, czeka, czekamy, czekacie, czekają. Odnalezienie tematu ?czeka? (poprzez usunięcie standardowych końcówek ) 1) Czyli usuwasza z tematu niechciane słowa 2) Dzielisz temat na słowa i itereujesz po nich 2.1) Obcinasz każde słowo do 6 znaków a jeżeli są krótsze niż ale dłuższe niż 3 (krótsze bym ignorował) to np. do strlen(słowo) - 1 2.2) Robisz zapytanie z OR i LIKE jak w poprzednim moim wpisie Edit: W skrócie: Obcinasz każde słowo, wtedy końcówki przestają mieć znaczenie Ten post edytował karakara 13.03.2014, 20:43:14 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 08:41 |