Elütések és OCR-hibák miatt romlik a RAG-eredmény, az embeddings oldja meg a problémát
A felhasználói gépelési hibák, transzkripciós és OCR-zajok rontják a RAG-rendszerek teljesítményét. A klasszikus helyesírás-ellenőrzők csak az elsőt tudják javítani.

A RAG-rendszerek (Retrieval-Augmented Generation) hatékonyságát jelentősen befolyásolhatja a bemeneti szöveg minősége. A felhasználók gépelési hibái, a gyorsírásból származó transzkripciós zajok és az optikai karakterfelismerés (OCR) hibái mind olyan problémák, amelyek megakadályozzák a pontos információ-visszakeresést. Angela Shi és Kezhan Shi a Towards Data Science-on megjelent cikkében bemutatja, hogy a hagyományos helyesírás-ellenőrző eszközök csak korlátozottan képesek kezelni ezeket a problémákat, míg az embeddings (beágyazások) csendben elnyelik a zaj nagy részét.
A cikk kiemeli, hogy a RAG-folyamat mindkét oldalán – a lekérdezés és a dokumentumok oldalán is – megjelenhet a zaj. Egy rosszul megfogalmazott kérdés, amely tele van elütésekkel, nem fog hasznos választ adni, még akkor sem, ha a dokumentumbázisban ott a keresett információ. Hasonlóképpen, ha 50 000 ügyfélszolgálati jegy kerül feldolgozásra, amelyek fele töredékes, rövidített vagy vegyes kis- és nagybetűs, a rendszer zajos eredményeket fog produkálni. Ez a „zajos szöveg probléma” látszólag helyesírási hibának tűnik, de valójában három különböző forrásból ered.
A zaj három forrása
Az elsődleges zajforrás a felhasználó által elkövetett typo, azaz elgépelés. Ezt a klasszikus helyesírás-ellenőrző eszközök, mint például a Levenshtein-távolság vagy a BK-fa, képesek kijavítani. Ezek az algoritmusok a szavak közötti minimális karakteres különbségeket vizsgálják, és a szótárban található legközelebbi helyes alakot keresik. A Python könyvtárak, mint a rapidfuzz, jellyfish, symspellpy és pybktree, mind ezt a problémát célozzák.
A második zajforrás a transzkripciós zaj. Ez akkor keletkezik, amikor a felhasználó gyorsan gépel, különösen mobil eszközökön. Ilyenkor előfordulhatnak határok elmosódása, ékezetek elhagyása vagy szavak rövidítése. Ezeket a hibákat a hagyományos helyesírás-ellenőrzők már nem tudják hatékonyan javítani, mivel nem a szavak hangzása vagy kiejtése, hanem a karakterek sorrendje a lényeges. A hangzási kódolók, mint a Soundex és a Metaphone, részben segíthetnek, de nem oldják meg teljesen a problémát.
A harmadik zajforrás a OCR-zaj. Az optikai karakterfelismerés során a szkennelt dokumentumok karakterei hibásan ismerődhetnek fel. Például az „O” betű helyett nulla („0”), egy „fi” ligatúra kettéhasadása, vagy egybeírt szavak (pl. „policyholder” helyett „policy holder”) jelenhetnek meg. Ezek a hibák szintén nem javíthatók klasszikus helyesírás-ellenőrzőkkel, mert a szó maga nem feltétlenül hibás, csak a karakterek cserélődtek fel vagy váltak szét.
A klasszikus helyesírás-ellenőrzők korlátai
A cikk részletesen bemutatja a klasszikus helyesírás-ellenőrzés öt fő technikáját: Levenshtein-távolság, BK-fa, Soundex és Metaphone, SymSpell, valamint karakter n-grammák. Ezek az eszközök évtizedek óta megbízhatóan működnek az elgépelések javításában. A Levenshtein-távolság például megadja a minimális karakteres szerkesztések számát két szó között.
A BK-fa pedig lehetővé teszi a gyors keresést nagy szótárakban. A SymSpell rendkívül gyors, szub-milliszekundumos válaszidőt kínál egy egymilliós szótár esetén is. Azonban mindezek a módszerek alapvetően a szavak pontos, karakterről karakterre történő egyezésén vagy annak kis eltérésein alapulnak.
Embeddings: a zaj elnyelői
A modern RAG-rendszerekben az embeddings (szó- vagy mondatvektorok) kulcsszerepet játszanak. Ezek a vektorok a szöveg szemantikai jelentését fogják fel, és képesek elnyelni a transzkripciós és OCR-zajokat. Míg egy helyesírás-ellenőrző nem tud mit kezdeni az „O” és „0” karakterek felcserélésével egy dokumentumban, addig az embeddingalapú szimilitás-keresés képes felismerni, hogy a két szó ugyanazt a fogalmat jelöli.
Ezért a RAG-folyamat-ban a klasszikus helyesírás-ellenőrzők mellett (vagy helyett) az embeddingalapú szimilitás-keresés is elengedhetetlen a zajos szövegek hatékony kezeléséhez. A javaslat szerint érdemes kombinálni a fuzzy matching technikákat az embeddingalapú szimilitással a legjobb eredmények eléréséhez.