Siirry sisältöön
Service status

Kirjoita hakeaksesi

Tekninen Dokumentaatio · 8 min lukuaika

OCR-käsittelyputki

Miten Intric muuttaa ladatun dokumentin hakukelpoiseksi indeksiksi: asettelun huomioiva tekstin poiminta, OCR, kuvien kuvailu, tiivistäminen, tekstiosiin jakaminen sekä niiden päälle rakentuvat hakutyökalut.

Kun liität tiedoston avustajaan, Intric ei vain poimi siitä tekstiä ja pilko sitä paloiksi. Intric käsittelee dokumentin useassa vaiheessa. Kun joku sitten esittää kysymyksen, avustaja tietää jo, mitä tiedosto käsittelee, löytää kohdan sekä tarkan sanamuodon että merkityksen perusteella ja pystyy etenemään dokumentissa sivu kerrallaan. Tämä artikkeli kuvaa vaiheet teknisellä tasolla. Mitä vaiheet tarkoittavat avustajan käyttäjälle, kertoo artikkeli Miten Intric hakee tietoa dokumenteistasi.

Monet hakujärjestelmät toimivat samalla kaavalla: ne poimivat raakatekstin, pilkkovat sen vakiomittaisiin paloihin, muuttavat jokaisen palan vektoriksi ja liittävät muutaman lähimmän palan promptiin. Tapa toimii, kun lyhyeen dokumenttiin kohdistuu lyhyt kysymys. Organisaatioiden todellisessa aineistossa se pettää:

  • Skannatulla sivulla ei ole poimittavaa tekstiä, joten sivun sisältö jää hiljaa pois.
  • Kaavio, vuokaavio tai infografiikka putoaa pois, vaikka vastaus olisi juuri siinä.
  • Kun taulukko katkeaa kahtia, rivit irtoavat otsikoistaan.
  • Kysymykseen kokonaisesta luvusta tulee vastaukseksi kourallinen irrallisia katkelmia.
  • Kun avustajalla on kymmeniä tiedostoja, jokainen haku kohdistuu kaikkeen, ja epäolennaisten tiedostojen heikot osumat syrjäyttävät oikean.

Jokainen alla kuvattu vaihe ratkaisee yhden näistä ongelmista.

Käsittely alkaa heti, kun tiedosto on liitetty, ja etenee taustalla joukkona toisistaan riippuvia tehtäviä:

  1. Poiminta — Intric lukee dokumentin sivu kerrallaan. OCR-käsittelyyn menevät vain sitä tarvitsevat sivut, ja kuvat ohjautuvat visiomallille.
  2. Tiivistäminen — Intric kirjoittaa koko tiedostosta lyhyen tiivistelmän.
  3. Tekstiosiin jakaminen ja indeksointi — Intric jakaa tekstin pieniin osiin, merkitsee kunkin osan sijainnin dokumentissa ja indeksoi osat sekä avainsanahakua että semanttista hakua varten.

Tiivistäminen ja indeksointi alkavat, kun poiminta on valmis, ja ne etenevät rinnakkain. Suuret PDF-tiedostot Intric jakaa jaksoihin, poimii jaksot rinnakkain ja kokoaa ne takaisin oikeaan järjestykseen.

OCR on hitaampi ja epätarkempi kuin valmiin tekstikerroksen lukeminen, joten Intric ei käytä sitä kaikkeen. Intric tarkastelee jokaisen sivun erikseen ja ohjaa sen OCR-käsittelyyn vain silloin, kun ei ole varmaa, että sivun tekstikerros on täydellinen. Näin käy esimerkiksi, kun

  • sivulla ei ole tekstikerrosta, kuten skannatussa dokumentissa
  • upotettu teksti on sekavaa tai kattaa vain osan sivun sisällöstä
  • sivulla on niin suuria kuvia, että niissä voi olla omaa sisältöä
  • sivulla on merkintöjä tai taulukko ilman näkyviä reunaviivoja.

Sivut, joilla on siisti tekstikerros, Intric lukee suoraan. Siksi Intric käsittelee oikein myös dokumentin, joka on osittain sähköisesti tuotettu ja osittain skannattu: se ratkaisee jokaisen sivun erikseen eikä luokittele koko dokumenttia jompaankumpaan ryhmään.

Poiminnassa Intric säilyttää ne sivun osat, joiden merkitys riippuu niiden sijainnista:

  • Taulukot Intric tunnistaa ja rakentaa uudelleen jäsennellyiksi taulukoiksi, joten jokainen arvo pysyy sarakeotsikkonsa alla.
  • Lomakekentät eli rastitetut valintaruudut ja täytetyt tekstikentät Intric yhdistää tekstiin, joten täytetty lomake näkyy tekstissäkin täytettynä.
  • Sivurajat pysyvät tarkasti paikallaan, ja juuri niiden ansiosta sivukohtaiset lähdeviitteet ovat myöhemmin mahdollisia.

Kun sivulla on kuva, kuten kaavio, kuvaaja, valokuvattu taulukko tai infografiikka, Intric rajaa kuva-alueen irti ja välittää sen visiokielimallille. Malli kirjoittaa kuvasta tekstimuotoisen kuvauksen, jossa se

  • kirjoittaa puhtaaksi kuvassa olevan tekstin
  • kuvaa kaavion osat ja niiden väliset yhteydet
  • muuntaa kuvina olevat taulukot jäsennellyksi dataksi
  • kuvaa kuvaajan akselit ja datapisteet
  • kuvailee valokuvat, piirustukset, kuten pohjapiirrokset, ja fonttinäytteet sen mukaan, mitä niissä näkyy, eikä tyydy pelkkään kuvatekstiin.

Intric sijoittaa kuvauksen kuvan kohdalle sivulla, joten kuvaus asettuu asiayhteyteensä ja indeksoituu kuten mikä tahansa muu teksti. Näin avustaja pystyy vastaamaan kysymykseen, jonka vastaus löytyy vain vuokaaviosta, ja viittaamaan lähteenä juuri siihen sivuun.

Kuvien kuvailu on valinnainen. Jos asennuksessa ei ole visiomallia käytössä, poiminta toimii silti, mutta pelkän tekstin varassa.

Tyyppi Miten Intric lukee sen
PDF Koko yllä kuvattu käsittelyputki OCR ja kuvien kuvailu mukaan lukien
Word, PowerPoint Tekstin ja rakenteen suora poiminta
Pelkkä teksti, Markdown, HTML, RTF, JSON ja vastaavat muodot Tekstinä
Excel, CSV Oma reittinsä — katso Laskentataulukot

Intric kirjoittaa jokaisesta tiedostosta lyhyen tiivistelmän sisällöstä poimitun edustavan otteen perusteella.

Tiivistelmien ansiosta avustaja voi valita, mistä tiedostosta se etsii, ennen kuin hakee mitään. Kun tiedostoja on vähän, malli saa kaikki tiivistelmät heti alussa. Kun tiedostoja on paljon, malli voi selata tiedostoluetteloa ja ajaa kaikkiin tiedostoihin kohdistuvan kartoittavan haun löytääkseen ehdokkaat. Kummassakin tapauksessa malli rajaa ensin joukkoa sen sijaan, että hakisi viidestäkymmenestä dokumentista kerralla ja kävisi läpi niiden kaikkien heikot osumat. Näin virheosumia tulee vähemmän ja työkonteksti pysyy pienenä.

Vaihe 3: Tekstiosiin jakaminen ja indeksointi

Osio nimeltä “Vaihe 3: Tekstiosiin jakaminen ja indeksointi”

Intric jakaa poimitun tekstin enintään noin 300 tokenin tekstiosiin. Raja osuu luontevimpaan mahdolliseen kohtaan: ensisijaisesti kappaleiden väliin, sitten rivien väliin, sitten virkkeiden väliin ja vasta viimeisenä keinona sanojen väliin. PDF-tiedostossa tekstiosa ei koskaan ylitä sivun rajaa, ja taulukko tai muu poimittu elementti pysyy ehjänä, jos se mahtuu yhteen osaan.

Ei päällekkäisyyttä vaan tarkka sijainti

Osio nimeltä “Ei päällekkäisyyttä vaan tarkka sijainti”

Monet järjestelmät toistavat 10–20 % kunkin palan sisällöstä seuraavan palan alussa, jotta rajalla katkennut virke säilyisi ainakin yhdessä palassa. Tämä kasvattaa indeksiä ja täyttää promptin samalla tekstillä kahteen kertaan.

Intricin tekstiosat eivät mene päällekkäin. Sen sijaan jokainen osa kirjaa sijaintinsa:

  • sivunumero — alkuperäisen dokumentin sivu, jolta tekstiosa on peräisin
  • järjestysnumero — osan paikka dokumentin tekstiosien jonossa

Koska sijainti on tallessa, avustaja voi pyytää suoraan “seuraavan osan” tai “kaiken sivulta 66”. Avustaja saa jatkuvuuden käyttöönsä silloin, kun se sitä tarvitsee, eikä sen hintana ole toistoa jokaisessa osassa.

Intric indeksoi jokaisen tekstiosan kahdesti: avainsanahakua varten ja embedding-vektorina semanttista hakua varten. Kukin asennus määrittää oman embedding-mallinsa, ja jokainen tietämysindeksi on sidottu siihen embedding-malliin, jolla se on luotu.

Laskentataulukoita ja CSV-tiedostoja Intric ei tarkoituksella jaa tekstiosiin eikä muunna vektoreiksi. Jos taulukon hajottaa tekstinpaloiksi ja vertailee niitä vektoreina, taulukosta katoaa juuri se, mikä tekee siitä taulukon: keskiarvoa tai suodatettua lukumäärää ei voi laskea muutamasta samannäköisestä rivistä.

Sen sijaan avustaja saa kunkin taulukon rakenteen — sarakeotsikot, muutaman esimerkkirivin ja rivimäärän — ja vastaa kysymyksiin kirjoittamalla koodia ja ajamalla sen todellista dataa vasten eristetyssä hiekkalaatikossa. Kysymykseen “montako tapausta suljettiin maaliskuussa” avustaja vastaa laskemalla, ei arvailemalla katkelmien perusteella. Laskentataulukoistakin Intric kirjoittaa tiivistelmän, joten avustaja voi valita niitä muiden tiedostojen joukosta.

Haku: miten avustaja käyttää indeksiä

Osio nimeltä “Haku: miten avustaja käyttää indeksiä”

Kun kysyt jotain, avustaja ei aja yhtä ennalta määrättyä hakua. Sillä on joukko hakutyökaluja, ja se päättää kysymyksen perusteella, mitä niistä käyttää ja missä järjestyksessä.

Työkalu Mitä se tekee
Hybridihaku Hakee yhdestä tiedostosta samanaikaisesti avainsanojen ja merkityksen perusteella. Malli säätää painotuksen jokaiselle haulle erikseen puhtaasta avainsanahausta puhtaaseen semanttiseen hakuun.
Navigoiva lukeminen Noutaa tekstiosat niiden tarkan sivunumeron tai järjestysnumeron perusteella, joten malli voi lukea eteen- tai taaksepäin löytämästään kohdasta.
Koko tiedoston lukeminen Lukee tiedoston kokonaan tehtäviin, jotka vaativat koko dokumentin.
Kartoitus Hakee kaikista avustajan tiedostoista ja selvittää, mitkä niistä ovat olennaisia.

Hybridihaku saa painoarvon väliltä 0–1. Arvolla 0 haku on puhdasta avainsanahakua (BM25), arvolla 1 puhdasta semanttista samankaltaisuutta, ja niiden väliset arvot yhdistävät molempia. Malli valitsee painon jokaiselle haulle:

  • asianumero, artiklaviittaus tai henkilön nimi vaatii matalan painon, jotta tarkka merkkijono ratkaisee
  • käsitteellinen kysymys vaatii korkean painon, jotta “epäsäännöllisten työaikojen terveysvaikutukset” osuu kysymykseen yötyöstä
  • useimmat kysymykset sijoittuvat jonnekin näiden väliin.

Navigoivan lukemisen ansiosta avustaja selviää esimerkiksi pyynnöstä “tiivistä luku 8”:

  1. Hybridihaku hakusanalla “Luku 8” löytää tekstiosan, josta luku alkaa sivulla 65.
  2. Malli lukee sivunumeron kyseisen osan sijaintitiedoista.
  3. Seuraavaksi malli noutaa sivut järjestyksessä — 66, 67, 68 — kunnes vastaan tulee luvun 9 otsikko.
  4. Lopuksi malli tiivistää koko luvun ja viittaa lukemiinsa sivuihin.

Yksittäinen haku olisi palauttanut luvun ensimmäisen kappaleen ja muutaman hajanaisen kohdan. Eteenpäin lukemalla malli saa mukaan kaiken siltä väliltä.

Tiedoston lukeminen kokonaan on hyödyllistä lyhyissä dokumenteissa ja esimerkiksi kahden sopimuksen vertailussa, mutta hyvin suuri tiedosto tukkisi kontekstin. Indeksoiduissa tiedostoissa koko tiedoston lukemisen yläraja on 60 000 merkkiä. Jos tiedosto on suurempi, työkalu kieltäytyy ja ohjaa mallin käyttämään hybridihakua tai navigoivaa lukemista. Näin mallin on pakko rajata aineistoa sen sijaan, että se lukisi kaiken.

Mallit, joilla on hyvin suuri konteksti-ikkuna, pystyvät periaatteessa ottamaan vastaan koko dokumenttikokoelman kerralla. Käytännössä mallin huomio ohenee satojen tuhansien tokenien matkalla: keskivaiheen kohdat jäävät huomaamatta ja alussa annetut rajoitteet unohtuvat. Kun Intric hakee pienen määrän hyvin olennaista tekstiä ja laajentaa aineistoa harkiten vain tarvittaessa, mallin työstämä aineisto pysyy lyhyenä ja tiiviinä. Samalla jokainen osa pysyy jäljitettävissä alkuperäänsä.

Jokaiseen avustajan noutamaan tekstiosaan on tallennettu tiedosto ja sivunumero, josta se on peräisin, ja avustajan on aina viitattava käyttämiinsä lähteisiin. Vastauksessa jokainen lähdeviite näkyy numeroituna viitteenä. PDF-tiedostossa viite avaa alkuperäisen dokumentin katseluikkunaan keskustelun viereen, suoraan viitatulle sivulle. Muut tiedostotyypit aukeavat esikatseluun.

Lähdeviitteet osoittavat sivuun eivätkä korostettuun kohtaan, ja ne osoittavat lataamaasi tiedostoon. Siksi hyödyllisimmät viitteet saat, kun lataat alkuperäisen dokumentin etkä viety tai muunnettua kopiota.

Avustajaan liitetyt tiedostot ja suoraan keskusteluun ladatut tiedostot kulkevat eri reittejä.

Liitetty avustajaan Ladattu keskusteluun
Poiminta Koko käsittelyputki OCR mukaan lukien PDF-tiedostoille koko käsittelyputki OCR mukaan lukien, muut tiedostot tekstinä
Tiivistetty ja indeksoitu Kyllä Ei
Käyttötapa Avustaja hakee niistä hakutyökaluilla Malli saa poimitun tekstin suoraan
Säilyy Niin kauan kuin tiedosto on liitettynä Kyseisen keskustelun ajan
Mittakaava Suuret kirjastot, paljon tiedostoja Mallin konteksti-ikkunan rajoissa
Sopii parhaiten Käsikirjoille, ohjekirjastoille ja arkistoille Kertaluonteisiin tarkastuksiin ja vertailuihin

Hakutyökalut toimivat vain liitetyissä tiedostoissa. Keskusteluun ladatun tiedoston malli lukee kokonaan, joten sitä rajoittaa käytössä olevan mallin konteksti-ikkuna. Katso Liitteet.

Käsittelyn aikana tiedoston tila näkyy avustajan tietämysasetuksissa. Ensin näkyy Odottaa…, sitten edistymispalkin kanssa Analysoidaan… ja lopuksi Valmis. Tila päivittyy reaaliajassa ilman sivun uudelleenlatausta. Jos käsittely epäonnistuu, tiedoston kohdalla näkyy Epäonnistui ja painike Yritä uudelleen, joka käynnistää tiedoston käsittelyn uudelleen.

Käsittelyputki yrittää epäonnistunutta vaihetta itse uudelleen ennen kuin ilmoittaa virheestä, ja vioittuneet PDF-tiedostot se yrittää korjata ennen kuin luopuu niistä. Keskeneräinen tiedosto näkyy avustajalle, mutta vain lyhyenä otteena, eikä avustaja voi hakea siitä ennen kuin indeksointi on valmis.

Raja Arvo
Avustajaan liitetty tiedosto 100 MB
OCR-käsitelty PDF 3 000 sivua
Keskusteluun ladattu tiedosto 25 MB
Tiedostoja kysymystä kohden keskustelussa 20

Intric hylkää sivurajan ylittävän PDF:n jo latausvaiheessa ja kertoo virheilmoituksessa sen sivumäärän ja rajan.

Jokainen vaihe toimii joko Intric-alustan sisällä tai mallin päätepisteessä, jonka asennus valitsee:

  • OCR ja asettelun analyysi toimivat alustan sisällä ilman ulkoisia palveluita.
  • Kuvien kuvailu, tiivistäminen ja embedding kutsuvat kukin omaa mallin päätepistettään, jonka jokainen asennus määrittää erikseen.

On-prem-asennuksessa jokainen näistä voi osoittaa omalla infrastruktuurillasi toimivaan malliin, joten dokumentti voi kulkea latauksesta indeksiin poistumatta ympäristöstäsi. Käsittelyputki tarvitsee toimiakseen työjonon ja hakuindeksin, jotka kuuluvat nykyisiin asennuksiin. Vanhempi on-prem-asennus, jossa niitä ei vielä ole, käyttää päivitykseen asti aiempaa tietämyksen käsittelyä. Katso tietämyksen datavirrat, jos haluat tietää, miten dokumenttidata liikkuu pilvipalvelussa Intricin ja embedding-mallin välillä.