Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Slični (similar) tekstovi

[es] :: PHP :: Slični (similar) tekstovi

[ Pregleda: 2399 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

[KS]
Damir Kasipovic
Banjaluka

Član broj: 55395
Poruke: 46
*.broadband.blic.net.



Profil

icon Slični (similar) tekstovi12.01.2008. u 13:03 - pre 197 meseci
Nisam bio siguran da li ovo pitanje da postavim u PHP, ili MySQL ili u Algoritme generalno, ... , pa evo ovde sam odlučio pa vi ako mislite da ne pripada slobodno prebacujte :)

Pretpostavka je sledeća: Imam bazu podataka (MySQL) sa recimo par hiljada tekstova u njoj (kolone su razdvojene: naslov, tekst,...). Interesuje me da li je neko radio algoritam za pronalaženje tekstova sličnih određenom tekstu. Ne tražim kod, već samo ideje, metode. Recimo da bi me zanimala realizacija u kombinaciji PHP i MySQL, mada svi drugi prijedlozi dolaze u obzir.
Jedna od mogućih metoda bila bi leksička analiza teksta? LISP ili tako nešto? Nemam ideje, riješio sam to ako ti tekstovi imaju tzv. "tags" (ključne riječi iz teksta) onda je to relativno lako uraditi u kombinaciji php i mysql ili bilo kojoj drugoj kombinaciji. Ali sad bih to htio da proširim, znači u tabeli imam naslov, uvod, tekst, ... kao informacije o svakom tekstu.
Ako neko ima kakvu ideju, svi prijedlozi su dobrodošli.

Hvala unaprijed.

Damir Kasipović
[email protected]
+387 (0)65 979 949
 
Odgovor na temu

dr ZiDoo
Banja Luka

Član broj: 189
Poruke: 1728
79.143.164.*

Jabber: ZiDoo@elitesecurity.org
ICQ: 299539598
Sajt: zidoo.geek.rs.ba


Profil

icon Re: Slični (similar) tekstovi13.01.2008. u 11:18 - pre 197 meseci
Pre jedno godinu dana imao sam problem i nisam ga rjesio :) tj. ili smo dobijali prevelik postotak losih razultat ili je hardware bio pre zatrpan. Evo kako sam ja to pokusavo rjesiti:

1. Uzmes tekst, izbacis iz njega kratke reci (na,u,sa ...) i onda izvrsis poredjenje. U biti to je ogromna kolicina poredjenja. - ovo mozes optimizovati: npr. radis sa prvim tekstom i poredis, od se podudara samo sa 4 tekstom. U tom slucaju uzimas 1 za referentni a 4 kao njemu slican eliminises iz danjih poredjenja.

2. Jedna od modifikacija prvog slucaja koja bi u pojedinim okruzenjima mogla da upali. Recimo da poredis samo tekstove sadrzaja strogo koncentrisanog na odredjenu temu. U tom slucaju prilikom redukovanja redukujes sve rjeci koje nisu u tvom internom vokabularu. Npr. recimo da trebas da trazis slicne tekostove koje pisu o Windows operativnom sistemu. Vokabul ce ti sadrzati sve reci vezane za windows (windows, active directory, blue screen :)...). Lose je to sto ti treba opsezan vokabular....

U svakom slucaju kad usavrsis neke djelove algoritma dolazis do problema pojave padeza: windows != windowsa ; panel != panelu itd itd. To sam pokusava rjesti trazeci korjen rjeci pa preko njega ali tu se javljaju neki treci problemi da rjeci koje nemaju veze svezom imaju slicne ili iste korjene itd itd...

Takodje u slucaju kad imas naslov i samo vijesti vise vaznosti pridodajes poklapanju naslova... itd. itd..

Zakljucak: bez dodavanja kljucih rjeci uz tekst nista.
tu nema kašike....
 
Odgovor na temu

[KS]
Damir Kasipovic
Banjaluka

Član broj: 55395
Poruke: 46
*.broadband.blic.net.



Profil

icon Re: Slični (similar) tekstovi15.01.2008. u 01:29 - pre 197 meseci
Ja sam to npr. sad zamislio ovako, u nedostatku boljih ideja. Cijela ta baza što ja imam (oko 3.000.000 dokumenata) je naravno searchable. Znači user može unijeti ključne riječi i dobiti rezultate pretrage. Štaviše, može napraviti filter koji će automatski po otvaranju vući dokumente koje se poklapaju sa zadatim parametrima (odredio sam cron job da popularizuje filtere da se nebi pri svakom pokretanju filtera radio search po ogromnoj bazi, ovako se search radi samo jednom a filter radi običan SELECT, nebitno).

Ideja je sledeća: Pošto se cijela baza može pretraživati, ja sam odlučio ovo. Kad user ukuca neku/neke ključnu riječ(i) i ja odradim pretragu, za svaki od dokumenata koji su vraćeni kao rezultat, ja unesenu ključnu riječ (od strane korisnika) dodam kao tag (naravno ako prolazi određene provjere, npr. da je duža od 3/4 znaka, da je već nemam u bazi, da se u dokumentu pojavljuje bar 2/3 puta, ...). Za početak mi to nebi puno značilo, ali kasnije kako se sve više i više search koristi, sve bi više rasla baza tagova.

Kako vam se čini?
Damir Kasipović
[email protected]
+387 (0)65 979 949
 
Odgovor na temu

dr ZiDoo
Banja Luka

Član broj: 189
Poruke: 1728
79.143.164.*

Jabber: ZiDoo@elitesecurity.org
ICQ: 299539598
Sajt: zidoo.geek.rs.ba


Profil

icon Re: Slični (similar) tekstovi19.01.2008. u 23:37 - pre 197 meseci
To je klasican nacin za poluautomatskio popunjavanje tagova. Nemoj zavoraviti da kad ukucas neku rjec user moze da chekira rezultate koji bi za tag koristile tu rjec jel moras da eliminises pogresne rezultate.

U svakom slucaju nista bez tagova, e sad ocel to raditi kinezi ili aplikacija ... :)
tu nema kašike....
 
Odgovor na temu

[es] :: PHP :: Slični (similar) tekstovi

[ Pregleda: 2399 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.