بحث تقني يستكشف إمكانية استخدام خوارزمية gzip كنموذج لغوي
يستكشف المقال إمكانية جعل خوارزمية gzip تواصل النصوص كنموذج لغوي، من دون شبكة عصبية أو معاملات متعلَّمة. تُزوَّد الخوارزمية بمدونة نصية وسطر بداية، ثم تبحث عن امتدادات بايتات تضغطها بأقل حجم؛ وقد أنتجت نصًا غير متماسك تمامًا، لكنه أظهر معرفة واضحة بالمادة التي دُرّبت عليها. ولتحسين النتائج، يستخدم البرنامج بحث الحزمة ويفحص مقاطع كاملة قبل اختيار الامتداد التالي، مع الاعتماد على نافذة gzip المنزلقة بحجم ٣٢ كيلوبايت. الكود مكتوب ببايثون باستخدام مكتبة zlib، ومتاح على GitHub للتجربة.
الحقائق الأساسية
تعتمد الخوارزمية على DEFLATE لمطابقة البايتات الجديدة مع نص حديث داخل نافذة منزلقة حجمها ٣٢ كيلوبايت.
«gzip uses DEFLATE, which compresses the next bytes by finding matches against the recent text in a 32 KiB sliding window.»
عرض المصدر ←يحتفظ البرنامج بأفضل الامتدادات القابلة للضغط، ثم يوسّعها بايتًا بعد بايت قبل تقليص القائمة مجددًا.
«Keep the beam_widthmost-compressible partial continuations.»
عرض المصدر ←التنفيذ ملف واحد من بايثون القياسي ويستخدم zlib بدل تشغيل برنامج gzip منفصل.
«The code actually uses zlib instead of spawning a gzip process, but the name GziPT was too good.»
عرض المصدر ←
المصادر
شفت معلومة تحتاج تصحيح؟ بلّغنا ونتحقق ونصحّح — سياسة التصحيح
صحّح هذا الخبر