abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 01:00 | Nová verze

    Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    dnes 00:44 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová verze 2024.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | IT novinky

    Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.

    Ladislav Hagara | Komentářů: 9
    včera 10:44 | Nová verze

    MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.

    Ladislav Hagara | Komentářů: 0
    včera 10:22 | Nová verze

    Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.

    Ladislav Hagara | Komentářů: 2
    včera 01:00 | Nová verze Ladislav Hagara | Komentářů: 0
    4.6. 19:55 | IT novinky

    Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.

    Ladislav Hagara | Komentářů: 0
    4.6. 13:44 | IT novinky

    Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.

    Ladislav Hagara | Komentářů: 0
    4.6. 13:22 | Nová verze

    Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    4.6. 12:55 | Zajímavý software

    Společnost Kaspersky vydala svůj bezplatný Virus Removal Tool (KVRT) také pro Linux.

    Ladislav Hagara | Komentářů: 11
    Rozcestník

    Hledat či nehledat? A jak?

    13.3.2006 22:09 | Přečteno: 1655× | Python

    Už je to delší dobu, co jsem (aspoň doufám) vyrostl z období - než používat něco ne-úplně-jasného, to si to radši naprogramuju sám... Při programování se snažím používat již hotové nástroje a knihovny, leč ne vždy lze. Co použít na fulltextové prohledávání? A navíc v Pythonu?

    Aneb těžký život programátora v Pythonu, obzvláště programátora neziskových projektů...

    Zadání

    Nepřítel nám zadal webové stránky a my máme použít co nejchytřejší prohledávač v češtině. Nemůžeme použít Google či Jyxo, protože bychom nemohli (jednoduše) zpracovávat statistiky vyhledávání, navíc není možné (dostatečně) customizovat vzhled výsledků.

    Lucene

    K fulltextovému prohledávání existuje výborná knihovna Lucene, která je bohužel (Leoš promine) v Javě. Existují k ní sice porty CLucene (pro C++), Lucene4c (pro C) a jistě i pro jiné obskurní jazyky.

    Clucene a Python

    Pro CLucene existuje téměř přímočarý wrapper pro Python (SWIGový), ke kterému ovšem je nulová dokumentace a téměř žádný příklad použití (pouze testovací sada). Rozchození IndexWriteru, IndexReaderu a IndexSearcheru bylo úkolem značně netriviálním - naštěstí je možné použít dokumentaci k CLucene a nahlédnout do zdrojáku.

    Drobnou nevýhodou CLucene + Pythonového wrapperu je nemožnost (alespoň v mé konfiguraci) rozchodit jiný než StandardAnalyzer, pokusy o subclassing Analyzeru vedly spolelivě k core. Dočasně se to dá vyřešit prostým ořezáním diakritiky :-), ale do budoucna to jako průchozí řešení nevidím...

    Zkoumáním SWIGového kódu jsem žádný problém nenašel, po týdnu zkoumání jsem to (zatím) vzdal.

    Tady končí vyzkoušené (naprogramované) znalosti, zbytek jsem vyčetl z dokumentace.

    PyLucene

    Původní Lucene je více-méně bezproblémová knihovna, jenom je v Javě, což mne moc netěší, neboť mé programovací prostředí je Webware for Python. Částečným řešením může býti projekt PyLucene.

    PyLucene využívá možností kompilátoru gcj, který zkompiluje Javu do objektového kódu použitelného z C, ten se potom opět pomocí SWIGu zabalí do "úhledného" Pythonového modulu. Prý to funguje.

    Nevýhodou je mišmaš tří jazyků a tří paměťových modelů (Java = garbace collector, C++ = ruční uvolňování, Python = reference counting + garbage collector). Druhou nevýhodou - neméně podstatnou - jest moje nedůvěra k Javě, v ostrém prostředí nainstalovaná (zatím) není - počítač má pouze 360MB RAM a nechci ho trápit Javou, dokud to nebude akutně nutné.

    Lude

    Zajímavě se mi jeví Lude - démon, který běží na pozadí, přes XML-RPC se do něho tlačí dokumenty a požadavky na vyhledávání a padají z něho výsledky. Je v Javě (malé mínus), ale nemá ostrou verzi - mínus o něco větší. Zajímavé by bylo slepit CLucene a XML-RPC, dosáhlo by se tím větší rychlosti, navíc by to fungovalo bez Javy.

    MnogoSearch

    Pěkné, funkční, umí to český stemming(!), ale konfigurace pro prohledávání webu je velká. Navíc má špatné reference, co se týče výkonu. Moc důvěryhodně nepůsobí ani ukládání vyhledávacích dat v relační databázi. Neexistuje modul pro Python, ale v nejhorším případě se ponořím do PHP a napíšu si XML-RPC rozhraní :-)

    Vzhledem k tomu, že český stemming je založen na datech z ispellového slovníku, neměl by být velký problém jej z MnogoSearche vypárat.

    Xapian

    Na Xapian jsem narazil náhodou. Má vazbu pro Python, oproti Lucene mi není moc jasný indexovací koncept. Lucene je intuitivní, dokument má pole (fields), která nějak plním a podle nich se vyhledává. Xapian pole nemá, nebo jsou někde utajená? Takže nevím, kam mám vložit data ze titulku, apod...

    Pro rýpaly poznamenávám, že návod jsem si četl, jen jsem jej možná nepochopil dostatečně :-)

    Co dál?

    Zatím jsem použil CLucene + Python-wrapper. Češtinu odřezávám, takže můžu použít klasický StandardAnalyzer. Přemýšlím, čím ji nahradit, protože aktuální řešení je Quick and Dirty™

    Existuje nějaký další vyhledávací stroj? Pěkný, použitelný a udržovaný? V C, C++ nebo ideálně s Pythonovým wrapperem? Umí stemming? A alespoň z poloviny to co Lucene?

           

    Hodnocení: 83 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    13.3.2006 22:54 Pmx
    Rozbalit Rozbalit vše Re: Hledat či nehledat? A jak?
    Co je to stemming?
    Věroš avatar 13.3.2006 23:00 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
    Rozbalit Rozbalit vše Re: Hledat či nehledat? A jak?
    V podstatě rozpoznání stejných tvarů jednoho slova.

    Google na dotaz "define:stemming" tvrdí
    Word variations. For example, if I entered the query "swim", a search engine that supports stemming might return results that include "swimming" or "swims".
    Školím Ansible
    14.3.2006 06:52 petr_p
    Rozbalit Rozbalit vše Re: Hledat či nehledat? A jak?
    Nevyplatilo by se vzit nejaky free morfologicky analyzator (napr. ajku) a rozjet projekt podobny GNU/FDL Anglicko-ceskemu slovniku? Tak by se mohlo podarit vytvorit svobodnou morfologickou databazi ceskeho jazyka a tim by se vyresily vsechny problemy s ohybanim ceskych slov.

    Vim, ze proti stemmingu je to kanon na vrabce, ale bylo by to krasne.
    Věroš avatar 14.3.2006 13:38 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
    Rozbalit Rozbalit vše Re: Hledat či nehledat? A jak?
    Já nepotřebuju morfologický analyzátor, mě bude stačit (nějakou dobu) jenom stemming :-) Jen co najdu něco, co umí vyhledávat...
    Školím Ansible
    7.3.2007 00:42 David
    Rozbalit Rozbalit vše Re: Hledat či nehledat? A jak?
    A co Sherlock :) predchudce soucasneho Morfea ktery vyuziva centrum.cz Sherlock ma volne dostupne zdrojaky a je psan v C++ :)
    Věroš avatar 7.3.2007 01:00 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
    Rozbalit Rozbalit vše Re: Hledat či nehledat? A jak?
    Ejhle, na ten jsem zapomněl, pokud umí inteligentně stemovat, tak bych ho mohl ohnout.

    Ale od doby zápisku vyšel SOLR, do počítače se přidalo kvantum paměti a Javu by mohl unést, takže mířím spíše tím směrem.
    Školím Ansible

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.