abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:49 | Zajímavý článek

    Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 26.08.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 17:33 | Zajímavý článek

    Bylo vydáno nové číslo hackerského magazínu tmp.0ut: Volume 5.

    Ladislav Hagara | Komentářů: 0
    včera 01:44 | Nová verze

    Byla vydána nová stabilní verze 8.2 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 152. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 1
    3.9. 23:11 | Nová verze

    Byla vydána nová stabilní verze 4.0 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). S rozhraním přepsaným do Qt. Přehled novinek také na YouTube. Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 2
    3.9. 16:55 | IT novinky

    NVIDIA kupuje Hugging Face za 12,93 miliardy dolarů.

    Ladislav Hagara | Komentářů: 3
    3.9. 15:44 | IT novinky

    Předobjednat si lze nový jednodeskový počítač Arduino VENTUNO Q s předinstalovaným Ubuntu. S 16 GB LPDDR5 a 64 GB eMMC. Pro lokální LLM, agentní AI, počítačové vidění, robotiku…

    Ladislav Hagara | Komentářů: 1
    3.9. 13:00 | Zajímavý software

    Hexpair není nejlepší HEX editor na světě a ani se o to nesnaží. Zato je k dispozici kdykoliv a kdekoliv – všude tam, kde máte svůj Vim. Vznikl jako hobby projekt před pár měsíci a dospěl do stavu, kdy by mohl být užitečný širší komunitě. Přepnout do HEX režimu se dá i uprostřed rozdělané práce: Soubor, který už máte otevřený běžným vim file.md, jedním příkazem přepnete do HEX editoru a dalším příkazem ho můžete vrátit zpět do textu. Kurzor přitom

    … více »
    Cohen | Komentářů: 1
    3.9. 01:55 | Nasazení Linuxu

    CERN dlouhodobě používal vlastní sestavení RHEL, ze kterého přešel na CentOS Stream. Federico Vaga a Nikos Tsipinakis ale nyní v přednášce na MiniDebConf Winterthur 2026 popisují plán probíhajícího přechodu na Debian pro řízení akcelerátorů. Důvodem k opuštění CentOS Stream jsou zachování zpětné kompatibility se starším hardwarem, kterou Red Hat narušuje, když tlačí sestavení balíčků pro novější verze architektury (x86-64), a nedostatečné nástroje pro sestavování vlastních balíčků a repozitářů.

    |🇵🇸 | Komentářů: 20
    3.9. 01:44 | Nová verze

    UZDoom (Wikipedie), tj. fork GZDoom, byl vydán ve verzi 5.0.0. Videopředstavení na YouTube. Podrobný přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 1
    2.9. 16:11 | Nová verze

    Příručka Linux From Scratch pro sestavení základního linuxového systému byla aktualizována v pravidelném půlročním termínu. Vydání 13.1 shrnuje přes 40 nových verzí balíčků a několik patchů. Navazující příručka Beyond Linux From Scratch s recepty pro sestavení dalších knihoven a aplikací zatím vydána nebyla, ačkoliv vývojová verze stále dostává aktualizace. Lze je číst online nebo stáhnout v HTML či PDF.

    |🇵🇸 | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (3%)
     (20%)
     (29%)
     (7%)
     (5%)
     (2%)
     (14%)
     (21%)
    Celkem 2570 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Trie v pythonu

    13.4.2007 18:21 Pepa
    Trie v pythonu
    Přečteno: 316×
    DD, snazim se ulozit slovnik ze souboru (cca 6milionu slov - soubor ma asi 80MB, kazde zvlast na kazdem radku), do struktury Trie (co pismeno, to uzel - spolecne prefixy slov). Cilem je redukovat pametovy prostor zabrany vlastnim slovnikem. At se vsak problem snazim vyresit jakkoli, stale narazim na nedostatek pameti. Zkousel jsem jiz vnorene seznamy, slovniky a naposledy strukturu, neco ve smyslu:
    class TNode:
            term, subNodes, data = None, (), None
    
            def __init__(self, data):
                    self.data=data #vlastni pismeno
                    self.subNodes=() #ntice poduzli
                    self.term=None #ukoncovaci terminal
    
    class tri:
            #############################
            def __init__(self):
                    """
                    Inicializace
                    """
                    self.root=self.addNode('#')
    
            ############################
            def add(self, word):
                    """
                    Prida slovo do slovniku
                    """
                    curNode=self.root
                    for letter in word:
                            notInTree=True
                            for i in curNode.subNodes:
                                    if i.data==letter:
                                            notInTree=False
                                            index=i
                                            break
                            if notInTree:
                                    temp=list(curNode.subNodes)
                                    temp.append(self.addNode(letter))
                                    curNode.subNodes=tuple(temp)
                                    index=curNode.subNodes[-1]
                            curNode=index
    
    Ovsem i pri pouziti teto struktury, nactu-li vice nez 350 000 slov tak se pamet zabrana programem vysplha na nejakych cca 100MB.

    Napadlo by nejake vhodne efektivni reseni? Jenom doplnim ze s pythonem vice mene zacinam, ale s timto problemem jsem stravil uz mnoho drahoceneho casu, tak mne to nedalo abych se nezeptal.

    Dekuji za odpoved

    Pepa H.

    Odpovědi

    Pavel Stárek avatar 13.4.2007 19:39 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
    Rozbalit Rozbalit vše Re: Trie v pythonu
    Možná by bylo vhodnější ten soubor naimportovat do nějaké databáze - například sqlite. Popisky a návody například http://www.devshed.com/c/a/Python/Using-SQLite-in-Python/ a o samotné sqlite http://www.root.cz/clanky/sqlite-ultra-lehke-sql/ .
    Kdo chce, hledá způsob; kdo nechce, hledá důvod.
    13.4.2007 21:46 8an | skóre: 30
    Rozbalit Rozbalit vše Re: Trie v pythonu
    Obávám se že režie Pythonu na objekt a seznamy v něm bude mnohem větší než kolik tím můžeš ušetřit. Trie má smysl pro rychlejší vyhledávání (i když i to je sporné), ne pro úsporu paměti. Pro tohle by se asi hodil indexsekvenční soubor (bloky např. po 4kB, a pamatuješ si interval slov v každém bloku), ale kolik to má jako normální Pythonovský slovník? 100MB paměti dneska nic není...
    If you build an operating system that even an idiot can use, only idiots will use it.
    14.4.2007 22:35 Tom.š Ze.le.in | skóre: 21 | blog: tz
    Rozbalit Rozbalit vše Re: Trie v pythonu
    AFAIK trie smysl pro zkompaktnění dat má - viz TAOCP, třetí díl a TeX the Program od par. 919.

    Prostorově efektivní implementaci jsem dělal (v jiném jazyce, nevím zda to jde v Pythonu) tak, že jsem alokoval dostatečně velké pole znakú, a s ním pak pracoval přímo pomocí indexu. Tím by se měl minimalizovat overhead jazyka. Po kompaktifikaci lze pole zmenšit na potřebné minimum.

    Doporučuji se podívat na ten zdroják TeXu - je to myslím stáhnutelné (tex.web) a docela dokumentované. Tvorba trie tabulky je od par. 942.

    Založit nové vláknoNahoru

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

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