Nejlepší odpověď
Pokud výrazem „nejlepší“ míníte kompresní poměr, pak podle Benchmark komprese velkých textů je to CMIX. Jediným problémem je, že ke spuštění potřebujete počítač s 32 GB paměti. Pak bude trvat 4 dny, než zkomprimujete nebo dekomprimujete 1 GB textu.
Stejně jako většina nejlépe hodnocených programů používá CMIX slovníkové předzpracování a kontextové mixování stylu PAQ. Preprocesor nahrazuje slova 1 až 3 bitovými symboly ze slovníku a provádí další zpracování, například nahrazuje velká písmena speciálním symbolem a odpovídajícím malým písmenem. Může také analyzovat běžné předpony a přípony.
Kontextový model přebírá kontext (například posledních n bitů) a odhaduje pravděpodobnost p že další bit bude 0 nebo 1. Výsledek se přivede do aritmetického kodéru, který kóduje bit velmi blízko Shannonově limitu log2 1 / p bity. Kompresní poměr proto zcela závisí na tom, jak dobře se odhaduje p . Algoritmus míchání kontextu vytváří velmi přesné předpovědi kombinací předpovědí mnoha nezávislých modelů. CMIX používá několik stovek modelů, a proto vyžaduje tolik času a paměti. Důvodů, proč existuje tolik modelů, je to, že existuje mnoho různých možných kontextů, mnoho způsobů převodu kontextu na předpověď, mnoho způsobů aktualizace modelu a mnoho způsobů, jak adaptivně kombinovat předpovědi jiných modelů a vybrat ty nejlepší pomocí hierarchie mixérů. Praktické kontextové mixéry mohou používat 2 až 20 modelů a obětovat určitou kompresi pro jednoduchost a použitelnost.
Nejlepší kompresory se blíží skutečnému porozumění text. Modelují lexikální, sémantickou a gramatickou strukturu jazyka. Například slovník je organizován seskupením souvisejících slov, například matka s otcem a pondělí s úterý . Výsledkem jsou kódy slovníku, které se liší pouze nízkými bity. Poté některé z kontextových modelů vypustí nízké bity, což kompresoru umožní předpovědět viděl jsem svého otce v pondělí poté, co jsem viděl Maminku jsem viděl v úterý .
Technické podrobnosti mohou být docela zapojeny. Pokud se chcete dozvědět více, přečtěte si část Vysvětlení komprese dat .
Odpověď
Za předpokladu, že mluvíte o bezztrátové komprese (texty mohou být ztrátové komprimovány například pomocí jazyka SMS), je dobře známo, že nemůžete bezztrátově komprimovat „žádný“ binární soubor. Jinými slovy, u některých souborů se zvětší jejich velikost. To je způsobeno hlavičkovými soubory kodéru a základními matematickými výpočty nemožných bijekcí mezi [0, …, N] a [0, …, N-1] nebo Dirichletovým principem holubí díry (Schubfachprinzip). Viz http://en.wikipedia.org/wiki/Pigeonhole\_principle
Jak již bylo řečeno, „nejlepší“ obecně odkazuje na nějaký průměrný kompresní poměr @ Sam-Jp. Důležitá je také znaková sada textů (např. Ascii 7 nebo 8 bitů) a jejich typ. „Nejlepší komprese“ u čistě psaných textových souborů v lidském jazyce se chová odlišně v souborech postscriptové tiskárny, rtf, doc nebo dokonce pdf, které obsahují text, protože některé formáty již zapouzdřují kompresi. V důsledku toho „nejlepší“ kompresní poměr závisí na obsahu databáze, homogenitě a typologii textových souborů, jak je vidět v anglické kompresi textu uvedené v odkazu @ Igor-Carron: http://www.maximumcompression.com/data/text.php
Rychlost @ Jonathan-Hseu je také docela důležitá. V závislosti na vaší aplikaci (od archivace po interakce s databázemi @ Daniel-Lemire) se člověk zaměřuje buď na kompresi, nebo na dekompresi (obvykle komprimuje jednou, dekomprimuje mnoho) rychlostí nebo na obojí.
Ale jiné funkce lze hodnotit dobře, zejména s příchodem obrovských datových sad a různých akvizičních systémů: -výkonnost přístupu k lidem nebo schopnost vyhledávání v komprimovaných souborech -odolnost proti chybám (odolnost vůči poškozeným bitům) -online schopnost, tj. schopnost efektivně komprimovat datový proud, jak přichází – komprese textů strukturovaných nejen v rastrovém pořadí, ale i ve stromech, grafech – nízká složitost nebo energetická účinnost kodéru nebo dekodéru nebo obojí – možná paralelizace – možnost distribuovaného kódování (kompresní práce sdílená na různých uzlech sítě)
Nakonec, dokonce i pro text, lze vymyslet z bezztrátového pole. A vracíme se k dříve citovaným SMS, kde je důležitý význam, ale možná ne správné hláskování, viz např.Kaufman & Klein, Poloztrátová komprese http://www.computer.org/portal/web/csdl/doi/10.1109/DCC.2004.1281520
Jako obvykle se otázka „nejlepšího“ vyřeší v upřesnění otázky skutečného účelu v definování dalších metriky kvality a odpovídající váha těchto metrik k definování „vašich“ nejlepších @ Alex-Kamil. Témata v následujících zdrojích jsou inspirativní:
* Transakce IEEE o teorii informací http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=18 * Transakce IRE o teorii informací http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=4547527 * Data Compression Conference pages.cs.brandeis.edu/~dcc/
Nakonec, protože nejsem žádný specialista, ale amatér v bezeztrátové kompresi, byl jsem nedávno ohromen výkonem (v kompresním poměru) Deplump (http://www.deplump.com/index.html) na některé dlouhé anglické textové soubory a několik binárních souborů (ve srovnání s mými oblíbenými rar, Bzip2 a 7zip citovanými v jiných odpovědích). Můžete to otestovat na krátké soubory online. Další informace naleznete v publikaci F. Wood a kol. The Sequence Memoizer, 2011 (viz http://www.sequencememoizer.com/) nebo webová stránka Franck Wood http://www.stat.columbia.edu/~fwood/