Seznam Fulltext opět na FI MU

25. dubna 2007 v 18:00 | HejTi |  Jihomoravská éra Weblogy.cz
Před skoro půl rokem jsem zde publikoval svoje zápisky z přednášky o Seznam fujjtext. Dnes se na naší fakultu její průmyslový partner vrátil a opět nešetřil podrobnostmi.

Tímto chci Štěpánovi poděkovat za pozvání na přednášku i když jsem svoje zápisky z minulé takhle veřejně publikoval. Následující text jsou opět JEN ZÁPISKY. Neberte je moc doslova, seděl jsem vedle Yuhůa (který se na to zašel podívat v rámci svojí dovolené:-) a ten neustále vrtěl hlavou nebo měl bezradně hlavu v dlaních, což jsem si vysvětlil tak, že není zrovna nadšenej, že to Štěpán říká. Poslední půlhodinu jí měl v dlaních pořád. Když viděl osnovu bodu 4, tak uvažoval, že jestli se Štěpán dostane k poslednímu bodu u části c (relevance), tak že to bude asi muset stopnout :-)

Je teoretická šance, že by záznam přednášky byl alespoň pro studenty FI zveřejněnej, ale Dušan nevypadal, že by byl pro. Myslím si, že jednodušší než oficiální cesta bude ta, kterou nedávno zmiňoval ing. Schiller - totiž ta, že všechny přednášky má na svém disku, takže stačí prolomit jen dvoje dveře do jeho pracovny a... ;-) Každopádně ta samá přednáška už pravděpodobně nikde nebude, protože tam byly některé prý příliš citlivé údaje, některé jsem na přání ze zápisku odstranil a nechávám si je jako osobní know-how;-).

Přednáška byla narozdíl od minula myslím hodně přínosná spíš pro programátory (ale SEOisté si v tom své taky našli:-). Bylo na ní vidět, že se v poslední době na fulltextu hodně pracovalo. Osobně mám největší radost z toho, že jsem se zase po delší době (pár měsíců) zase potkal s Dušanem.

Přednáška "Fulltextový vyhledávač", Štěpán Škrob, PV030


Seznámení s anatomií fulltextového vyhledávače.

1. úvod

Všechny vyhledávače jsou stejné, jako auta. Liší se v implementačních detailech (tuším že tam byly obrázky trabantu a ferrari - obě mají 4 kola, volant...).

2. přehled architektury vyhledávače


Původní škálovatelnost 100M dokumentů
Nyní až 1G dokumentů
- Rozdělení databáze do svazků
- Zkrácení odezvy vyhledávače

Současná databáze
- Počet dokumentů 30M
- Datová veliksot 100GB

Výkon robota
- 2 M dokumentů / den

Dvě úzká hrdla
- Výběr dokumentu k reindexaci
- Přeložení URL na url_id

pagerank ovlivnuje jak url server, tak index searchers

3. důležité datové struktury

Lexikon (header, hash table, data area, free space)
- ptr_next (ukazatel na další slovo se stejným hash), id(123), len(4), word(ahoj)
-- ptr_next(null), id(657), len(5), word(nazdar)

slova, která se při reindexaci nenajdou v lexikonu zůstávají, jednou za čas je "ručně" vyhází

- 450MB, 22 miliónů slov, 16 miliónů hashů (využitých 75%), největší kolize 13 slov/hashů, Výkon 100000 slov/sec (zkoušeli lexikon převést na MySQL, které zvládlo cca 15k)
- lexikon je spojený s lemmatizátorem v jednu komponentu
- pro lemmatizovaná slova obsahuje lemmata, pro ostatní termy

Index slov
barrel je soubor ve kterém jsou uloženy záznamy několika slov (slovo s id nějaký a je tam seznam dokumentů, které obsahují to slovo)
barrel: word_id, size (B), doc_count, documents:doc_id(=urlid v robotovi),size, hits:strong (slovo zvýraznění, nejen to, spíš se nepoužívá),word_form (tvar slova jako id, což je nešťastné),para(v jakém odstavci),pos(pozici)

pagerank calculator (pouze odkazy apod., ne slova)
pagerank - zpracování statistických dat z webu

podle pageranku se nedá vyhledávat jen v některých dokumentech

Je potřeba šetřit místem (dekomprimace je rychlejší, než aby se četla nekompr. data).

Index trvale přítomný v paměti, v jakém barrelu slovo leží

50GB, trvale načtené 250MB


Index anchor dat - ze zpětných odkazů

podobné jako u index slov, u každého odkazu se drží rank stránky, ze které odkaz pochází (zřejmě v momentě zaindexování odkazu)

1GB (11odkazů na stránku)


Texty dokumentů

seřazené podle id dokumentu
obsahuje texty všech zaindexovaných stránek včetně balastu
-zachované infromace o odstavcích
- označkované začátky a konce slov
automatický abstrakt dokumentu (site:muni.cz) - hodně dobrý, ale nejde to kromě site: využít

statistické informace, 50GB, průměr 200slov na dokument (7znaků dlouhé slovo)
16b na odstavec + 16b na pozici v odstavci

4. použité algoritmy

a, crawlování

- filtrace dokumentů
podle url, http hlavičky, pozor na CGI scripty a URL zakončená lomítkem

- detekce českého jazyka
vyřazení binárních souborů (citilvost na řídící znaky ascii<32 (pozor na UTF16!!!!!!!!!!!!!!!!!!!!!!!!)
hledání tokenů podobných slovům (mezery a délka slova)
vyřazení zcela duplicitních dokuméntů, MD5hash z textového derivátu (bacha, bacha na duplicitní texty - eshopy)
kombinace slovníkové a statistické metody
- slovník ze 100.000 článků novinky.cz
- frekvence slov
- charakterističnost slov pro češtinu (žížala, řeřicha - slovník i jednotlivá písmenka...)
vysoká citrlivost na přítomnost českého jazyka
nutná spolehlivá funkce i pro krátké texty
ruční nastavení vah, neumí se učit


b, indexace

- lemmatizace
od Lingea
zaměření na spisovnou češtinu
více správných možností - dvě lemmata (citron v. citrón)
názvy, jména, příjmení

pouze podle podstatných, číslovky a přídavných jmen

neznámá slova
- indexace termu (nokia, nokii dvě různá slova)
Nejednoznačná slova
-zaindexování ve prospěch všech lemmat
-problémy: "Jana Králová" - vypadne "jan král"

Text bez diakritiky
- doplňuje se pokud je celý odstavec bez diakritiky
- výskyt hlavně v diskuzích

- identifikace podobných dokumentů
zkoumá se podobnost každého dokumentu se všemi ostatním dokumenty
pro každý dokument se spočítá N hashů
výstupem je max (hash) z každé funkce
neplatí tranzitivita (A<>B, B<>C => A<>C)
ze souborů vytvoříme třídy podobných dokumentů jako kdyby podobnost byla transitivní

c, vyhledávání

- doplňování diaktritiky
účel
-stále nezanedbatelné procento dotazů bez diakritiky
-nesprávně psané dlouhé samohlásky (á, é, í, ó) - (Slávia, ale myslí Slavia)
-překlepy (Śkoda místo Škoda)

postup (už se to prý trochu změnilo)
-úplné odstranění diakritiky z dotazu
-doplnění diakritiky do očištěného dotazu

- výběr vhodného lemmatu
pro slovo s více lemmaty se musí hledat pouze jednotlivá (jednak rychlost, druhak kvůli smyslu)

preference lemmat ze znalosti situace
typická podoba dotazů
- podstatná a přídavná jména (dovolená chorvatsko)
- slovesa vyjímečně (běží liška k táboru)
- 1. pád jedn. i mn. čísla (krby)

použití frekvenčního slovníku dvojic lemmat
- kombinace všech možností lemmatizace dotazu
- ohodnocení každé kombinace podle frekvence výskytu

výsledek - rozdílná lemmata pro
- německých tancích (lemma německý, tank)
- německých lidových tancích (lemma německý, lidový, tanec)

- hodnocení relevance
Vyhodnocují se pozice slov (vzdálenost)
- A B vzdálenost 0
- A x B vzdálenost 1
- A x x B vzdálenost 2
- B A vzdálenost 0

v textu musejí být všechna slova

hodnocení slov v
-titulku
-url
-text

url má význam i když není oddělené pomlčkou - viz "jak na web"

dynamická stop slova na základě dotazu

5. výkonové statistiky

dotazy na web interface
1 ze 3 metasearcherů - kolem 12 60-80/s (asi nepřesné)
kolem 50msc (bez query cache kolem 100)
query cache
nově 60 úspěch 40 neúspěch

odezva indexsearcherů (50-70msc)
content server (do 20msc)

Do budoucna by rádi:

zapojení pokročilých lingvistických metody
zvyšování počtu dokumentů v databázi
zlepšování výpočtu relevance

Buď první, kdo ohodnotí tento článek.

Komentáře

1 Radim Hasalík Radim Hasalík | E-mail | Web | 25. dubna 2007 v 18:51 | Reagovat

Škoda, že to není jako článek, ale jen poznámky :(. Co takhle nějaký napsat? Za honorář :-D

2 Martin Martin | 25. dubna 2007 v 18:58 | Reagovat

"- filtrace dokumentů

podle url, http hlavičky, pozor na CGI scripty a URL zakončená lomítkem"

Lomítka na konci URL představují nějaký problém? Mohl bys to rozvést?

3 Radek Karban Radek Karban | Web | 25. dubna 2007 v 20:24 | Reagovat

Diky za zapisky, alespon to pomuze utuzit na nektere veci pohled :) Jestli jsem to pochopil spravne, tak je vlastne jedno u dvojice slov, v jakem jsou poradi, napr. dovolena chorvatsko a chorvatsko dovolena, oboje vrati stejnou relevanci, coz je logicky OK.

4 HejTi HejTi | Web | 25. dubna 2007 v 22:58 | Reagovat

[1] - Radime, díky za nabídku, ale teď na psaní článků opravdu nemám chuť a čas

[2] - jestli jsem to pochopil z kontextu správně, tak to se týkalo problému spíš na straně serveru, aby vracel správné hlavičky

[3] - podle toho co bylo na slidech, by (co se vzdálenosti týče) bylo jedno jaké mají ty slova pořadí, ale to nutně nemusí v globálu znamenat, že je to jedno

[4] - Štěpán mi psal, že tu přednášku psal tak, aby byla uveřejnitelná, takže možná přeci jenom bude věrnější záznam (slidy+video) než tyto moje zápisky

5 Martin Martin | 26. dubna 2007 v 8:33 | Reagovat

Tak. Konečně víme, jak je fulltext Seznamu geniálně napsaný. Jenom jedna věc mi pořád vrtá hlavou. Proč z něj padají tak idiotské výsledky, kvalitativně hluboko pod konkurencí???

6 Solamyl Solamyl | 26. dubna 2007 v 19:05 | Reagovat

[5] tak dej konkrétní příklad... to mě zajímá

7 Martin Martin | 27. dubna 2007 v 7:29 | Reagovat

[6] moc nechápu jestli to je provokace, anebo je někdo opravdu s výsledky Seznam fulltextu spokojený. Vždyť je to očividné u jakéhokoliv dotazu. Taky se můžete septat lidí, co dělají do SEO, jak je optimalizace pro Seznam stupidní oproti velmi velmi složité optimalizaci pro Google.

Ale chcete příklad, máte ho mít. Dotaz "setkání patchwork" (bez uvozovek). Správná odpověď je www.praguepatchworkmeeting.com. Google má tuto na 10. místě, ovšem už na prvním místě je stránka, která na správnou adresu odkazuje.

A co Seznam?

Správná odpověď na 16. místě (2. strana!). A co je na první straně? Náhodné odkazy! Nějaký e-shop, plátek města Úvaly (dlouhý dokument, slovo setkání v kontextu "setkání s kosmetičkou"), Chrastavské listy (dlouhý dokument kde je na začátku "setkání sociálních demokratů", na konci patchowork, slova ale nijak nesouvisí), seznam publikací (Buď dobrý hostitel - Pěkná a příjemná "setkání"!!)... atd. Jak říkám, kupa náhodných odkazů, kde slova "patchwork" a "setkání" rozhodně nejsou v nejmenším kontextu.

A to je náhodně vybraný dotaz v češtině!! Nestalo se mi, že by Seznam nějak zafungoval a našel co má. Je to děsný krám že větší neznám!

p.s. a to nesrovnávám s ostatními českými vyhledávači. Třeba jyxo má správný odkaz na prvním místě!

8 Lws Lws | 19. listopadu 2007 v 14:39 | Reagovat

Přednášku jsem také absolvoval. 4lánek není podstatné když budou video záznamy ;)

9 cirda cirda | Web | 21. února 2008 v 20:33 | Reagovat

No já si na seznam stěžovat nemůžu. Sice žádné weby neoptimalizuju, ale ty co mám tak ty mi seznam dává vždycky nahoru plus minus do první desítky.

To že háže do výsledku občas balast je pravda, Nebo co mně občas štve je to že většinou je na prvním místě odkaz z wikipedie. Ale jinak si myslím že programátoři ze seznamu odvádějí docela slušnou práci. A jsem rád že v česku máme seznambota, který se snaží konkurovat googlikovi.

Jen bych chtěl poprosit abyste někde pak uvedli ty videa rád bych si je zhlédnul. Může to být zajímavé.

Díky za zprávy člověk když je celý den v práci nemá moc čas chodit na přednesy.

Zatím

10 mixkocnw mixkocnw | E-mail | Web | 29. května 2009 v 23:25 | Reagovat

3y0WTx  <a href="http://qmbqjqsrlylr.com/">qmbqjqsrlylr</a>, [url=http://cmjaweibkbvl.com/]cmjaweibkbvl[/url], [link=http://edgfldhzrnbc.com/]edgfldhzrnbc[/link], http://ojbjhjpxthnw.com/

11 Franta Franta | E-mail | Web | 24. března 2010 v 17:50 | Reagovat

Docela máš pravdu ...

Nový komentář

Přihlásit se
  Ještě nemáte vlastní web? Můžete si jej zdarma založit na Blog.cz.