Hacker News

Pag-uuri ng teksto gamit ang ZSTD module ng Python 3.14

Pag-uuri ng teksto gamit ang ZSTD module ng Python 3.14 Ang komprehensibong pagsusuri na ito ng teksto ay nag-aalok ng detalyadong pagsusuri sa mga pangunahing bahagi nito at mas malawak na implikasyon. Mga Pangunahing Lugar ng Pagtuon Nakasentro ang talakayan sa: Mga pangunahing mekanismo at pro...

10 min read Via maxhalford.github.io

Mewayz Team

Editorial Team

Hacker News
Ngayon nasa akin na ang lahat ng kontekstong kailangan ko. Hayaan akong isulat ang post sa blog.

Pag-uuri ng Teksto gamit ang ZSTD Module ng Python 3.14

Ipinakilala ng

Python 3.14 ang compression.zstd module sa karaniwang library, at nagbubukas ito ng nakakagulat na mahusay na diskarte sa pag-uuri ng teksto nang walang mga modelo ng machine learning. Sa pamamagitan ng pagsukat kung gaano kahusay ang pagpiga ng compressor ng dalawang text, matutukoy mo ang pagkakapareho ng mga ito — isang technique na tinatawag na Normalized Compression Distance (NCD) — at ngayon ay ginagawa itong sapat na mabilis ng Zstandard para sa mga workload sa produksyon.

Paano Talagang Gumagana ang Compression-Based Text Classification?

Ang pangunahing ideya sa likod ng pag-uuri na nakabatay sa compression ay nakaugat sa teorya ng impormasyon. Kapag ang isang compression algorithm tulad ng Zstandard ay nakatagpo ng isang bloke ng teksto, bumubuo ito ng panloob na diksyunaryo ng mga pattern. Kung ang dalawang teksto ay nagbabahagi ng magkatulad na bokabularyo, syntax, at istraktura, ang pag-compress ng mga ito nang magkasama ay magbubunga ng isang resulta na bahagyang mas malaki kaysa sa pag-compress sa mas malaking teksto lamang. Kung hindi nauugnay ang mga ito, ang pinagsama-samang naka-compress na laki ay lumalapit sa kabuuan ng parehong indibidwal na laki.

Ang ugnayang ito ay nakuha ng formula ng Normalized Compression Distance: NCD(x, y) = (C(xy) - min(C(x), C(y))) / max(C(x), C(y)), kung saan ang C(x) ay ang compressed size ng text x, at C(xy) ay ang compressed size ng dalawang text concatenated. Ang halaga ng NCD na malapit sa 0 ay nangangahulugan na ang mga teksto ay lubos na magkatulad, habang ang isang halaga na malapit sa 1 ay nangangahulugan na halos walang nilalamang nagbibigay-kaalaman ang mga ito.

Ang dahilan kung bakit kapansin-pansin ang diskarteng ito ay hindi ito nangangailangan ng data ng pagsasanay, walang tokenization, walang mga pag-embed, at walang GPU. Ang compressor mismo ay gumaganap bilang ang natutunan na modelo ng istraktura ng teksto. Ang pananaliksik na inilathala sa mga papel tulad ng "Low-Resource Text Classification: A Parameter-Free Classification Method with Compressors" (2023) ay nagpakita na ang NCD na nakabatay sa gzip ay nakipag-agawan sa BERT sa ilang partikular na benchmark, na nagdudulot ng panibagong interes sa diskarte.

Bakit Isang Game-Changer ang Zstandard Module ng Python 3.14 para sa NCD?

Bago ang Python 3.14, ang paggamit ng Zstandard ay kinakailangang i-install ang third-party na python-zstandard package. Ang bagong compression.zstd module, na ipinakilala sa pamamagitan ng PEP 784, ay direktang ipinapadala kasama ng CPython. Nangangahulugan ito ng zero dependency na overhead at isang garantisadong, stable na API na sinusuportahan ng battle-tested na libzstd ng Meta. Para sa partikular na mga gawain sa pag-uuri, nag-aalok ang Zstandard ng ilang mga pakinabang kaysa sa gzip o bzip2:

  • Bilis: Ang Zstandard ay nagko-compress ng 3-5x na mas mabilis kaysa sa gzip sa mga maihahambing na ratio, na ginagawang mabisa ang pag-uuri ng batch sa libu-libong mga dokumento sa loob ng ilang segundo sa halip na mga minuto
  • Mga nababagay na antas ng compression: Hinahayaan ka ng mga Antas 1 hanggang 22 na i-trade ang bilis para sa ratio, na nagbibigay-daan sa iyong i-calibrate ang katumpakan ng NCD laban sa mga kinakailangan sa throughput
  • Suporta sa diksyunaryo: Ang mga pre-trained na Zstandard na diksyunaryo ay maaaring makabuluhang mapabuti ang compression ng maliliit na text (sa ilalim ng 4KB), na eksaktong hanay ng laki ng dokumento kung saan ang katumpakan ng NCD ang pinakamahalaga
  • Streaming API: Sinusuportahan ng module ang incremental compression, na nagpapagana sa mga pipeline ng pag-uuri na nagpoproseso ng mga text nang hindi nilo-load ang buong corpora sa memorya
  • Karaniwang katatagan ng library: Walang mga salungatan sa bersyon, walang panganib sa supply chain — mula sa compression import zstd gumagana sa bawat pag-install ng Python 3.14+

Mahalagang insight: Pinakamahusay na gumagana ang compression-based na pag-uuri kapag kailangan mo ng mabilis, walang dependency na baseline na pinangangasiwaan ang multilingguwal na text nang natively. Dahil gumagana ang mga compressor sa mga raw byte sa halip na mga token na tukoy sa wika, inuuri nila ang mga dokumentong Chinese, Arabic, o mixed-language na kasing-epektibo ng Ingles — walang kinakailangang modelo ng wika.

Ano ang Mukha ng Praktikal na Pagpapatupad?

Ang isang minimal na NCD classifier sa Python 3.14 ay umaangkop sa wala pang 30 linya. I-encode mo ang bawat reference na text (isa sa bawat kategorya), pagkatapos para sa bawat bagong dokumento, kalkulahin ang NCD laban sa bawat reference at italaga ang kategorya na may pinakamababang distansya. Narito ang pangunahing lohika:

Una, i-import ang module gamit ang mula sa compression import zstd. Tukuyin ang isang function na tumatanggap ng dalawang byte string, i-compress ang bawat isa, i-compress ang kanilang concatenation, at ibinabalik ang NCD score. Pagkatapos ay bumuo ng isang diksyunaryo sa pagmamapa ng mga label ng kategorya sa mga kinatawan ng sample na teksto. Para sa bawat papasok na dokumento, ulitin ang mga kategorya, kalkulahin ang NCD, at piliin ang minimum.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Sa mga benchmark laban sa dataset ng AG News (four-class na pag-uuri ng balita), ang diskarteng ito gamit ang Zstandard sa antas ng compression 3 ay nakakamit ng humigit-kumulang 62-65% na katumpakan — walang hakbang sa pagsasanay, walang pag-download ng modelo, at bilis ng pag-uuri na humigit-kumulang 8,000 dokumento bawat segundo sa isang core ng CPU. Ang pagtaas ng antas ng compression sa 10 ay nagtutulak sa katumpakan sa humigit-kumulang 68% sa halaga ng pagbabawas ng throughput sa humigit-kumulang 2,500 na mga dokumento bawat segundo. Ang mga numerong ito ay hindi tumutugma sa mga fine-tune na transformer, ngunit nagbibigay ang mga ito ng matibay na baseline para sa prototyping, data labelling triage, o mga kapaligiran kung saan ang pag-install ng ML dependencies ay hindi praktikal.

Paano Inihahambing ang NCD sa Tradisyunal na Klasipikasyon ng ML?

Ang tapat na sagot ay ang NCD ay hindi kapalit ng mga transformer-based na classifier sa mga high-stakes na production system. Ang mga modelo tulad ng BERT o GPT-based classifiers ay nakakakuha ng 94%+ katumpakan sa mga karaniwang benchmark. Gayunpaman, ang NCD na may Zstandard ay sumasakop sa isang natatanging angkop na lugar. Napakahusay nito sa mga cold-start na sitwasyon kung saan wala ka pang 50 may label na halimbawa sa bawat klase — isang sitwasyon kung saan kahit na ang mga pinong modelo ay nahihirapan. Nangangailangan ito ng zero na oras ng pagsasanay, pinangangasiwaan ang anumang wika o pag-encode nang walang pagbabago, at ganap na tumatakbo sa CPU na may pare-parehong memorya.

Para sa mga negosyong namamahala ng malalaking volume ng papasok na content — mga ticket sa suporta, mga pagbanggit sa social media, mga review ng produkto — ang isang Zstandard NCD classifier ay maaaring magsilbi bilang isang first-pass router na kinategorya ang mga dokumento sa real time bago pinuhin ng mga mas mahal na modelo ang mga resulta. Ang dalawang-yugtong pipeline na ito ay makabuluhang binabawasan ang mga gastos sa hinuha habang pinapanatili ang pangkalahatang katumpakan. Ang mga platform na nagpoproseso ng content na binuo ng user sa sukat, tulad ng 207-module na OS ng negosyo ng Mewayz na ginagamit ng mahigit 138,000 na negosyante, nakikinabang mula sa magaan na klasipikasyon upang iruta ang mga mensahe, tag ng content, at i-personalize ang mga karanasan ng user nang walang mabigat na imprastraktura.

Ano ang Mga Limitasyon at Pinakamahuhusay na Kasanayan?

Ang pag-uuri na nakabatay sa compression ay may alam na mga limitasyon na dapat mong isaalang-alang. Ang mga maiikling text (sa ilalim ng 100 bytes) ay gumagawa ng hindi mapagkakatiwalaang mga marka ng NCD dahil ang compressor ay walang sapat na data upang bumuo ng mga makabuluhang pattern. Ang pamamaraan ay sensitibo din sa pagpili ng mga sangguniang teksto — ang mga hindi magandang napiling kinatawan ay nagpapababa ng katumpakan nang husto. At dahil ang NCD ay sukatan ng distansya sa halip na isang probabilistikong modelo, hindi ito natural na gumagawa ng mga marka ng kumpiyansa.

Upang masulit ang diskarteng ito: gumamit ng mga reference na text na hindi bababa sa 500 byte bawat kategorya, mag-eksperimento sa pagsasama-sama ng maraming halimbawa sa bawat klase (2-3 kinatawan ng mga dokumentong pinagsama-samang nagbubunga ng mas mahusay na compression na mga diksyunaryo), gawing normal ang text casing at whitespace bago ang compression, at benchmark sa Zstandard na compression level 3, 6, at speed-10. Para sa maliit na pag-uuri ng teksto, paunang sanayin ang isang Zstandard na diksyunaryo sa iyong domain corpus — ang nag-iisang hakbang na ito ay maaaring mapabuti ang katumpakan ng 8-12 porsyentong puntos sa mga maiikling dokumento.

Mga Madalas Itanong

Gumagana ba ang pag-uuri na nakabatay sa compression para sa pagsusuri ng damdamin?

Maaari, ngunit may mga babala. Ang pagsusuri sa sentimento ay nangangailangan ng pag-detect ng mga banayad na pagkakaiba sa tono sa loob ng mga tekstong magkatulad sa istruktura. Mas mahusay na gumagana ang NCD para sa pag-uuri ng paksa kung saan ang mga dokumento sa iba't ibang kategorya ay gumagamit ng mga natatanging bokabularyo. Para sa sentimyento, ang katumpakan ay karaniwang napupunta sa humigit-kumulang 55-60% — mas mahusay kaysa random, ngunit hindi handa sa produksyon sa sarili nitong. Ang pagsasama-sama ng mga feature ng NCD sa isang magaan na modelo ng logistic regression ay lubos na nagpapabuti sa mga resulta.

Maaari ko bang gamitin ang compression.zstd module sa mga bersyon ng Python bago ang 3.14?

Hindi. Ang compression.zstd module ay bago sa Python 3.14. Para sa mga naunang bersyon, i-install ang python-zstandard package mula sa PyPI, na nagbibigay ng katumbas na compress() at decompress() function. Ang lohika ng NCD ay nananatiling magkapareho — tanging ang pahayag ng pag-import ang nagbabago. Sa sandaling mag-upgrade ka sa 3.14, maaari mong ganap na i-drop ang third-party dependency.

Paano gumaganap ang Zstandard NCD kumpara sa TF-IDF na may cosine similarity?

Sa multi-class na pag-uuri ng paksa na may mga balanseng dataset, ang TF-IDF at cosine na pagkakatulad ay karaniwang nakakakuha ng 75-82% katumpakan kumpara sa 62-68% ng Zstandard NCD. Gayunpaman, ang TF-IDF ay nangangailangan ng isang angkop na vectoriser, isang tinukoy na bokabularyo, at mga listahan ng stopword na tukoy sa wika. Ang Zstandard NCD ay hindi nangangailangan ng alinman sa preprocessing na ito, gumagana sa iba't ibang wika sa labas ng kahon, at inuuri ang mga bagong dokumento sa patuloy na oras anuman ang laki ng bokabularyo. Para sa mabilis na prototyping o mga multilingual na kapaligiran, ang NCD ay kadalasang mas mabilis na landas patungo sa isang gumaganang sistema.

Bumubuo ka man ng mga automated na pipeline ng content, pagruruta ng mga mensahe ng customer, o prototyping classification logic para sa iyong digital na negosyo, ang built-in na Zstandard na suporta ng Python 3.14 ay ginagawang mas naa-access ang compression-based na NCD kaysa dati. Kung naghahanap ka ng all-in-one na platform para pamahalaan ang content ng iyong negosyo, mga produkto, mga kurso, at mga pakikipag-ugnayan ng customer, simulan ang pagbuo sa Mewayz ngayon at gamitin ang mga diskarteng ito sa iyong buong operasyon.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime