Hacker News

การจำแนกข้อความด้วยโมดูล ZSTD ของ Python 3.14

การจำแนกข้อความด้วยโมดูล ZSTD ของ Python 3.14 การวิเคราะห์ข้อความที่ครอบคลุมนี้นำเสนอการตรวจสอบโดยละเอียดเกี่ยวกับแกนหลักร่วม — Mewayz Business OS

1 นาทีอ่าน

Mewayz Team

Editorial Team

Hacker News

ตอนนี้ฉันมีบริบททั้งหมดที่ต้องการแล้ว ขออนุญาตเขียนบล็อกนะครับ

การจัดประเภทข้อความด้วยโมดูล ZSTD ของ Python 3.14

Python 3.14 เปิดตัวโมดูล Compression.zstd ในไลบรารีมาตรฐาน และปลดล็อกวิธีการจัดหมวดหมู่ข้อความที่ทรงพลังอย่างน่าประหลาดใจโดยไม่ต้องใช้โมเดลการเรียนรู้ของเครื่อง ด้วยการวัดว่าคอมเพรสเซอร์สามารถบีบข้อความสองข้อความเข้าด้วยกันได้ดีเพียงใด คุณสามารถระบุความคล้ายคลึงกัน — เทคนิคที่เรียกว่า Normalized Compression Distance (NCD) — และตอนนี้ Zstandard ทำให้เร็วเพียงพอสำหรับปริมาณงานการผลิต

การจัดประเภทข้อความตามการบีบอัดทำงานอย่างไรจริง ๆ ?

แนวคิดหลักเบื้องหลังการจำแนกประเภทตามการบีบอัดมีรากฐานมาจากทฤษฎีสารสนเทศ เมื่ออัลกอริธึมการบีบอัดเช่น Zstandard พบบล็อกข้อความ มันจะสร้างพจนานุกรมรูปแบบภายในขึ้นมา หากข้อความสองข้อความใช้คำศัพท์ ไวยากรณ์ และโครงสร้างที่คล้ายคลึงกัน การบีบอัดข้อความทั้งสองเข้าด้วยกันจะให้ผลลัพธ์ที่ใหญ่กว่าการบีบอัดข้อความที่ใหญ่กว่าเพียงอย่างเดียวเพียงเล็กน้อยเท่านั้น หากไม่เกี่ยวข้องกัน ขนาดที่บีบอัดที่ต่อกันจะเข้าใกล้ผลรวมของทั้งสองขนาด

ความสัมพันธ์นี้บันทึกโดยสูตรระยะการบีบอัดปกติ: NCD(x, y) = (C(xy) - min(C(x), C(y))) / max(C(x), C(y)) โดยที่ C(x) คือขนาดที่บีบอัดของข้อความ x และ C(xy) คือขนาดที่บีบอัดของข้อความทั้งสองที่ต่อกัน ค่า NCD ใกล้ 0 หมายความว่าข้อความมีความคล้ายคลึงกันมาก ในขณะที่ค่าใกล้ 1 หมายความว่าแทบไม่มีการแชร์เนื้อหาที่ให้ข้อมูลเลย

สิ่งที่ทำให้เทคนิคนี้โดดเด่นก็คือ ไม่ต้องใช้ข้อมูลการฝึกอบรม ไม่ต้องใช้โทเค็น ไม่ต้องฝัง และไม่มี GPU ตัวคอมเพรสเซอร์ทำหน้าที่เป็นแบบจำลองการเรียนรู้ของโครงสร้างของข้อความ งานวิจัยที่ตีพิมพ์ในเอกสาร เช่น "การจำแนกข้อความที่ใช้ทรัพยากรต่ำ: วิธีการจำแนกประเภทแบบไร้พารามิเตอร์ด้วยคอมเพรสเซอร์" (2023) แสดงให้เห็นว่า NCD ที่ใช้ gzip ทัดเทียมกับ BERT ในเกณฑ์มาตรฐานบางประการ ซึ่งจุดประกายความสนใจในแนวทางนี้อีกครั้ง

เหตุใดโมดูล Zstandard ของ Python 3.14 จึงเป็นตัวเปลี่ยนเกมสำหรับ NCD

ก่อน Python 3.14 การใช้ Zstandard จำเป็นต้องติดตั้งแพ็คเกจ python-zstandard ของบุคคลที่สาม โมดูล Compression.zstd ใหม่ ซึ่งเปิดตัวผ่าน PEP 784 จัดส่งโดยตรงกับ CPython ซึ่งหมายความว่าค่าใช้จ่ายในการพึ่งพาเป็นศูนย์และ API ที่รับประกันและเสถียรซึ่งสนับสนุนโดย libzstd ที่ผ่านการทดสอบการต่อสู้ของ Meta สำหรับงานจำแนกประเภทโดยเฉพาะ Zstandard มีข้อดีมากกว่า gzip หรือ bzip2 หลายประการ:

💡 คุณรู้หรือไม่?

Mewayz ทดแทนเครื่องมือธุรกิจ 8+ รายการในแพลตฟอร์มเดียว

CRM · การออกใบแจ้งหนี้ · HR · โปรเจกต์ · การจอง · อีคอมเมิร์ซ · POS · การวิเคราะห์ แผนฟรีใช้ได้ตลอดไป

เริ่มฟรี →

ความเร็ว: Zstandard บีบอัดได้เร็วกว่า gzip ถึง 3-5 เท่าในอัตราส่วนที่เทียบเคียงได้ ทำให้การจำแนกกลุ่มเอกสารนับพันรายการทำได้ภายในเวลาไม่กี่วินาที แทนที่จะเป็นนาที

ระดับการบีบอัดที่ปรับได้: ระดับ 1 ถึง 22 ช่วยให้คุณสามารถแลกเปลี่ยนความเร็วตามอัตราส่วน ช่วยให้คุณสามารถปรับเทียบความแม่นยำ NCD กับข้อกำหนดปริมาณงาน

การสนับสนุนพจนานุกรม: พจนานุกรม Zstandard ที่ได้รับการฝึกอบรมล่วงหน้าสามารถปรับปรุงการบีบอัดข้อความขนาดเล็กได้อย่างมาก (ต่ำกว่า 4KB) ซึ่งเป็นช่วงขนาดเอกสารที่ความแม่นยำของ NCD มีความสำคัญที่สุด

API การสตรีม: โมดูลรองรับการบีบอัดส่วนเพิ่ม ทำให้สามารถจัดหมวดหมู่ไปป์ไลน์ที่ประมวลผลข้อความโดยไม่ต้องโหลดเนื้อหาทั้งหมดลงในหน่วยความจำ

ความเสถียรของไลบรารีมาตรฐาน: ไม่มีเวอร์ชันที่ขัดแย้งกัน ไม่มีความเสี่ยงในห่วงโซ่อุปทาน — จากการนำเข้าการบีบอัด zstd ทำงานได้กับทุกการติดตั้ง Python 3.14+

ข้อมูลเชิงลึกที่สำคัญ: การจัดประเภทตามการบีบอัดจะทำงานได้ดีที่สุดเมื่อคุณต้องการบรรทัดฐานที่รวดเร็วและไม่มีการพึ่งพาซึ่งจัดการข้อความหลายภาษาโดยกำเนิด เนื่องจากคอมเพรสเซอร์ทำงานบนไบต์ดิบมากกว่าโทเค็นเฉพาะภาษา จึงแยกประเภทเอกสารภาษาจีน อาหรับ หรือภาษาผสมได้อย่างมีประสิทธิภาพพอๆ กับภาษาอังกฤษ โดยไม่จำเป็นต้องใช้โมเดลภาษา

การนำไปปฏิบัติจริงมีลักษณะอย่างไร?

ตัวแยกประเภท NCD ขั้นต่ำใน Python 3.14 มีขนาดไม่เกิน 30 บรรทัด คุณเข้ารหัสข้อความอ้างอิงแต่ละข้อความ (หนึ่งข้อความต่อหมวดหมู่) จากนั้นสำหรับเอกสารใหม่แต่ละฉบับ ให้คำนวณ NCD เทียบกับการอ้างอิงทุกรายการ และกำหนดหมวดหมู่ด้วยระยะห่างต่ำสุด นี่คือตรรกะหลัก:

ขั้นแรก ให้นำเข้าโมดูลด้วย from Compression import zstd กำหนดฟังก์ชันที่ยอมรับสตริงไบต์ 2 ชุด บีบอัดแต่ละรายการ บีบอัดการต่อข้อมูล และส่งกลับคะแนน NCD แล้วข

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 →

ลองใช้ Mewayz ฟรี

แพลตฟอร์มแบบออล-อิน-วันสำหรับ CRM, การออกใบแจ้งหนี้, โครงการ, HR และอื่นๆ ไม่ต้องใช้บัตรเครดิต

เริ่มจัดการธุรกิจของคุณอย่างชาญฉลาดวันนี้

เข้าร่วมธุรกิจ 30,000+ ราย แผนฟรีตลอดไป · ไม่ต้องใช้บัตรเครดิต

พบว่าสิ่งนี้มีประโยชน์หรือไม่? แบ่งปันมัน

พร้อมนำไปปฏิบัติแล้วหรือยัง?

เข้าร่วมธุรกิจ 30,000+ รายที่ใช้ Mewayz แผนฟรีตลอดไป — ไม่ต้องใช้บัตรเครดิต

เริ่มต้นทดลองใช้ฟรี →

พร้อมที่จะลงมือทำหรือยัง?

เริ่มต้นทดลองใช้ Mewayz ฟรีวันนี้

แพลตฟอร์มธุรกิจแบบครบวงจร ไม่ต้องใช้บัตรเครดิต

เริ่มฟรี →

ทดลองใช้ฟรี 14 วัน · ไม่ต้องใช้บัตรเครดิต · ยกเลิกได้ทุกเมื่อ