Citace od: xblaha kdy 25. 08. 2023, 15:27:57
...
poměrně značné množství článků
...
To jsme se moc od "velkém množství českého textu" neposunuli. Kolik to je, 10k, 10M, 10G clanku?
Citace od: xblaha kdy 25. 08. 2023, 15:27:57
Řazení výsledků... ta logika už může být poměrně komplikovaná, protože počet shod v příslušném článku nemusí nutně znamenat, že se jedná o nejrelevantnější výsledek. Dalo by se do toho zařadit s určitou váhou i četnost zobrazení takových článků za např. poslední tři měsíce apod.
Textova relevance je trochu slozitejsi obor nez "pocet shod". Asi bych nedoporucil to vymyslet/programovat, ale nechal to na pouzitem vyhledavaci, Elasticsearch napriklad pouziva variantu
BM25.
Pokud mate dalsi atributy (jako treba cetnost zobrazeni clanku), tim lepe. Musite nicmene vymyslet formuli, jak z vektoru atributu, vcetne textove relevance, vydestilujete radici kriterium. Typicky postup je:
dotaz->vyhledavaci stroj vrati N matchujicich dokumentu->pretrideni N dokumentu->vyber top K, ktere se zobrazi.
Velke vyhledavace pouzivaji na onu formuli strojove uceni, da se nicmene zacit i s z prstu vycucanym vzorcem typu:
("textove score"+(log("pocet zobrazeni"))
Citace od: xblaha kdy 25. 08. 2023, 15:27:57
Nerozumím až tak návrhu "Zvazil bych vygenerovani embdedingu z dokumentu/dotazu pomoci jazykoveho modelu a pouziti podobnostniho hledani."
1. Predpocitate
embedding pro dokumenty pomoci jazykoveho modelu, aka cerne skrinky, ktera z textu v cestine vyrobi vektor cisel pevne delky (napriklad 1024 8bit cisel).
2. Pomoci stejneho modelu spocitate embedding/vektor dotazu
3. Podobnostnim vyhledavanim vyhledate dokumenty nejpodobnejsi vektoru dotazu. Podobnosti se typicky mysli kosinova podobnost.
Pro pocitani vektoru, mate-li nekonecne zdroje a spoustu casu, lze pouzit
OpenAI embedings jako sluzbu. Na vlastnim HW pro cestinu napriklad
Small-E-Czech.
Jako podobnostni databazi muzu doporucit
Faiss. Ale i dnesni nektere relacni databaze umi podobnostni hledani.
Nicmene, kdyz odhlednu od toho, co pisu, doporucil bych vyzkouset zminovany PostgreSQL/Elasticsearch se slovnikem typu ispell. Pokud to bude stacit, konec pribehu. Pokud ne, viz vyse

.