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

Pretraga baze sa dijakriticima

[es] :: Baze podataka :: Pretraga baze sa dijakriticima

[ Pregleda: 1471 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

gotivac
Kragujevac

Član broj: 26754
Poruke: 160
*.medf.kg.ac.rs.



+2 Profil

icon Pretraga baze sa dijakriticima26.04.2012. u 09:44 - pre 146 meseci
Imam jedan problem, pokušavam da ga rešim na različite načine, pa su svi predlozi dobrodošli.

Naime, imam nekoliko baza, neke su u Access2003, neke u MSSQL2005 formatu, struktura im je ista.
U svakoj se nalazi tabela "Poseta" u kojoj postoje polja "Ime" i "Prezime".
Imam posebno tabelu "Personal" koju sam importovao u svaku od ovih baza sa imenima i prezimenima (ima 109 lica, odnosno slogova).

Cilj je iz tabele "Poseta" iz svih baza (i ovih u Access2003 i MSSQL formatu) izvući sve ljude koji se nalaze u tabeli "Personal", reklo bi se ništa lakše od toga, idemo jednu po jednu bazu sa kverijem i gotovo.

U čemu je problem?

U tabeli "Personal" korišćeni su dijakritici (šđčćž), pa je tako Đorđe Petrović zaista Đorđe Petrović.

Međutim, u tabelama "Poseta" u bazama (a tabele "Poseta" imaju po nekoliko desetina hiljada slogova) su podaci bez ikakvog pravila -

Đorđe Petrović je negde ĐORĐE PETROVIĆ, negde DJORDJE PETROVIC, negde je ĐORĐE PETROVIC, negde je DJORDJE PETROVIĆ i sve ostale moguće i nemoguće kombinacije, pošto su aplikaciju za popunjavanje koristile tokom par godina različiti ljudi različitog stepena pismenosti raspoređeni na ta radna mesta.

Sad, ja sam primetio kod nekih search engine-a (Google, npr.), da kada je uslov za pretragu "Petrović" ili "Petrovic" daje kao rezultate pretrage i "Petrovic" i "Petrović". Suština mog pitanja je kako to oni rade?

Kako biste vi rešavali ovaj problem? Mislio sam da napravim još dva polja za ime i prezime u tabeli "Personal" sa imenima bez dijakritika, pa da pustim dva puta više upita, ali ni to ne garantuje dobar rezultat, baš zbog korišćenja slova Đ (negde su koristili DJ iako su pisali ĆŠŽČ), a postoje i nekonzistentnosti tipa MIŠKOVIC, MISKOVIĆ...

Sve ideje su dobrodošle.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Pretraga baze sa dijakriticima26.04.2012. u 10:38 - pre 146 meseci
Evo baš juče se pojavilo slično pitanje na ovom istom forumu http://www.elitesecurity.org/t441956-Stemmer-za-srpski-jezik
Šta Wikipedija kaže http://en.wikipedia.org/wiki/Stemming

Drugim rečima, razrešenje tvog problema se nalazi u raznoraznim algoritmima koji treba da porede dva stringa.
Nema jednostavnog odgovora, nema tog upita koji će ti dati zadovoljavajuće rezultate.

Recimo, tvoj primer za, na primer, Đorđa Petrovića koji je u tabeli personal. Kako ćeš da znaš da je posetilac Đorđe Petrović baš tvoj zaposleni, a ne neko koji se isto tako zove. Kako ćeš da znaš da je nečije ime Mihailo a ne Mihajlo, da je prezime Mihajlović, a ne Mihailović kada su sve varijante ispravne. Kako da znaš da je ispravno precime Mičić, a ne Micić kada oba prezimena postoje i da li je Micic u stvari Mičić ili Micić.

Dakle. univerzalno rešenje ne postoji, ono što možeš da uradiš je da "ošišaš" slova u imenima iz tabele personal, da isti algoritam primeniš na slova iz tabele poseta i da onda to porediš...
 
Odgovor na temu

gotivac
Kragujevac

Član broj: 26754
Poruke: 160
*.dynamic.sbb.rs.



+2 Profil

icon Re: Pretraga baze sa dijakriticima26.04.2012. u 23:08 - pre 146 meseci
Bravo!

Vidi, nema tu nekih velikih problema oko "otkrivanja" pravih lica, podaci će kasnije ići na ručnu obradu, reč je o nekom naučno-istraživačkom projektu, izabraće se od tih ~109 (pošto ne znam da li su i svi evidentirani) nekoliko nad čijim podacima će se vršiti neke analize.

Bitno mi je da povučem što više "pravih", a to će savršeno raditi uz ovu ideju da ošišam slova u obe tabele, i moram priznati da sam zapanjen kako se toga nisam setio.
 
Odgovor na temu

[es] :: Baze podataka :: Pretraga baze sa dijakriticima

[ Pregleda: 1471 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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