Nothing Special   »   [go: up one dir, main page]

FI121583B - Symbolijonon etsintä - Google Patents

Symbolijonon etsintä Download PDF

Info

Publication number
FI121583B
FI121583B FI20021330A FI20021330A FI121583B FI 121583 B FI121583 B FI 121583B FI 20021330 A FI20021330 A FI 20021330A FI 20021330 A FI20021330 A FI 20021330A FI 121583 B FI121583 B FI 121583B
Authority
FI
Finland
Prior art keywords
symbol
calculation
point
distance
queues
Prior art date
Application number
FI20021330A
Other languages
English (en)
Swedish (sv)
Other versions
FI20021330A (fi
FI20021330A0 (fi
Inventor
Joerkki Hyvoenen
Original Assignee
Syslore Oy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Syslore Oy filed Critical Syslore Oy
Priority to FI20021330A priority Critical patent/FI121583B/fi
Publication of FI20021330A0 publication Critical patent/FI20021330A0/fi
Priority to EP03762696A priority patent/EP1552429A1/en
Priority to PCT/FI2003/000540 priority patent/WO2004006126A1/en
Priority to US10/520,171 priority patent/US8532988B2/en
Priority to AU2003242800A priority patent/AU2003242800A1/en
Publication of FI20021330A publication Critical patent/FI20021330A/fi
Application granted granted Critical
Publication of FI121583B publication Critical patent/FI121583B/fi

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

Symbolijonon etsintä
Keksinnön ala Tämä keksintö koskee syötesymbolijonon etsintää symbolijonojen joukosta. Keksintö soveltuu erityisesti hyödynnettäväksi virheenkorjaavissa 5 tietokantahauissa, joissa syötteessä olevasta virheestä huolimatta tietokannasta löydetään oikea symbolijono tai lähimpänä oikeaa olevat symbolijonot.
Keksinnön tausta
Puheentunnistus, optinen luku, geeni- ja proteiinisekvenssien vastaavuushan bioinformatiikassa sekä tietokantahaut yleensä ovat esimerkkejä 10 tilanteista, joissa on tarvetta löytää määrätty syötesymbolijono symbolijonojen joukosta. Tällöin symbolijono voi muodostua esimerkiksi peräkkäisistä kirjaimista tai peräkkäisistä äänteitä kuvaavista symboleista. Usein on olemassa se vaara, että syötesymbolijono ei ole täysin virheetön. Päämäärä on kuitenkin se, että esimerkiksi tietokannassa olevien symbolijonojen joukosta tulee löytää 15 symbolijono, joka täysin vastaa syötesymbolijonoa, tai joka eniten muistuttaa syötesymbolijonoa, mikäli täysin vastaavaa syötesymbolijonoa ei löydy.
Ennestään tunnetaan ratkaisu symbolijonon hakemiseksi symboli-jonojen joukosta, jossa symbolijonoista on luotu trie-tietorakenne. Tällöin symbolijonot on ryhmitelty haaroihin siten, että samoilla symboleilla alkavat symbo-20 lijonot kuuluvat samaan haaraan. Samassa haarassa olevat symbolijonot jakaantuvat uusiin haaroihin niiden symbolien kohdalta, joista lähtien symbolijonot poikkeavat toisistaan.
£ "Puumaista" trie-tietorakennetta on hyödynnetty symbolijonojen ha- ^ kuun siten, että syvyyshaulla on edetty tietorakenteen haaroja pitkin sen lehtiin v 25 asti. Jokainen haaralla kohdattava uusi symboli osoittaa laskentapisteen, jossa lasketaan etäisyysmitta laskentapisteen ja sitä edeltävien laskentapisteiden e symbolien muodostaman näytesymbolijonon ja etsittävän syötesymbolijonon Q_ välille asettamalla nämä vastakkain vaihtoehtoisilla tavoilla. Etäisyysmitalla co tarkoitetaan mitä tahansa vertailuarvoa, jolla voidaan kuvata miten paljon muu- g 30 toksia tarvitaan, jotta verrattavana olevat symbolijonot saataisiin vastaamaan o cm toisiaan. Eräs tunnettu tapa laskea etäisyysmitta on Levenshtein-algoritmi.
Laskenta päättyy kun trie-tietorakenteessa on edetty loppuun asti laskemalla etäisyysmitat kaikkien haarojen kaikille laskentapisteille. Tällöin 2 suoritetaan vertailu pienimmän etäisyysmitan löytämiseksi. Vasteen tuottamiseen valitaan sen haaran symbolijono tai niiden haarojen symbolijonot, joiden viimeisten laskentapisteiden etäisyysmitat ovat pienimmät.
Edellä mainitun tunnetun ratkaisun merkittävin heikkous on se, että 5 se edellyttää suhteellisen paljon laskentaa. Paras mahdollinen, eli syötesym-bolijonoa lähinnä oleva, symbolijono voidaan löytää vasta sen jälkeen kuin laskenta on suoritettu loppuun asti kaikille trie-tietorakenteen laskentapisteille. Koska esimerkiksi tietokantahakujen yhteydessä tietokannassa olevien symbolijonojen lukumäärä on todella suuri, merkitsee tämä, että tarvittavien las-10 kuoperaatioiden lukumäärästä tulee hyvin suuri, ja näin ollen laskuoperaatioiden vaatima aika on pitkä. Vasteen saaminen syötteeseen vaatii näin ollen paljon aikaa.
Ennen tunnetaan julkaisusta US - 5377281 A ratkaisu, jossa syö-tesymbolijonon jäljellä olevien merkkien määrä voidaan ottaa huomioon opti-15 mistisen arvion laskennassa. Voidaan siis laskea, kuinka monta merkkiä syötteestä täytyy vielä käsitellä ja että kuinka se vaikuttaa lopulliseen todennäköisyyteen. Trien-haaran sisältämien merkkijonojen pituuksia ei oteta huomioon, jolloin haaran sisältö syvemmällä ei vaikuta laskentaan. Ennestään tunnetaan myös EP-julkaisusta 1052576 ratkaisu, jossa hyödynnetään trie-rakennetta. 20 Kuitenkaan tässäkään ratkaisussa ei laskentapisteissä ole käytettävissä tietoa siitä mitä ja miten pitkiä merkkijonoja trien-haara sisältää. Nämä ratkaisut eivät siksi mahdollista optimaalista ratkaisua tarvittavien laskuoperaatioiden lukumäärän minimoimiseen.
? Keksinnön yhteenveto
(M
^ 25 Tämän keksinnön tarkoitus on ratkaista edellä selostettu ongelma ja T tarjota käyttöön ratkaisu, joka mahdollistaa sen, että vasteen tuottamiseen tar- ^ vittavien laskuoperaatioiden lukumäärää voidaan alentaa, jolloin vasteen tuot- £ tamisesta tulee entistä nopeampaa. Tämä päämäärä saavutetaan itsenäisen o patenttivaatimuksen 1 mukaisella menetelmällä, itsenäisen patenttivaatimuk- 00 £2 30 sen 5 mukaisella tietokoneohjelmalla, itsenäisen patenttivaatimuksen 6 mukai- o sella tietovälineellä, ja itsenäisen patenttivaatimuksen 7 mukaisella laitteistolla.
^ Keksinnön mukainen ratkaisu perustuu siihen ajatukseen, että sym bolijonon etsimiseen ja näin ollen vasteen tuottamiseen tarvittavien laskuoperaatioiden määrää voidaan merkittävästi alentaa, kun jokaisen etäisyysmitan 3 osalta lasketaan myös sitä vastaava lyhin mahdollinen pituusero, ja etäisyys-mitan ja pituuseron perusteella vertailuarvo. Kyseinen vertailuarvo osoittaa tällöin parasta mahdollista etäisyysmittaa, joka on teoreettisesti saavutettavissa, mikäli edetään kyseisen haaran päähän asti, edellyttäen, että kaikki haa-5 rassa jäljellä olevat symbolit vastaavat syötteen huomiotta jätettyjä symboleja. Tällaisessa tilanteessa nimittäin ratkaisevaksi tulee syötteen ja symbolijonojen väliset pituuserot. Kun syöte ja symbolijono ovat eripituiset, kasvattaa nimittäin jokainen "ylimääräinen" symboli näiden välistä etäisyysmittaa.
Koska jokaisesta lasketusta pisteestä saadaan tietoon paras mah-10 dollinen vertailuarvo, voidaan vertailuarvoja vertaamalla päätellä mistä haarasta tai haaroista voidaan saada alin mahdollinen etäisyysmitta. Tällöin edetään ainoastaan näissä haaroissa, ja jätetään laskenta suorittamatta sellaisissa haaroissa, joiden vertailuarvo osittaa, että niistä ei voida saavuttaa muita haaroja parempaa etäisyysmittaa.
15 Keksinnön mukaisen ratkaisun ansiosta laskenta voidaan jättää suorittamatta suurelle osalle trie-tietorakenteessa olevien haarojen laskenta-pisteille, ilman että tämän vuoksi olisi vaaraa siitä, että parasta symbolijonoa ei löydettäisi. Tämä vuorostaan alentaa merkittävästi laskentaan kuluvaa aikaa, jolloin parhaan tai parhaiden symbolijonojen löytäminen on entistä nopeam-20 paa.
Eräässä keksinnön edullisessa suoritusmuodossa verrataan vasteen tuottamiseen käytetyn symbolijonon (tai symbolijonojen) ja syötesymboli-jonon etäisyysmittaa ennalta määrättyyn maksimietäisyyteen, eli raja-arvoon. 0 Mikäli etäisyysmitta ylittää maksimietäisyyden, merkitsee tämä, että löytynyt o 25 symbolijono poikkeaa niin paljon syötesymbolijonosta, että sen edelleen lähet- -Λ täminen vasteessa ei ole tarkoituksenmukaista (syötesymbolijonoa riittävästi muistuttavaa symbolijonoa ei ole löydetty). Tällöin muunnetaan tuotettua vas-^ tetta ennen sen lähettämistä edelleen osoittamaan, että syötesymbolijonoa ei £ löytynyt.
g 30 Eräässä toisessa keksinnön edullisessa suoritusmuodossa haaran ^ valinnan yhteydessä verrataan mainittua alinta vertailuarvoa ennalta määrät- § tyyn maksimietäisyyteen, ja päätetään laskenta mikäli alin vertailuarvo ylittää
(M
maksimietäisyyden. Vertailuarvo kuvaa parasta mahdollista saavutettavissa olevaa etäisyysmittaa, mikäli loput haarassa olevat symbolit vastaavat syöt-35 teen jäljellä olevia symboleja ja symbolien lukumäärät täsmäävät. Mikäli näin 4 ollen alin vertailuarvo ylittää maksimietäisyyden, merkitsee tämä, että syö-tesymbolijonoa tai sitä muistuttavaa symbolijonoa ei löydy symbolijonojen joukosta, jolloin laskenta ja samalla koko syötesymbolijonon etsintä voidaan lopettaa turhana.
5 Eräässä kolmannessa keksinnön edullisessa suoritusmuodossa haaran valinnan yhteydessä tarkistetaan onko jossakin haarassa jo suoritettu laskenta viimeisen laskentapisteen osalta, ja päätetään laskenta mikäli osoittautuu, että jonkin haaran viimeisen laskentapisteen osalta on saatu vertailuarvo, joka on pienempi kuin kaikkien muiden laskentapisteiden osalta saadut 10 vertailuarvot. Näin ollen laskenta ja symbolijonon etsintä voidaan päättää jo ennen kuin laskenta on toteutettu kaikkien haarojen laskentapisteiden osalta, koska vertailuarvojen käytön ansiosta voidaan olla varmoja, että loppuun asti lasketun haaran symbolijono parhaiten vastaa syötesymbolijonoa.
Keksinnön mukaisen menetelmän edulliset suoritusmuodot ilmene-15 vät oheisista epäitsenäisistä patenttivaatimuksista 2-4.
Kuvioiden lyhyt kuvaus
Keksintöä selostetaan seuraavassa esimerkinomaisesti lähemmin viittaamalla oheisiin kuvioihin, joista: kuvio 1 esittää, vuokaaviota keksinnön mukaisen menetelmän en-20 simmäisestä edullisesta suoritusmuodosta, kuviot 2a - 2f havainnollistavat syötesymbolijonon etsinnän etenemistä kuvion 1 vuokaaviota noudatettaessa, ja kuvio 3 esittää lohkokaaviota keksinnön mukaisen laitteiston en- S simmäisestä edullisesta suoritusmuodosta.
CVJ
V 25 Edullisten suoritusmuotojen kuvaus
CO
w Seuraavassa keksintöä selostetaan esimerkinomaisesti lähemmin i viitaten kuvion 1 vuokaavioon sekä kuvioiden 2a - 2f laskentaesimerkkiin.
CL
o Kuvion 1 lohkossa A luodaan sinänsä tunnetusti trie-tietorakenne, ja
CO
£2 symbolijonot ryhmitellään trie-tietorakenteen haaroihin. Kuviossa 2a on esitetty o 30 tällainen tietorakenne, johon on ryhmitelty symbolijonot: ABACUS, ABOARD, ^ BOARD ja BORDER. Trie-tietorakenteen luominen on vaihe, jota ei välttämättä tarvitse toistaa joka kerta kun haetaan uutta symbolijonoa tietokannasta. Aikaisemmin luotua tietorakennetta voidaan hyödyntää esimerkiksi niin kauan, kun 5 tietokantaan ei ole lisätty uusia symbolijonoja. Eli vasta kun uusi symbolijonon lisätään tietokantaan tulee uuden trie-tietorakenteen luonti ajankohtaiseksi.
Kuvion 1 lohkossa B vastaanotetaan syötesymbolijono, eli se symbolijono, jota on tarkoitus etsiä symbolijonojen joukosta. Seuraavassa kuvauk-5 sessa oletetaan esimerkinomaisesti että, etsittävä syötesymbolijono on ABORD.
Lohkossa C aloitetaan etenemällä ensimmäiseen laskentapisteeseen P, jossa lohkon D mukaisesti lasketaan sinänsä tunnetusti Levenshtein-algoritmilla etäisyys syötteen ja kyseisen haaran laskentapisteen ja sitä edeltä-10 vien laskentapisteiden symbolien muodostaman näytesymbolijonon välillä. Lisäksi keksinnön mukaisesti lasketaan vielä pituuserot D ja vertailuarvot C seuraavasti. Laskentapisteen P osalta näytesymbolijono on "" (tyhjä merkki alussa) ja syötesymbolijono on (kun alkuun on lisätty tyhjä merkki)" ABORD". Laskenta etenee seuraavasti: 15 - etäisyys tyhjien merkkien " " välillä on 0, koska merkit vastaavat toisiaan. Tällöin syötesymbolijonosta on vielä huomioimatta 5 merkkiä, ja pisteen P kautta kulkevien symbolijonojen pituudesta on vielä jäljellä 5-6 merkkiä, mikä on merkitty pisteen P kohdalle merkinnällä max 6, min 5. Pienin mahdollinen pituusero on siten 5-5=0. Vertailuarvo on etäisyys + pituusero, eli 20 0+0=0.
- etäisyys symbolijonojen "" ja " A" välillä on 1, koska yhdellä merkin lisäyksellä/muutoksella verrattavana olevat symbolijonot vastaavat toisiaan. Syötesymbolijonosta on vielä huomioimatta 4 merkkiä, ja pisteen P kautta kul-o kevien symbolijonojen pituudesta on vielä jäljellä 5 - 6 merkkiä. Pienin mahdol- o 25 linen pituusero on siten 5 - 4=1. Vertailuarvo on 1+1=2.
A - etäisyys symbolijonojen " " ja " AB" välillä on 2, koska kahdella ^ merkin lisäyksellä/muutoksella verrattavana olevat symbolijonot vastaavat toi-
C\J
siaan. Syötesymbolijonosta on vielä huomioimatta 3 merkkiä, ja pisteen P £ kautta kulkevien symbolijonojen pituudesta on vielä jäljellä 5 - 6 merkkiä. Pie- g 30 nin mahdollinen pituusero on siten 5 - 3=2. Vertailuarvo on 2+2=4.
^ - etäisyys symbolijonojen " " ja " ABO" välillä on 3, koska kolmella o merkin lisäyksellä/muutoksella verrattavana olevat symbolijonot vastaavat toi siaan. Syötesymbolijonosta on vielä huomioimatta 2 merkkiä, ja pisteen P kautta kulkevien symbolijonojen pituudesta on vielä jäljellä 5 - 6 merkkiä. Pie-35 nin mahdollinen pituusero on siten 5 - 2=3. Vertailuarvo on 3+3=6.
6
Kun verrattavat symbolijonot on asetettu vastakkain kaikilla vaihtoehtoisilla tavoilla päädytään kuvion 2a alalaidassa olevan taulukon osoittamiin tuloksiin.
Lohkossa E etsitään laskentapiste, josta on saatu alin vertailuarvo.
5 Alin vertailuarvo on saatu pisteen P osalta, joka toistaiseksi on ainoa laskenta-piste, jonka osalta laskut on toteutettu. Näin ollen seuraavaksi edetään tästä laskentapisteestä haaraa 1 pitkin.
Lohkossa F tarkistetaan toteutuuko laskennan päätösehto. Päätös-ehtoja voi olla monta. Seuraavassa mainitaan esimerkinomaisesti kaksi pää-10 tösehtoa: Päätösehto 1: Lopetetaan laskenta mikäli alin vertailuarvo ylittää ennalta määrätyn maksimietäisyyden. Tällöin todetaan, että etsitty syötesym-bolijono poikkeaa niin paljon symbolijonojen joukosta, että etsintä voidaan keskeyttää, koska syötesymbolijonoa muistuttavaa symbolijonoa ei kuitenkaan 15 löydetä. Sopivan maksimietäisyyden määrittely riippuu sovellutuksesta. Tässä esimerkissä oletetaan kuitenkin että maksimietäisyydeksi on määritelty 5.
Päätösehto 2: Lopetetaan laskenta mikäli jossakin haarassa on jo suoritettu laskenta viimeisen laskentapisteen osalta, ja viimeisen laskentapisteen osalta on saatu vertailuarvo, joka on pienempi kuin kaikkien muiden las-20 kentapisteiden osalta saadut vertailuarvot. Näin ollen laskenta ja symbolijonon etsintä voidaan päättää jo ennen kuin laskenta on viety loppuun kaikkien haarojen laskentapisteissä, koska vertailuarvojen käytön ansiosta voidaan olla varmoja, että loppuun asti lasketun haaran symbolijono parhaiten vastaa syötesymbolijonoa.
° 25 Kuvion 2a taulukosta ilmenee, että alin vertailuarvo C on 0, joka on <m pienempi kuin maksimietäisyys 5. Näin ollen ensimmäinen päätösehto ei to- i ^ teudu. Päätösehto 2 ei myöskään toteudu, koska missään haarassa ei vielä i ole päädytty viimeiseen laskentapisteeseen asti. Näin ollen kuvion 1 lohkokaa-x viossa päädytään lohkoon C ja kuviossa 2a edetään haaraa 1 pitkin pistee- 30 seenPI.
co Pisteessä P1 toistetaan lohkon D mukainen laskenta. Näytesymboli- c\j jono on " A" ja syötesymbolijono on edelleen " ABORD". Pisteen P1 etäisyyk- ^ sien laskennan helpottamiseksi laskennan lähtökohtana on pisteessä P tehdyt 7 etäisyyslaskut, jotka siirtyvät mukaan kuvion 2b alaosan taulukkoon. Laskenta etenee seuraavasti: - etäisyys symbolijonojen " A" ja "" välillä on 1, koska yhdellä merkin lisäyksellä/muutoksella verrattavana olevat symbolijonot vastaavat toisiaan.
5 Tällöin syötesymbolijonosta on vielä huomioimatta 5 merkkiä, ja pisteen P1 kautta kulkevien symbolijonojen pituudesta on vielä jäljellä 5 merkkiä, mikä on merkitty pisteen P1 kohdalle merkinnällä max 5 min 5. Pienin mahdollinen pituusero D on siten 5-5=0. Vertailuarvo C on etäisyys + pituusero, eli 1+0=1.
- etäisyys symbolijonojen " A" ja " A" välillä on 0, symbolijonot vas-10 taavat toisiaan. Syötesymbolijonosta on vielä huomioimatta 4 merkkiä, ja pisteen P1 kautta kulkevien symbolijonojen pituudesta on vielä jäljellä 5 merkkiä. Pienin mahdollinen pituusero on siten 5 - 4=1. Vertailuarvo on 0+1=1.
- etäisyys symbolijonojen " A" ja " AB" välillä on 1, koska yhdellä merkin lisäyksellä/muutoksella verrattavana olevat symbolijonot vastaavat toils siaan. Syötesymbolijonosta on vielä huomioimatta 2 merkkiä, ja pisteen P1 kautta kulkevien symbolijonojen pituudesta on vielä jäljellä 3 merkkiä. Pienin mahdollinen pituusero on siten 5 - 3=2. Vertailuarvo on 1+2=3.
- etäisyys symbolijonojen " A" ja " ABO" välillä on 2, koska kahdella merkin lisäyksellä/muutoksella verrattavana olevat symbolijonot vastaavat toi- 20 siaan. Syötesymbolijonosta on vielä huomioimatta 2 merkkiä, ja pisteen P kautta kulkevien symbolijonojen pituudesta on vielä jäljellä 5 merkkiä. Pienin mahdollinen pituusero on siten 5 - 2=3. Vertailuarvo on 2+3=5.
Kun verrattava symbolijonot on asetettu vastakkain kaikilla vaihto-0 ehtoisilla tavoilla päädytään kuvion 2b alalaidassa olevan taulukon osoittamiin o 25 tuloksiin. On kuitenkin huomattava, että edellä selostettu tapa laskea etäisyy- A det verrattavien symbolijonojen välillä on vain yksi esimerkki, jonka lisäksi on ^ olemassa muitakin tunnettuja ja kenties jopa yksinkertaisempia tapoja. Keksin- ^ nön kannalta ei ole olennaista se, miten etäisyydet lasketaan. Eräs vaihtoehto £ laskea etäisyydet on hyödyntää kuvion 2b alaosassa näkyvän kaltaista tauluk- o 30 koa, ja erityisesti edellistä laskettua etäisyyssaraketta.
” Kun pisteen P1 laskenta on suoritettu haetaan jälleen lohkossa E
CM
§ laskentapiste, jolla on alin vertailuarvo C. Tulokseksi saadaan piste P, josta
(M
löytyy vertailuarvo 0, joka on pienempi kuin pisteen P1 pienin vertailuarvo 1. Näin ollen seuraavaksi edetään haaraa 2 pitkin edelleen pisteeseen P2. Loh 8 kossa F todetaan, että päätösehdot eivät toteudu, jonka jälkeen päädytään lohkoon C toistamaan laskut pisteen P2 osalta.
Seuraavassa ei käydä läpi kaikkien laskentapisteiden laskuja, vaan siirrytään suoraan kuvion 2c osoittamaan tilanteeseen, jossa laskut on saatu 5 valmiiksi pisteille P3 ja P4. Tällöin kuvion 1 lohkokaavion lohkossa E todetaan, että alin vertailuarvo C on saatu laskentapisteestä P3, jonka alin vertailuarvo C on 1 kuvion 2c mukaan, kun taas alin vertailuarvo C pisteessä P4 on 2. Näin ollen seuraavaksi edetään laskentapisteen P3 haarasta.
Kuvio 2d osoittaa tilannetta, kun laskut on suoritettu valmiiksi las-10 kentapisteille P5 ja P6. Tällöin kuvion 1 lohkokaavion lohkossa E todetaan, että alin vertailuarvo C on saatu kahdessa laskentapisteessä, eli sekä laskentapisteen P5 että P6 alin vertailuarvo C on 1. Seuraavaksi edetään laskenta-pisteen P5 haarasta.
Kuvio 2e osoittaa tilannetta, kun laskut on suoritettu valmiiksi las-15 kentapisteelle P7. Tällöin kuvion 1 lohkokaavion lohkossa E todetaan, että alin vertailuarvo C on saatu laskentapisteessä P6, jossa alin vertailuarvo C = 1 (laskentapisteen P7 alin vertailuarvo C = 2). Seuraavaksi edetään laskentapisteen P6 haarasta.
Kuvioissa ei ole esitetty kaikkia välivaiheita, mutta laskuja toistetta-20 essa laskentapisteille P9 ja P10 on vertailuarvo C=1 näille pisteille. Kun laskut vielä toistetaan laskentapisteelle P10 on tilanne kuvion 2f osoittama, kun kuvion 1 lohkokaaviossa jälleen päädytään lohkoon E. Laskentapisteen P10 osalta alin vertailuarvo C on 1. Koska kaikkien muiden haarojen viimeisen lasketun 0 laskentapisteen vertailuarvot (haarassa johon piste P7 kuuluu on C=2 ja haa- δ 25 rassa johon piste P4 kuuluu on C=2) ovat suuremmat kuin laskentapisteen A P10 vertailuarvo C=1 on laskentapiste P10 se piste, josta seuraavaksi tulisi ^ edetä. Laskentapiste P10 on kuitenkin viimeinen laskentapiste kyseisessä haa- ^ rassa. Näin ollen lohkossa F todetaan, että edellä selostettu päätösehto 2 ιοί teutuu, ja laskenta voidaan lopettaa.
o 30 Lohkossa G valitaan laskentapisteeseen P10 johtaneen haaran ” symbolijono vasteen tuottamista varten. Kyseinen symbolijono on ABOARD.
§ Tämä symbolijono tuotetaan vasteeksi syötteeseen.
C\J
Kuvion 1 lohkokaaviosta poiketen voidaan lohkon G jälkeen vielä suorittaa ylimääräinen tarkistus. Tällöin verrataan vasteen tuottamiseen käyte-35 tyn symbolijonon (tai symbolijonojen) ja syötesymbolijonon etäisyysmittaa en- 9 naita määrättyyn maksimietäisyyteen, eli raja-arvoon. Kuvion 2f tilanteessa vasteen tuottamiseen käytetyn symbolijonon ABOARD ja syötesymbolijonon ABORD välinen etäisyysmitta on 1 (ympyröity kuviossa 2f). Mikäli etäisyysmitta ylittää maksimietäisyyden, merkitsee tämä, että löytynyt symbolijono poikkeaa 5 niin paljon syötesymbolijonosta, että sen edelleen lähettäminen vasteessa ei ole tarkoituksenmukaista (riittävän läheistä symbolijonoa ei ole löydetty). Tällöin muunnetaan tuotettua vastetta ennen sen lähettämistä edelleen osoittamaan, että syötesymbolijonoa ei löytynyt. Näin vältytään tilanteelta, jossa vasteeksi muodostuisi symbolijono joka erittäin paljon poikkeaa syötesymboli-10 jonosta.
Kuvio 3 esittää lohkokaaviota keksinnön mukaisen laitteiston ensimmäisestä edullisesta suoritusmuodosta. Kuviossa 3 laitteistoa 10 havainnollistetaan toiminnallisilla lohkoilla 11 - 18. On kuitenkin tärkeää huomata, että laitteiston tosiasiallinen rakenne saattaa poiketa kuviossa 3 esitetystä. Lohko-15 jen toiminnot kuviossa 3 voidaan käytännössä toteuttaa yhdellä tai usealla piirillä tai tietokoneohjelmalla tai vaihtoehtoisesti piirien ja ohjelmien yhdistelmällä. Tällöin on myös mahdollista, että laitteiston toimintoja ei toteuteta tarkasti havainnollistetuilla lohkoilla, vaan sen sijaan kahden tai useamman lohkon toiminnot on saatettu yhdistää yhteen piiriin tai ohjelmaan.
20 Laitteisto 10, jonka avulla kuvioiden 1 ja 2a - 2f yhteydessä selostet tua menetelmää voidaan soveltaa, voi muodostua esimerkiksi tietoliikenneverkkoon kytketystä tietokoneesta, jonka muistiin 13 on muodostettu symboli-jonoista muodostuva tietokanta. Laitteistoon kuuluu välineitä 12 trie-0 tietorakenteen luomiseksi ryhmittelemällä muistiin 13 tallennetut symbolijonot o 25 trie-tietorakenteen haaroihin.
-A Kun trie-tietorakenne on luotu ja laitteen tulon 11 kautta vastaanote- taan syötesymbolijono aloittaa laitteisto 10 syötesymbolijonoa parhaiten vas-™ taavan symbolijonon hakemisen muistista 13. Tämän suorittamiseksi laitteissa toon kuuluu laskentavälineitä 14 etäisyysmittojen, pituuserojen ja vertailuarvo- g 30 jen laskemiseksi kyseessä olevan haaran laskentapisteen ja sitä edeltävien ^ laskentapisteiden muodostaman näytesymbolijonon ja syötesymbolijonon välil- § lä asettamalla nämä vastakkain vaihtoehtoisilla tavoilla.
(M
Laitteistossa on lisäksi valintavälineitä 15, jotka toistuvasti valitsevat seuraavan haaran jota pitkin edetä, ja jotka osoittavat laskentavälineille 14 35 seuraavan laskentapisteen, jonka osalta laskut tulee suorittaa, kuten aikai- 10 semmin on selostettu kuvion 1 vuokaavion yhteydessä. Kun valintavälineet 15 havaitsevat, että päättymisehto toteutuu, eli lasketa tulee lopettaa, välittyy tästä tieto välineille 16.
Välineet 16 valitsevat muistissa 13 olevien tietojen perusteella yh-5 den tai useamman symbolijonon, joiden etäisyysmitta syötesymbolijonoon on suoritettujen laskujen perustella pienin. Tämän jälkeen vasteen tuottamisvälineet 17 tuottavat ja lähettävät edelleen laitteiston 10 lähdön 18 kautta vasteen, joka siis muodostuu siitä symbolijonosta tai niistä symbolijonoista, joka eniten muistuttavat syötesymbolijonoa.
10 On ymmärrettävä, että edellä oleva selitys ja siihen liittyvät kuviot on ainoastaan tarkoitettu havainnollistamaan esillä olevaa keksintöä. Alan ammattimiehelle tulevat olemaan ilmeisiä erilaiset keksinnön variaatiot ja muunnelmat ilman että poiketaan oheisissa patenttivaatimuksissa esitetyn keksinnön suoja-piiristä.
o o
(M
CO
(M
X
cc Q.
O
co co oj o o
(M

Claims (7)

1. Menetelmä syötesymbolijonon etsimiseksi symbolijonojen joukosta, jossa: 5 luodaan (A) trie-tietorakenne symbolijonoista, jolloin symbolijonot ryhmitellään haaroihin siten, että samoilla symboleilla alkavat symbolijonot kuuluvat samaan haaraan, ja samassa haarassa olevat symbolijonot jakaantuvat uusiin haaroihin niiden symbolien kohdalta, joista lähtien symbolijonot poikkeavat toisistaan, 10 vastaanotetaan (B) syötesymbolijonosta muodostuva syöte, edetään (C) trie-tietorakenteen alkupisteestä haaraa pitkin seuraa-van symbolin osoittamaan laskentapisteeseen, lasketaan (D) etäisyysmitat laskentapisteessä kyseessä olevan haaran laskentapisteen sekä sitä edeltävien laskentapisteiden symbolien muodos- 15 tämän näytesymbolijonon ja syötesymbolijonon välillä asettamalla nämä vastakkain vaihtoehtoisilla tavoilla, valitaan (E) toistuvasti seuraava haara jota pitkin edetään (C) seu-raavan symbolin osoittamaan laskentapisteeseen, jossa mainittu laskenta (D) toistetaan uuden laskentapisteen osalta, 20 laskennan (G) päätyttyä valitaan yksi tai useampi symbolijono, joi den etäisyysmitta syötesymbolijonoon on suoritettujen laskujen perusteella pienin, ja käytetään valittua tai valittuja symbolijonoja vasteen tuottamiseen, o 5 tunnettu siitä, cv ^ 25 että lasketaan (D) laskentapisteissä etäisyysmittojen lisäksi myös ^ jokaista etäisyysmittaa vastaava pienin mahdollinen pituusero, joka osoittaa CO ^ miten paljon kyseisen etäisyysmitan laskennassa huomiotta jääneen syö- g tesymbolijonon loppuosan pituus eroaa kyseessä olevan laskentapisteen kaut- o ta kulkevien symbolijonojen laskentapisteen jälkeisistä pituuksista, ja lasketaan CO £2 30 jokaisen etäisyysmitan ja sitä vastaavan pituuseron perusteella vertailuarvo, ja o että mainittu haaran valinta (E) suoritetaan siten, että seuraavaksi ^ edetään siitä laskentapisteestä, josta on saatu tulokseksi alin vertailuarvo.
2. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että verrataan vasteen tuottamiseen käytetyn symbolijonon tai symboli-jonojen ja syötesymbolijonon etäisyysmittaa ennalta määrättyyn maksimietäi-syyteen, ja muunnetaan tuotettua vastetta osoittamaan, että syötesymbolijonoa 5 ei löytynyt, mikäli etäisyysmitta ylittää maksimietäisyyden.
3. Patenttivaatimuksen 1 tai 2 mukainen menetelmä, tunnettu siitä, että haaran valinnan yhteydessä verrataan mainittua alinta vertailuarvoa ennalta määrättyyn maksimietäisyyteen, ja 10 päätetään laskenta mikäli alin vertailuarvo ylittää maksimietäisyy den.
4. Jonkin patenttivaatimuksen 1 - 3 mukainen menetelmä, tunnettu siitä, että haaran valinnan yhteydessä tarkistetaan onko jossakin haarassa jo 15 suoritettu laskenta viimeisen laskentapisteen osalta, ja päätetään laskenta mikäli osoittautuu, että jonkin haaran viimeisen laskentapisteen osalta on saatu vertailuarvo, joka on pienempi kuin kaikkien muiden laskentapisteiden osalta saadut vertailuarvot.
5. Tietokoneohjelma, tunnettu siitä, että se käsittää tietoko-20 neohjelmavälineet, jotka on järjestetty suorittamaan jonkin patenttivaatimuksen 1 - 4 mukaisen menetelmän kaikki vaiheet suoritettaessa mainittu ohjelma tietokoneessa.
6. Tietokoneella luettava tietoväline, tunnettu siitä, että tietoväli- 0 neeltä on luettavissa tietokoneohjelma, joka käsittää tietokoneohjelmavälineet o 25 jotka on järjestetty suorittamaan jonkin patenttivaatimuksen 1-4 mukaisen t"·— menetelmän kaikki vaiheet suoritettaessa mainittu ohjelma tietokoneessa.
7. Laitteisto (10) symbolijonon etsimiseksi symbolijonojen joukosta, ^ joka laitteisto käsittää: £ välineitä (12) trie-tietorakenteen luomiseksi symbolijonoista ryhmit- g 30 telemällä symbolijonot haaroihin siten, että samoilla symboleilla alkavat sym- bolijonot kuuluvat samaan haaraan, ja samassa haarassa olevat symbolijonot o jakaantuvat uusiin haaroihin niiden symbolien kohdalta, joista lähtien symboli en jonot poikkeavat toisistaan, tulon (11) syötesymbolijonosta muodostuvan syötesymbolijonon 35 vastaanottamiseksi, laskentavälineitä (14) etäisyysmittojen laskemiseksi laskentapisteessä kyseessä olevan haaran laskentapisteen sekä sitä edeltävien laskenta-pisteiden symbolien muodostaman näytesymbolijonon ja syötesymbolijonon välillä asettamalla nämä vastakkain vaihtoehtoisilla tavoilla, 5 valintavälineitä (15), jotka toistuvasti valitsevat seuraavan haara jota pitkin edetä seuraavan symbolin osoittamaan laskentapisteeseen, jossa mainittu laskenta toistuu uuden laskentapisteen osalta, valintavälineitä (16), jotka laskennan päätyttyä valitsevat yhden tai useamman symbolijonon, joiden etäisyysmitta syötteeseen on suoritettujen 10 laskujen perusteella pienin, vasteen tuottamisvälineitä (17), jotka tuottava vasteen käyttäen valittua tai valittuja symbolijonoja ja lähdön (18) vasteen syöttämiseksi edelleen, tunnettu siitä, laitteisto on järjestetty: 15 laskemaan laskentapisteissä etäisyysmittojen lisäksi myös jokaista etäisyysmittaa vastaava pienin mahdollinen pituusero, joka osoittaa miten paljon kyseisen etäisyysmitan laskennassa huomiotta jääneen syötesymbolijonon loppuosan pituus eroaa kyseessä olevan laskentapisteen kautta kulkevien symbolijonojen laskentapisteen jälkeisistä pituuksista, ja laskemaan jokaisen 20 etäisyysmitan ja sitä vastaavan pituuseron perusteella vertailuarvon, ja suorittamaan mainitun haaran valinnan siten, että seuraava eteneminen tapahtuu siitä laskentapisteestä, josta on saatu tulokseksi alin vertailuarvo. o δ CM CO CM X cc CL O CO CO CM O O CM
FI20021330A 2002-07-05 2002-07-05 Symbolijonon etsintä FI121583B (fi)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FI20021330A FI121583B (fi) 2002-07-05 2002-07-05 Symbolijonon etsintä
EP03762696A EP1552429A1 (en) 2002-07-05 2003-07-03 Searching for symbol string
PCT/FI2003/000540 WO2004006126A1 (en) 2002-07-05 2003-07-03 Searching for symbol string
US10/520,171 US8532988B2 (en) 2002-07-05 2003-07-03 Searching for symbol string
AU2003242800A AU2003242800A1 (en) 2002-07-05 2003-07-03 Searching for symbol string

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20021330A FI121583B (fi) 2002-07-05 2002-07-05 Symbolijonon etsintä
FI20021330 2002-07-05

Publications (3)

Publication Number Publication Date
FI20021330A0 FI20021330A0 (fi) 2002-07-05
FI20021330A FI20021330A (fi) 2004-01-06
FI121583B true FI121583B (fi) 2011-01-14

Family

ID=8564312

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20021330A FI121583B (fi) 2002-07-05 2002-07-05 Symbolijonon etsintä

Country Status (5)

Country Link
US (1) US8532988B2 (fi)
EP (1) EP1552429A1 (fi)
AU (1) AU2003242800A1 (fi)
FI (1) FI121583B (fi)
WO (1) WO2004006126A1 (fi)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895218B2 (en) 2004-11-09 2011-02-22 Veveo, Inc. Method and system for performing searches for television content using reduced text input
US7788266B2 (en) 2005-08-26 2010-08-31 Veveo, Inc. Method and system for processing ambiguous, multi-term search queries
US7779011B2 (en) 2005-08-26 2010-08-17 Veveo, Inc. Method and system for dynamically processing ambiguous, reduced text search queries and highlighting results thereof
US20070088681A1 (en) * 2005-10-17 2007-04-19 Veveo, Inc. Method and system for offsetting network latencies during incremental searching using local caching and predictive fetching of results from a remote server
US7644054B2 (en) 2005-11-23 2010-01-05 Veveo, Inc. System and method for finding desired results by incremental search using an ambiguous keypad with the input containing orthographic and typographic errors
US8380726B2 (en) 2006-03-06 2013-02-19 Veveo, Inc. Methods and systems for selecting and presenting content based on a comparison of preference signatures from multiple users
US8073860B2 (en) 2006-03-30 2011-12-06 Veveo, Inc. Method and system for incrementally selecting and providing relevant search engines in response to a user query
JP5193183B2 (ja) 2006-04-20 2013-05-08 ベベオ,インク. コンテンツを選択して提示するユーザインタフェース方法およびシステム
JP5161883B2 (ja) 2006-09-14 2013-03-13 ベベオ,インク. 検索結果を階層的に編成された概念クラスタに動的に再配列する方法およびシステム
WO2008045690A2 (en) 2006-10-06 2008-04-17 Veveo, Inc. Linear character selection display interface for ambiguous text input
WO2008063987A2 (en) 2006-11-13 2008-05-29 Veveo, Inc. Method of and system for selecting and presenting content based on user identification
US8549424B2 (en) 2007-05-25 2013-10-01 Veveo, Inc. System and method for text disambiguation and context designation in incremental search
US8424043B1 (en) 2007-10-23 2013-04-16 Strategic Design Federation W, Inc. Method and system for detecting unscheduled events and recording programming streams
US8943539B2 (en) 2007-11-21 2015-01-27 Rovi Guides, Inc. Enabling a friend to remotely modify user data
FR2940693B1 (fr) * 2008-12-30 2016-12-02 Thales Sa Procede et systeme optimises de gestion des noms propres pour l'optimisation de la gestion et de l'interrogation des bases de donnees.
US9166714B2 (en) 2009-09-11 2015-10-20 Veveo, Inc. Method of and system for presenting enriched video viewing analytics
US9208259B2 (en) * 2009-12-02 2015-12-08 International Business Machines Corporation Using symbols to search local and remote data stores
US20110191330A1 (en) 2010-02-04 2011-08-04 Veveo, Inc. Method of and System for Enhanced Content Discovery Based on Network and Device Access Behavior
US10037238B2 (en) * 2016-02-10 2018-07-31 Dell Products, L.P. System and method for encoding exception conditions included at a remediation database
US11941018B2 (en) 2018-06-13 2024-03-26 Oracle International Corporation Regular expression generation for negative example using context
US11580166B2 (en) * 2018-06-13 2023-02-14 Oracle International Corporation Regular expression generation using span highlighting alignment
US11347779B2 (en) 2018-06-13 2022-05-31 Oracle International Corporation User interface for regular expression generation
US11354305B2 (en) 2018-06-13 2022-06-07 Oracle International Corporation User interface commands for regular expression generation

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5580183A (en) * 1978-12-12 1980-06-17 Nippon Telegr & Teleph Corp <Ntt> On-line recognition processing system of hand-written character
US4400828A (en) * 1981-03-27 1983-08-23 Bell Telephone Laboratories, Incorporated Word recognizer
US5144671A (en) * 1990-03-15 1992-09-01 Gte Laboratories Incorporated Method for reducing the search complexity in analysis-by-synthesis coding
US5377281A (en) * 1992-03-18 1994-12-27 At&T Corp. Knowledge-based character recognition
US5353376A (en) * 1992-03-20 1994-10-04 Texas Instruments Incorporated System and method for improved speech acquisition for hands-free voice telecommunication in a noisy environment
US5699456A (en) * 1994-01-21 1997-12-16 Lucent Technologies Inc. Large vocabulary connected speech recognition system and method of language representation using evolutional grammar to represent context free grammars
US6243493B1 (en) * 1994-01-21 2001-06-05 At&T Corp. Method and apparatus for handwriting recognition using invariant features
JP3095623B2 (ja) * 1994-06-16 2000-10-10 松下電器産業株式会社 属性判定方法
US5768423A (en) * 1994-09-02 1998-06-16 Panasonic Technologies Inc. Trie structure based method and apparatus for indexing and searching handwritten databases with dynamic search sequencing
EP0702311A1 (en) * 1994-09-14 1996-03-20 Kabushiki Kaisha Toshiba Data processing system,data retrieval system,data processing method and data retrieval method
JP3152871B2 (ja) * 1995-11-10 2001-04-03 富士通株式会社 ラティスをキーとした検索を行う辞書検索装置および方法
US6490555B1 (en) * 1997-03-14 2002-12-03 Scansoft, Inc. Discriminatively trained mixture models in continuous speech recognition
NO983175L (no) * 1998-07-10 2000-01-11 Fast Search & Transfer Asa Soekesystem for gjenfinning av data
US6226332B1 (en) * 1998-11-13 2001-05-01 Broadcom Corporation Multi-pair transceiver decoder system with low computation slicer
US6370237B1 (en) * 1998-12-29 2002-04-09 Alcatel Usa Sourcing, Lp Voice activated dialing with reduced storage requirements
JP4085500B2 (ja) * 1999-01-29 2008-05-14 株式会社エクォス・リサーチ 車両状況把握装置、エージェント装置、および、車両制御装置
US6662180B1 (en) 1999-05-12 2003-12-09 Matsushita Electric Industrial Co., Ltd. Method for searching in large databases of automatically recognized text
US6438181B1 (en) * 1999-05-28 2002-08-20 Koninklijke Philips Electronics N.V. Efficient metric memory configuration for a Viterbi decoder
US20020002550A1 (en) * 2000-02-10 2002-01-03 Berman Andrew P. Process for enabling flexible and fast content-based retrieval
US7043439B2 (en) * 2000-03-29 2006-05-09 Canon Kabushiki Kaisha Machine interface
US6560576B1 (en) * 2000-04-25 2003-05-06 Nuance Communications Method and apparatus for providing active help to a user of a voice-enabled application
JP3501725B2 (ja) * 2000-05-12 2004-03-02 日本電気株式会社 ビタビ復号器
SE519985C2 (sv) * 2000-09-15 2003-05-06 Ericsson Telefon Ab L M Kodning och avkodning av signaler från flera kanaler
US7328211B2 (en) * 2000-09-21 2008-02-05 Jpmorgan Chase Bank, N.A. System and methods for improved linguistic pattern matching
US7027974B1 (en) * 2000-10-27 2006-04-11 Science Applications International Corporation Ontology-based parser for natural language processing
US7627596B2 (en) * 2001-02-22 2009-12-01 International Business Machines Corporation Retrieving handwritten documents using multiple document recognizers and techniques allowing both typed and handwritten queries
US6985861B2 (en) * 2001-12-12 2006-01-10 Hewlett-Packard Development Company, L.P. Systems and methods for combining subword recognition and whole word recognition of a spoken input
US7092567B2 (en) * 2002-11-04 2006-08-15 Matsushita Electric Industrial Co., Ltd. Post-processing system and method for correcting machine recognized text

Also Published As

Publication number Publication date
US20050278175A1 (en) 2005-12-15
US8532988B2 (en) 2013-09-10
AU2003242800A1 (en) 2004-01-23
EP1552429A1 (en) 2005-07-13
FI20021330A (fi) 2004-01-06
WO2004006126A1 (en) 2004-01-15
FI20021330A0 (fi) 2002-07-05

Similar Documents

Publication Publication Date Title
FI121583B (fi) Symbolijonon etsintä
JP3672242B2 (ja) パターン検索方法、パターン検索装置、コンピュータプログラム及び記憶媒体
Zhang et al. Approximate tree matching in the presence of variable length don′ t cares
US8849841B2 (en) Memory circuit for Aho-corasick type character recognition automaton and method of storing data in such a circuit
US8645350B2 (en) Dictionary compilations
CN111401049A (zh) 一种实体链接方法及装置
US20190220503A1 (en) Method, device, and system, for identifying data elements in data structures
CN102073654B (zh) 生成与维护网页内容抽取模板的方法和设备
Fredriksson et al. Practical and optimal string matching
US20060036627A1 (en) Method and apparatus for a restartable hash in a trie
US20070038447A1 (en) Pattern matching method and apparatus and speech information retrieval system
Fredriksson et al. Efficient parameterized string matching
Abraham et al. On space-stretch trade-offs: Lower bounds
CN101251845A (zh) 利用改进的Wu-Manber算法进行多模式串匹配的方法
CN111079437B (zh) 一种实体识别方法、电子设备及存储介质
CN104021202B (zh) 一种知识共享平台的词条处理装置和方法
CN108833052A (zh) 信道极化译码路径度量值排序方法
Spencer et al. Collating texts using progressive multiple alignment
CN113128215A (zh) 人工智能情感分析方法及其系统
CN113158627A (zh) 代码复杂度的检测方法及装置、存储介质、电子设备
CN107273360A (zh) 基于语义理解的中文实词提取算法
CN112825268B (zh) 测序结果比对方法及其应用
CN105653061B (zh) 针对拼音输入法的词条检索及错词检测的方法和系统
CN109241124A (zh) 一种快速检索相似字符串的方法及系统
CN111708891B (zh) 一种多源食材数据之间的食材实体链接方法和装置

Legal Events

Date Code Title Description
FG Patent granted

Ref document number: 121583

Country of ref document: FI

MM Patent lapsed