تحويل EPUB إلى نص: من رفّ كتب إلى مادة تستطيع الحوسبة عليها
الكتب هي أجود ما لدينا من نثر مطوّل مُحرَّر. كتابة احترافية، وتدقيق احترافي، وآلاف الكلمات بصوت متّسق لا تتخللها قوائم تنقّل ولا لافتات ملفات تعريف الارتباط ولا أقسام تعليقات. وكمادة خام لأي عمل لغوي الطابع — تضمينات، تحليل أسلوبي، استرجاع، تدريب مُصنِّف على تمييز النبرة — يصعب أن تجد ما يضاهيها.
المشكلة أنها قابعة داخل حزمة مضغوطة من ملفات XHTML. تحويل EPUB إلى نص يخرجها: تيار نثري واحد متصل، بلا وسوم، ولا محارف ترميز، ولا شيء يجب تعليم المُقطِّع لديك أن يتجاهله. ارفع الملف أعلاه وسيعود في ثوانٍ. مجانًا، بلا تسجيل، بحد 50 MB، ولا يُخزَّن شيء.
لماذا النص المسطّح هو الشكل الصحيح لهذا العمل
النص العادي هنا ليس الخيار الاقتصادي. فلمعظم ما قد تفعله بكتاب على نطاق واسع، هو الصيغة التي تتوقعها الأدوات فعلًا:
- التضمينات والاسترجاع الدلالي. قطّع النثر، وولّد متجهًا لكل مقطع، واسترجع بالتشابه. علامات التجزئة والنجوم في Markdown تحتل مواضع tokens ولا تضيف شيئًا إلى المعنى — إنها تخفف المتجه. الفقرات النظيفة تُسترجع بدقة أعلى، وكل مكتبة تقطيع على وجه الأرض تأخذ نصًا افتراضيًا.
- قياس السهولة والأسلوبية الإحصائية. مقياس Flesch-Kincaid، ومتوسط طول الجملة، ونسبة الأنواع إلى الوحدات، وثراء المفردات، وإيقاع الترقيم. هذه مقاييس على مستوى الكلمة والجملة، ورموز التنسيق تفسدها جميعًا.
- فهرسة البحث عبر مكتبة كاملة.
tsvectorفي Postgres، وSQLite FTS5، وElasticsearch، أو مجرد مجلد تشغّل عليهgrep. كلها تريد نصًا خامًا في حقل. خمسون كتابًا محوَّلًا تصنع محرك بحث شخصيًا سريعًا حقًا. - لسانيات المدونات النصية ومسارات NLP. الكشّافات السياقية، وتحليل المتلازمات اللفظية، واستخراج الكيانات المسماة، ونمذجة المواضيع. spaCy وNLTK تأخذان سلاسل نصية لا ترميزًا.
- تحويل النص إلى كلام وإتاحة الوصول. محرك TTS الذي تسلّمه Markdown سيقرأ لك بكل رحابة صدر «هاش هاش الفصل الرابع» بصوت عالٍ.
- مقارنة الطبعات. طبعتان من العنوان نفسه، مستخرجتان نصًا، تمرّان عبر مقارنة على مستوى الكلمة — هكذا تكتشف ما الذي غيّرته الطبعة الثانية فعلًا.
ما الذي تتخلى عنه بالتسطيح
حدود الفصول. هذه هي الكلفة الحقيقية، وهي أفدح في الكتب منها في معظم أنواع المستندات، لأن الكتاب طويل بما يكفي ليصبح سؤال «أين أنا الآن» مهمًّا.
في ملف EPUB المصدر، كل فصل ملف XHTML مستقل بوسم عنوان ومدخل في مستند التنقّل. بعد التسطيح يصير عنوان الفصل سطرًا قصيرًا من النص فوق سطر طويل من النص، ولا شيء يميّزه. اطلب من نموذج أن «يلخّص الفصل السابع» وسيضطر إلى استنتاج أين يبدأ السابع من الصياغة وحدها. غالبًا ينجح. وأحيانًا يبدأ متأخرًا فقرة ويلخّص بهدوء الشيء الخطأ.
الاقتباسات الكتلية أيضًا تكفّ عن التميّز بصريًا عن السرد، وهذا مهم في الكتب غير الروائية حيث تجلس المادة المقتبسة وحجة المؤلف نفسه جنبًا إلى جنب. إن كان شيء من هذا أساسيًا لما تفعله، فخذ تحويل EPUB إلى Markdown بدلًا منه — فهناك تنجو شجرة العناوين وتستطيع تقطيع الملف فصلًا فصلًا بدقة. مبدّل الصيغة أعلى هذه الصفحة ينقلك بينهما ويحمل الملف الذي اخترته، فتُنتج الصيغتين وتقارن دون رفع مرتين.
آثار التنضيد المطبعي التي تستحق التنظيف
الناشرون ينضّدون كما ينبغي، وهذا رائع للقراءة ومزعج قليلًا للحوسبة. حفنة أشياء تظهر بانتظام في نص الكتب المستخرج، وتمريرة واحدة من البحث والاستبدال تعالج معظمها:
- علامات الاقتباس المطبعية. الكتب تستخدم علامات اقتباس مطبعية مثل «» لا
"و'. المقطِّعات تتدبّر أمرها عادة، أما التعبيرات النمطية الساذجة ومطابقة السلاسل فلا — ابحث عن"قال"في رواية وقد لا تحصل على شيء بينما الصفحة مليئة بـ «قال». - الشرطات الطويلة والمتوسطة. كثيرًا ما تأتي بلا مسافات حولها، فتلصق مجزّئات الجُمَل جملتين معًا أحيانًا أو تكسر واحدة في الموضع الخطأ.
- الوصلات المرنة والمسافات غير الفاصلة. غير مرئية على الشاشة، حاضرة في تيار البايتات، ومسؤولة بصمت عن عدّ كلمات لا يطابق أي شيء.
- الحروف المدمجة. «fi» و«fl» تكونان أحيانًا محرفًا مرسومًا واحدًا. تُستخرجان جيدًا في العادة، لكن خطًّا مضمّنًا غير مألوف قد ينتج محارف غريبة في كلمة هنا وهناك.
- الصفحات التمهيدية والختامية. صفحة العنوان، وإشعار حقوق النشر، والإهداء، وكلمات الشكر، و«نبذة عن المؤلف»، وبقايا الفهارس. حشو يظهر في كل كتاب تحوّله، فيصير مفردات شائعة زورًا عبر المجموعة كلها. احذفه إن كنت تعمل على التكرارات.
لا شيء من هذا تقصير من المحوِّل. هذا ما في الملف حقًا، ومعرفة أن تبحث عنه هي معظم المعركة.
حماية DRM، ومن أين تأتي الكتب القابلة للتحويل
الكتاب المشترى من متجر كبير يكون مشفّرًا عادة. ملفات XHTML داخل الحاوية مبعثرة التشفير، وملف
encryption.xml يعلن ذلك، فلا يستطيع أي محوِّل — وهذا منها — قراءة كلمة واحدة منه.
ارفع واحدًا وستحصل على خطأ أو ناتج فارغ. جدير بالمعرفة قبل أن تقضي عشر دقائق تتساءل ما الخطب.
هناك مصادر جيدة كثيرة خالية من DRM بالتصميم. كتالوج Project Gutenberg للملكية العامة هائل ومثالي للعمل على المدونات النصية. وStandard Ebooks تنتج طبعات ملكية عامة منضّدة بعناية وترميزها نظيف على نحو غير معتاد. ومعظم الناشرين التقنيين، ودور النشر القريبة من arXiv، وإصدارات المشاع الإبداعي، وكل ما صدّرته أنت بنفسك — كلها تتحوّل دون اعتراض. تحويل كتب تملكها لدراستك الخاصة استخدام عادي؛ أما إعادة توزيع النص المستخرج من كتاب محمي بحقوق النشر فليست كذلك. وكفى بهذا قولًا.
تطبيق هذا على مكتبة كاملة
تحويل كتاب واحد مهمة ثانيتين. النسخة المثيرة للاهتمام هي تحويل أربعين ومعاملة الناتج كمجموعة بيانات. بضعة أشياء تجعل ذلك يمضي بسلاسة:
- اضغط الدفعة في أرشيف. تحويل ZIP إلى نص يأخذ أرشيفًا ويحوّل كل ملف مدعوم بداخله في تمريرة واحدة، وهذا خير من أربعين رفعة منفصلة. انتبه لسقف 50 MB — ملفات EPUB صغيرة، أما المصوّرة منها فلا.
- طبّع قبل أن تقطّع. قوّم علامات الاقتباس، وانزع الوصلات المرنة، وادمج الأسطر الفارغة المتكررة. افعلها مرة عند الإدخال وسيصير كل ما بعدها في المسار أبسط.
- قطّع عند حدود الفقرات لا عند عدد محارف ثابت. الكتب فيها فقرات حقيقية وهي وحدات دلالية طبيعية. التقسيم الأعمى كل 1,000 محرف يشقّ الجُمَل نصفين وينتج تضمينات لشظايا.
- احتفظ باسم الملف كبيانات وصفية. ما إن يصير كل شيء تيارًا نصيًا واحدًا حتى يبقى العنوان والمؤلف مصدرك الوحيد للنسبة. خزّنهما مع كل مقطع وإلا استرجعت فقرة رائعة ولا فكرة لديك من أي كتاب جاءت.
- تحقق من عدد الـ tokens. العدّاد أسفل الناتج يعطيك الرقم الحقيقي لعنوان بعينه، وهو الفرق بين تخطيط مسار معالجة والتخمين فيه.
EPUB مادة مصدرية أفضل من نسخة PDF
إن وُجد العنوان نفسه بالصيغتين، فإن EPUB يعطيك نصًا أنظف بجهد أقل. ملف PDF ثابت التخطيط: كل سطر مرئي سلسلة محارف مرسومة مستقلة، فتصلك الفقرات مكسورة أسطرًا قصيرة، والكلمات الموصولة بشرطة عبر فواصل الأسطر تبقى موصولة، وترويسة الصفحة ورقمها يهبطان في نثرك كل بضع مئات من الكلمات. تحويل PDF إلى نص يتعامل مع هذا كله، لكنك ستفرك الناتج بعدها.
أما EPUB فقابل لإعادة التدفق. لا صفحات فيه، وبالتالي لا أثاث صفحات، والفقرات فقرات فعلية في الترميز — فتخرج أسطرًا متصلة يستطيع بحث بتعبير نمطي المطابقة عبرها. ولأي عمل يتضمن بحثًا عن عبارة أو تجزئة جُمَل أو تضمينًا، هذا الفرق وحده يستحق الاستبدال.
أسئلة شائعة
كيف أحوّل ملف EPUB إلى نص؟
أفلِت ملف .epub في المحوِّل أعلاه وسيعود نص الكتاب نصًا عاديًا تنزّله بصيغة .txt. مجانًا، بلا تسجيل، بحد 50 MB للملف — أكثر بكثير مما يحتاجه أي كتاب إلكتروني قابل لإعادة التدفق، فـ EPUB هو HTML مضغوط وحتى الكتب الطويلة نادرًا ما تتجاوز بضعة ميغابايتات.
هل يعمل على كتب اشتُريت من Kindle أو Apple Books؟
فقط إذا كانت خالية من DRM. الكتاب المشترى يكون مشفّرًا عادة ومربوطًا بالحساب الذي اشتراه، والملف المشفّر لا نص مقروءًا بداخله يصل إليه أي محوِّل. عناوين الملكية العامة من Project Gutenberg وStandard Ebooks، والكتب التقنية من ناشرين يبيعون ملفات غير مشفّرة، وتصديراتك الخاصة — كلها تتحوّل بشكل طبيعي.
هل تبقى الفصول مفصولة في الناتج؟
حدود الفصول تنجو على هيئة فواصل في التدفق، لكن عناوين الفصول تصل أسطرًا عادية لا شيء يسِمها كعناوين — هذه طبيعة التسطيح إلى نص. إن احتجت لاحقًا إلى التنقّل أو التقطيع بحسب الفصل، فإن تحويل EPUB إلى Markdown يحفظ مستويات العناوين التي تجعل ذلك ممكنًا.
ماذا عن الحواشي السفلية والختامية؟
تمرّ إلى الناتج، مجموعةً عمومًا في نهاية القسم الذي انتمت إليه لا في موضع إشارتها داخل السطر. في النصوص الأكاديمية يعني هذا ظهور سلسلة من متون الحواشي بين الفصول. سهلة التجاوز في القراءة، وجديرة بالمعرفة إن كنت تقطّع الناتج للتضمينات وتتساءل لماذا جاء أحد المقاطع استشهادات كله.
هل أستطيع تغذية كتاب كامل لنموذج لغة كبير بهذه الطريقة؟
تستطيع تحويله في تمريرة واحدة، لكن تحقق من عدد الـ tokens قبل اللصق. رواية من 300 صفحة تبلغ نحو 120,000 token — داخل نافذة سياق من 200 ألف، وفوق ما تقبله واجهة محادثة في رسالة واحدة بمسافة مريحة. العدّاد أسفل الناتج يخبرك بالرقم قبل أن تكتشفه بالطريقة الصعبة.
بقية صندوق الأدوات
EPUB واحدة من ثلاث عشرة صيغة مدعومة. File2Txt يتعامل معها جميعًا من رفعة واحدة. للمخطوطات هناك تحويل Word إلى نص، ولمستندات النص الغني القديمة تحويل RTF إلى نص، وللمقالات المحفوظة تحويل HTML إلى نص. وبياناتك المهيكلة الخاصة تمرّ عبر تحويل CSV إلى نص أو تحويل JSON إلى نص.
وفيما وراء المستندات: حوّل مستودع GitHub إلى نص، أو مشروع GitLab، أو مجلدًا محليًا، واستخدم Web2Txt لسحب الصفحات الحيّة نصًا. وهناك دليل أطول لتجهيز المستندات لنماذج اللغة الكبيرة إن أردت الصورة الأوسع.
Repo2Txt من بناء وصيانة v12hero، مطوّر مستقل يبني تطبيقات أصلية وويب تضع الخصوصية أولًا.