Hacker News

Klasyfikacja tekstu za pomocą modułu ZSTD w Pythonie 3.14

Klasyfikacja tekstu za pomocą modułu ZSTD w Pythonie 3.14 Ta wszechstronna analiza tekstu umożliwia szczegółowe zbadanie jego podstawowego oprogramowania — Mewayz Business OS.

4 min. przeczytaj

Mewayz Team

Editorial Team

Hacker News

Teraz mam cały kontekst, jakiego potrzebuję. Pozwólcie, że napiszę post na blogu.

Klasyfikacja tekstu za pomocą modułu ZSTD w Pythonie 3.14

Python 3.14 wprowadza moduł kompresji.zstd do biblioteki standardowej i udostępnia zaskakująco potężne podejście do klasyfikacji tekstu bez modeli uczenia maszynowego. Mierząc, jak dobrze kompresor może ścisnąć ze sobą dwa teksty, możesz określić ich podobieństwo — technika zwana Znormalizowaną odległością kompresji (NCD) — a teraz Zstandard sprawia, że ​​jest ona wystarczająco szybka do obciążeń produkcyjnych.

Jak faktycznie działa klasyfikacja tekstu oparta na kompresji?

Podstawowa idea klasyfikacji opartej na kompresji jest zakorzeniona w teorii informacji. Kiedy algorytm kompresji, taki jak Zstandard, napotyka blok tekstu, tworzy wewnętrzny słownik wzorców. Jeśli dwa teksty mają podobne słownictwo, składnię i strukturę, kompresja ich razem daje wynik tylko nieznacznie większy niż kompresja samego większego tekstu. Jeśli nie są ze sobą powiązane, połączony rozmiar skompresowany zbliża się do sumy obu indywidualnych rozmiarów.

Zależność tę obrazuje wzór na znormalizowaną odległość kompresji: NCD(x, y) = (C(xy) - min(C(x), C(y))) / max(C(x), C(y)), gdzie C(x) to skompresowany rozmiar tekstu x, a C(xy) to skompresowany rozmiar dwóch połączonych tekstów. Wartość NCD bliska 0 oznacza, że ​​teksty są bardzo podobne, natomiast wartość bliska 1 oznacza, że ​​prawie nie zawierają one żadnej treści informacyjnej.

To, co czyni tę technikę niezwykłą, to fakt, że nie wymaga ona danych szkoleniowych, tokenizacji, osadzania ani procesora graficznego. Sam kompresor działa jak wyuczony model struktury tekstu. Badania opublikowane w artykułach takich jak „Low-Resource Text Classification: A Parameter-Free Classification Method with Compressors” (2023) wykazały, że NCD oparta na gzip konkuruje z BERT w niektórych testach porównawczych, wywołując ponowne zainteresowanie tym podejściem.

Dlaczego moduł Zstandard w Pythonie 3.14 zmienia zasady gry w przypadku chorób niezakaźnych?

Przed wersją Python 3.14 używanie Zstandard wymagało zainstalowania pakietu python-zstandard innej firmy. Nowy moduł kompresji.zstd, wprowadzony za pośrednictwem PEP 784, jest dostarczany bezpośrednio z CPythonem. Oznacza to zerową zależność i gwarantowane, stabilne API wspierane przez sprawdzoną w boju bibliotekę Meta libzstd. Specjalnie do zadań klasyfikacyjnych Zstandard oferuje kilka zalet w porównaniu z gzip lub bzip2:

💡 CZY WIESZ?

Mewayz replaces 8+ business tools in one platform

CRM · Fakturowanie · HR · Projekty · Rezerwacje · eCommerce · POS · Analityka. Darmowy plan dostępny na zawsze.

Zacznij za darmo →

Szybkość: Zstandard kompresuje 3–5 razy szybciej niż gzip przy porównywalnych współczynnikach, dzięki czemu klasyfikacja partii tysięcy dokumentów jest możliwa w ciągu kilku sekund, a nie minut

Regulowane poziomy kompresji: Poziomy od 1 do 22 umożliwiają zamianę prędkości na współczynnik, co pozwala skalibrować precyzję NCD pod kątem wymagań przepustowości

Obsługa słowników: Wstępnie wyszkolone słowniki Zstandard mogą radykalnie poprawić kompresję małych tekstów (poniżej 4 KB), czyli dokładnie zakresu rozmiaru dokumentu, w którym dokładność NCD ma największe znaczenie

Streaming API: moduł obsługuje kompresję przyrostową, umożliwiając potoki klasyfikacyjne przetwarzające teksty bez ładowania całych korpusów do pamięci

Stabilność biblioteki standardowej: brak konfliktów wersji, brak ryzyka w łańcuchu dostaw — dzięki importowi kompresji zstd działa na każdej instalacji Pythona 3.14+

Kluczowa obserwacja: Klasyfikacja oparta na kompresji sprawdza się najlepiej, gdy potrzebujesz szybkiej, wolnej od zależności linii bazowej, która natywnie obsługuje tekst wielojęzyczny. Ponieważ kompresory działają na surowych bajtach, a nie na tokenach specyficznych dla języka, klasyfikują dokumenty w języku chińskim, arabskim i mieszanym równie skutecznie jak angielski — nie jest wymagany żaden model języka.

Jak wygląda praktyczne wdrożenie?

Minimalny klasyfikator NCD w Pythonie 3.14 mieści się w mniej niż 30 liniach. Kodujesz każdy tekst odniesienia (po jednym na kategorię), następnie dla każdego nowego dokumentu obliczasz NCD w odniesieniu do każdego odniesienia i przypisujesz kategorię z najniższą odległością. Oto podstawowa logika:

Najpierw zaimportuj moduł za pomocą importu kompresji zstd. Zdefiniuj funkcję, która akceptuje ciągi dwóch bajtów, kompresuje każdy z osobna, kompresuje ich konkatenację i zwraca wynik NCD. Następnie b

Streamline Your Business with Mewayz

Mewayz brings 207 business modules into one platform — CRM, invoicing, project management, and more. Join 138,000+ users who simplified their workflow.

Start Free Today →

Wypróbuj Mewayz za Darmo

Kompleksowa platforma dla CRM, fakturowania, projektów, HR i więcej. Karta kredytowa nie jest wymagana.

Zacznij dziś zarządzać swoją firmą mądrzej.

Dołącz do 30,000+ firm. Plan darmowy na zawsze · Bez karty kredytowej.

Uznałeś to za przydatne? Udostępnij to.

Gotowy, aby wprowadzić to w życie?

Dołącz do 30,000+ firm korzystających z Mewayz. Darmowy plan forever — karta kredytowa nie jest wymagana.

Rozpocznij darmowy okres próbny →

Gotowy, by podjąć działanie?

Rozpocznij swój darmowy okres próbny Mewayz dziś

Platforma biznesowa wszystko w jednym. Karta kredytowa nie jest wymagana.

Zacznij za darmo →

14-dniowy darmowy okres próbny · Bez karty kredytowej · Anuluj w dowolnym momencie