| |
|
|
| |
|
|
|
Az adatbázisban való keresés logikája
|
|
|
| |
Hogyan keresünk egy számítógépes adatbázisban? A keresés kialakítását
a keresőkérdés elemzésével kezdjük. A kérdésből kiemeljük a fontos fogalom-köröket.
Pl. "Milyen sertésbetegségek ellen jó a penicillin?" kérdést állatorvosi
adatbázisban általában, ha nem túl nagy az adatbázis, elegendő a "penicillin"
és a "sertés" fogalommal keresni. A betegség következik az adatbázis
tartalmából (állatorvosi dokumentumok), de következik a penicillin gyógyszer
voltából is. Így nem szükséges sertés betegségre vagy gyógyszeres terápiára
keresni. A "mi ellen jó" pedig nem ad új információt.
A legnagyobb nehézséget a dokumentumok szóhasználatának sokfélesége
jelenti. A természetes nyelv logikáját a számítógép nem könnyen követi.
Arra még "rájöhet" a formai hasonlóság alapján, hogy a kutya és a kutyák
a felhasználó számára ugyanazt jelenti, de a szarvasmarha és a tehén
már nehezebb ügy. Arra pedig "álmában sem gondolna", hogy ha valaki
anthelmintikum-ot keres, érdekelni fogják az albendazol-t tartalmazó
rekordok is.
Járjuk körül az egyes fogalmi köröket gondosan az előforduló összes
szinonima fellelésére, hogy ne veszítsünk értékes dokumentumokat! Azt
gondolhatnánk, nem nagy baj, ha egy-egy ritkábban használt szó kimarad,
hiszen esetleg még így is túl sok a találat. Azonban komoly veszteség,
ha éppen a számunkra legértékesebb cikk éppen egy ritkábban használt
szinonima alatt található.
Az egyes kereső kifejezéseket többnyire a Boole algebra alapján kapcsoljuk
össze (bár léteznek ettől eltérő, előfordulási gyakoriságon alapuló
megoldások is). A Boole algebra operátorai segítségével végzett keresés
a következő egyszerű logikát követi:
|
|
|
| |
|
a) egy bizonyos kifejezést vagy szótövet tartalmazó
rekordok összessége egy halmaz.
b) A halmazokat összekapcsolhatjuk az AND, OR vagy NOT szavakkal - ezeket
operátoroknak nevezzük - és egy új halmazt képezünk. |
|
|
| |
|
|
|
|
|
| |
Jelentésük: |
|
|
| |
A AND B: mindkét kifejezés szerepel a rekordokban,
az eredmény a halmazok közös, átfedő része, metszete: |
|
|
| |
| |
A OR B: bármelyik kifejezés megfelel, így az eredmény
a két halmaz összege (tipikusan a szinonímákat kapcsoljuk így össze):
|
|
|
| |
| |
A NOT B: az első halmaz elemei alkotják a választ,
kivéve azokat a rekordokat, melyekben a második szó is szerepel (pl. pigs
not guinea): |
|
|
| |
|
|
|
| |
A kereső rendszerekben helyzeti operátorok (proximity operators) is
használatosak, amelyek nemcsak a szavak rekordbeli előfordulására kötnek
ki feltételeket, hanem a keresett szavak egymáshoz viszonyított helyzetére
is: egymás mellett, egy mondatban, egy adatmezőben, stb. forduljanak
elő. Természetesen feltételezik a két keresett szó egy rekordon belüli
előfordulását, tehát az AND kapcsolatot. Helyzeti operátorként a NEAR
vagy a WITH szokott előfordulni. Bizonyos kereső szoftverek azt is megengedik,
hogy megmondjuk hány szó távolságra álljanak egymástól a keresett szavak.
Tekintve, hogy a számítógépes adatbázisokban mindig halmazok képzésével
keres a szoftver, mindegy, hogy egyetlen kérdésbe tesszük bele az összes
fogalmat az AND, OR, NOT szavakkal összefűzve, vagy külön-külön kérdésként,
majd a kapott halmazokat kapcsoljuk össze az operátorokkal: az eredmény
azonos lesz.
Első lépésben tehát mindig a maximális számú találatra célszerű törekedni
az egyes fogalmi körök esetében, és csak ezután, a halmazok kombinálása
során szűkítsük azt fokozatosan a releváns rekordokra. A fenti példánál
maradva először vizsgáljuk meg csak a "sertés" és szinonimáit AND kapcsolatban
a "penicillin" és szinonímáival. Ha nem releváns rekordok zavaróan nagy
számban fordulnak elő (pl. megelőzésre is használják), próbálkozhatunk
a "gyógyszeres terápia, sertésbetegség" gondolatkörrel.
Valójában ritkán elégedhetünk meg egyetlen stratégiával. Minden szóba
jöhető módon célszerű elvégezni a keresést, majd az eredmény halmazok
OR kapcsolattal összegezhetők.
A kifejezések körültekintő megválasztásához segítséget nyújtanak az
adatbázisok indexei és tezauruszai, melyek részletezése alább következik.
|
|
|
| |
|
|
|
|
|
| |
Más koncepcióval is működnek keresőrendszerek. A statisztikai
megközelítésen nyugvó módszer azt figyelteti a számítógéppel, hogy milyen
gyakran fordul elő a keresett szó a dokumentum szövegében. Ha sikerül
jellemző keresőszavakat beírnunk, a talált dokumentumoknak annál lényegesebb
aspektusa lesz az, minél többször fordul elő benne. A találatok ebben
a sorrendben jelennek meg a képernyőn (ranking). A módszert olyan adatbázisokra
találták ki, melyek teljes szöveget, vagy legalább bő referátumot tartalmaznak.
Az Interneten található Web oldalak teljes szövegükben kereshetőek, ezért
a statisztikai megközelítés nagyon alkalmas esetükben, és a gyakorlatlan
felhasználóknak is kedvez, mivel formailag nagyon egyszerű. Természetesen
a teljes szövegű adatbázisokban működik legjobban. Az internetes keresőrendszerek
a Boole-féle logikával ötvözve használják ezt az elvet. |
|
|
| |
|
|
|