بایگانی دسته: نسکبان

پایان کار فهرست‌گذاری خودکار متون گنجور بر اساس نسکبان

این فرایند هم‌اکنون به پایان رسیده است. در پایان این فرایند هم‌اکنون اشعار گنجور بر اساس ۳۹۵ کتاب PDF در دسترس از طریق نسکبان فهرست‌گذاری شده‌اند.

منابع کاغذی آثار هر سخنور (شامل منابع در دسترس از طریق نسکبان و گنجینهٔ گنجور) نیز ذیل صفحهٔ خود آن سخنور فهرست شده است:

منابع کاغذی حافقظ

سرور نسکبان ارتقا و بهبود پیدا کرده و امیدوارم به زودی بتوانم روی بهبود کارایی جستجو در آن وقت بگذارم. فرایند تطبیق متن کتابهای نسکبان با گنجور هنوز ایده‌آل نیست و جای کار دارد. منتهی وضعیت فعلی هم به لحاظ مستند کردن بخش قابل توجهی از متون گنجور گام بزرگ و مهمی محسوب می‌شود.

فهرست‌گذاری خودکار متون گنجور بر اساس مراجع در دسترس از طریق نسکبان – در جریان …

مجمل (اگر حوصله ندارید پاراگراف‌های بعد را بخوانید): در روزهای اخیر پای خیلی از اشعار گنجور می‌توانید تصاویر مراجع چاپی آنها را مشاهده کنید. اگر لزوماً تصویر معرفی شده به عنوان «منبع کاغذی گنجور» با متن شعر همخوانی ندارد نگران نباشید این یک فرایند خودکار در حال تکمیل است که امید است در صورت فراهم شدن پایداری حداقلی در ارتباط اینترنتی داخل ایران زودتر به ثمر برسد و نتایج دقیق‌تر شود.

تصاویر منابع کاغذی گنجور در نسکبان

حدیث مفصّل: یکی از مهم‌ترین اهداف پشت ایجاد نسکبان لینک کردن متون گنجور با منابع کاغذی آن بوده است. فرایندی که با توجه به حجم و تنوع بالای متون گنجور انجام آن به شکل دستی محتاج سال‌ها کار نیروی انسانی است. این کار از این جهت لازم و ضروری است که:

  • بتوانیم با مراجعه به متن چاپی متوجه شویم کلمات مشکوک به ایراد تایپی در گنجور آیا واقعاً ایراد تایپی هستند یا با توجه به مرجع چاپی درستند.
  • از جانب دیگر برای پژوهشگران امکان این را فراهم می‌آوریم که بتوانند در آثارشان به صفحات کاغذی کتاب‌ها ارجاع بدهند.
  • در کل هم، وجود تصویر مرجع چاپی می‌تواند شائبه‌های دستکاری متن در گنجور را کاهش دهد و اعتمادپذیری آن را بالا ببرد.

خوشبختانه این که متن کتاب‌های نسکبان OCR شده و با توجه به دقت نه چندان بالا اما معقول این فرایند به طور حدودی می‌توانیم از متن معادل آنها در گنجور مطلع شویم راهکاری را برای فهرست‌گذاری خودکار متن گنجور بر اساس کتاب‌های نسکبان در اختیار ما می‌گذارد.

بر این اساس، با تعیین این که مرجع احتمالی متن هر بخش گنجور کدام کتاب نسکبان است می‌توانیم با مقایسهٔ الگوریتمی متن گنجور با متن صفحات کتاب جای آن را در کتاب پیدا کنیم و آنها را با هم لینک کنیم.

الگوریتمی که برای انجام این کار طراحی شده به این صورت است که برای هر شعر از آغاز کتاب تا پایان آن صفحه به صفحه به اندازه‌ای معادل متن شعر یا بخش متن منثور در گنجور متن برمی‌داریم (به طور معمول برای اشعار کوتاه یک صفحه و برای اشعار طولانی مثل قصاید چند صفحه انتخاب می‌شود). سپس آمار می‌گیریم که چند کلمه از متن گنجور در متن نسکبان صفحات انتخاب شده یافت می‌شوند و نسبتِ تعداد کلمات موجود به کل کلمات را پیدا می‌کنیم. آستانه‌ای برای تعیین این که متن گنجور و نسکبان صفحات انتخاب شده مطابقت دارند در نظر می‌گیریم. مثلاً فرض می‌کنیم اگر ۷۰ درصد کلمات متن گنجور یافت شد این صفحات با هم مطابقت دارند. سپس مقایسه را تا پایان متن کتاب ادامه می‌دهیم تا اگر صفحه‌ای در کتاب نسکبان با درصد مطابقت بالاتر پیدا شد آن را به عنوان صفحهٔ معادل انتخاب کنیم. به این ترتیب در نهایت در صورت پیدا کردن صفحاتی با مطابقت بالاتر از آستانهٔ تعیین شده، صفحهٔ دارای بالاترین مطابقت را به عنوان صفحهٔ معادل متن گنجور انتخاب می‌کنیم. در نهایت با توجه به تأثیر صفحات خالی یا صفحات عنوان که می‌تواند باعث شود صفحه‌ای که در واقع با شعر گنجور مطابق است صفحه یا یکی از صفحات بعدی باشد و همینطور این که تک‌بیت‌ها و رباعی‌ها و اشعار کوتاه به لحاظ تعداد کلمات کمشان ممکن است با صفحات نامرتبط حاوی تمام کلماتشان تطبیق کنند فرایندهای الگوریتمی ساده‌ای برای حذف موارد نامرتبط نیز آماده کرده‌ایم تا تعداد موارد نامرتبط را کم کند.

الگورریتم مشابه‌یابی

در انتخاب این روش آزمایش و خطاهایی انجام شده، مثلاً ابتدا مقایسهٔ ترتیبی اشعار بخش و صفحات کتاب را امتحان کردیم که اگر چه برای بعضی از کتابها با سرعت خیلی بیشتری به نتیجه می‌رسید، برای بخشهایی از گنجور که کتاب مرجع ترتیب الفبایی نداشته و ما در گنجور اشعار را به ترتیب حروف قافیه مرتب کرده‌ایم کارایی ندارد. پیدا کردن اولین صفحه از کتاب با مطابقت بالاتر از آستانه و عدم بررسی صفحات بعدی نیز به خصوص برای اشعار کوتاه مانند رباعی‌ها که احتمال آن وجود دارد که بسیاری از کلماتشان در صفحات نامربوط کتاب پیدا شوند ایجاد مشکل می‌کند.

الگوریتم طراحی شده به دلیل بررسی کل متن کتاب بسیار زمان‌بر است اما در بررسی تصادفی به عمل آمده دقت قابل قبولی دارد و می‌توان با اختصاص منابع پردازشی به آن این نقیصه یعنی زمان‌بر بودنش را جبران کرد.

خودکارسازی این فرایند با حذف نیاز به نیروی انسانی می‌تواند در آینده امکان این را هم اضافه کند که علاوه بر چاپ‌های مرجع گنجور، متن شعر را در چاپ‌ها و تصحیح‌های دیگر نیز پیدا کنیم و آنها را با شعر لینک کنیم و در آینده بتوانیم متن شعر را در نسخه‌های بدل چاپی دیگر نیز در دسترس داشته باشیم و بررسی کنیم.

متأسفانه با توجه به این که سرور نسکبان در ایران قرار دارد و طی روزهای اخیر اختلالات همیشگی اینترنت ایران شدیدتر شده این که این فرایند چه زمانی تکمیل شود چندان در کنترل ما نیست (لازمهٔ پیشرفت این فرایند ارتباط پایدار سرور گنجور که در خارج از ایران قرار دارد با این سرور در داخل ایران است). تا کنون کتابهای مرتبط با اشعار تا حدود قرن هفتم مشخص شده و در صف پردازش قرار گرفته‌اند که پیش از شدت گرفتن این اختلالات با سرعت مناسبی در حال پردازش و تکمیل بوده‌اند.

بعد از پایان فرایند تطبیق متن کتابهای چاپی با متن گنجور مرحلهٔ دیگری را آغاز خواهیم کرد که بین چند نسخهٔ چاپی مرتبط با یک بخش در گنجور بخشی را که با احتمال بالا منبع کاغذی گنجور بوده با الگوریتم‌هایی مشابه همان الگوریتم‌های آماری که شرحشان آمد پیدا کنیم. تا آن زمان، اولین نسخهٔ چاپی پردازش شده به عنوان مرجع معرفی شده (تا دسترسی به آن از طریق ویرایشگر متن گنجور آسان باشد) اما در عمومِ موارد، لزوماً این موارد مرجع کاغذی گنجور نبوده‌اند.

معرفی «نسکبان»: جستجو در متن سی هزار کتاب فارسی

خلاصه و اصل مطلب (اگر حوصله ندارید پاراگراف‌های بعد را بخوانید): در سایت نسکبان به نشانی naskban.ir امکان مرور و جستجو در متن بیش از سی‌هزار کتاب فارسی با قالب PDF دریافت شده از کتابخانهٔ اینترنتی سها را دارید. قابلیت‌های افزودهٔ آن بر سها، امکان جستجو در متن کتاب‌ها، نشانی‌های یکتا برای صفحات کتاب‌ها و امکان فهرست‌گذاری گنجور بر اساس کتاب‌های چاپ شدهٔ در دسترس از طریق آن است. برای دسترسی به و استفاده از آن باید در آن نام‌نویسی کنید.

پردهٔ اول: روزگاری دور (چهارده سال پیش) یکی از همراهان گنجور با من تماس گرفت و گفت شعری از پروین اعتصامی در کتابهای درسی دوران ابتداییشان بوده که اکنون در میان آثار پروین نیست. علی‌رغم آن که عموماً من از دست بردن در آثار و اضافه کردن جامانده‌های اینچنینی پرهیز می‌کنم نمی‌دانم به چه دلیل -شاید برای راضی کردن دل خودم و آقای رضا سیمی- آن را به ته مثنویات پروین چسباندم. کمی بعد دوستانی آمدند و زیر آن نوشتند که از پروین نیست و یا از ایرج میرزاست یا از عباس یمینی شریف. از آن جهت دل‌چرکین شدم و علی‌الحساب با وجود آن که شعر هنوز ذیل آثار پروین هست در عنوانش گوشزد کردم که شاعر شعر ناشناخته است.

جوجهٔ نافرمان

دوست داشتم منبع نقل این کتاب را پیدا کنم و ببینم از کیست. اما چطور؟ چطور می‌شود کتاب مرجع را پیدا کرد؟ این دغدغه با من بود تا آن که ابزارش را ساختم و در هنگام نوشتن این متن آن را یافتم: اینجا (برای مشاهدهٔ این صفحات می‌بایست در نسکبان که جلوتر معرفیش می‌کنم نام‌نویسی کنید)، کمی اینجا، کمی اینجا و کمی هم اینجا و اینجا. اما مسأله هنوز حل نشده. در کتاب چاپی نام شاعر ذکر نشده. منتهی یکی از دلایلی که امروز می‌توانم در مخزن بزرگی از کتابهای چاپی چنین جستجویی انجام دهم دغدغهٔ گشودن رمز این معما بود. معمایی که با این حکمت گشوده نشد.

پردهٔ دوم: هدف اولیهٔ ساخت گنجینهٔ گنجور افزودن آب و رنگ به حال و هوای خشک و متن‌زدهٔ گنجور با استفاده از نسخه‌های نفیس خطی خصوصاً آنها که نقاشی داشتند بود. در ادامه و با توجه به آن که برای تصحیح خطاهای تایپی نیاز بود تصویر نسخه‌های کاغذی مرجع اشعار را ببینیم تصاویر کتابهای چاپی را نیز به آن افزودم.

گنجینهٔ گنجور از آغاز برای نگهداری تصاویر باکیفیت از نسخه‌های نفیس طراحی شده بود و برای در دسترس‌گذاری کتابهای چاپی، می‌بایست آنها را از PDF به تصویر تبدیل می‌کردم. فرایندی که با وجود کاهش کیفیت تصاویر به نسبت فایل PDF مورد استفاده باعث افزایش چندبرابری حجم آن می‌شود.

به خاطر این مشکل تصمیم گرفتم که سامانه‌ای جدا برای نگهداری فایل‌های PDF طراحی کنم که در آن نیاز نباشد قالب فایل اصلی تغییر کند در عین حال بتواند امکاناتی مشابه گنجینهٔ گنجور شامل نشانی یکتا برای هر صفحه از فایل را فراهم کند. همینطور امکان فهرست‌گذاری کتاب مطابق با متن گنجور نیز در آن وجود داشته باشد.

در جستجو برای منبعی متمرکز از فایل‌های PDF قابل استفاده در ابتدا به کتابخانهٔ‌ تخصصی ادبیات و از آنجا به سها رسیدم. مجموعه‌ای عظیم از هزاران کتاب قابل دریافت در قالب PDF با ابرداده‌های توصیف‌کنندهٔ محتوای کتابها که البته من را در فیلتر و حذف کتابهای غیرفارسی آن به زحمت انداخت (عمدتاً فکر می‌کنم مشکل پیدا نشدهٔ کدهای خودم باشد) اما تلاشی که برای راه‌اندازی آن چه جمع‌آوری کتابهای پیشتر اسکن شده و چه اسکن کتابهای اسکن نشده شده شگفت‌انگیز و باورنکردنی است. به راستی که دستمریزاد!

از آنجا که حجم و جنس داده‌های پروژهٔ جدید از گنجینهٔ گنجور متفاوت بود آن را از گنجور و گنجینه‌اش جدا کردم به این معنی که اطلاعات آن در پایگاه داده‌هایی مجزا و هم‌اکنون روی سروری مجزا نگهداری می‌شود (سروری که برای پشتیبان‌گیری از گنجور تهیه شده). از این جهت کاربران نام‌نویسی شده در آن نیز با گنجور یکی نیستند و کاربران می‌بایست برای استفاده از امکانات اختصاصی در آن جداگانه نام‌نویسی کنند.

نام این سامانهٔ جدید نسکبان است (نام دامنه‌ای که سالها پیش با هدف میزبانی گنجینهٔ گنجور ثبت شده بود و با تصمیم به ثبت آن به عنوان زیردامنه‌ای از گنجور بلااستفاده مانده بود). سامانه‌ای که به نوعی خود فهرستی بر سهاست (در آینده ممکن است منابع دیگری نیز به آن افزوده شود)، اما امکانات اضافه‌ای ارائه می‌کند.

ویژگی‌ها و امکانات مهم نسکبان در حال حاضر به شرح زیر است:

۱. هر کتاب و هر صفحه از هر کتاب در آن نشانی مجزایی دارد. از این جهت می‌توانید به صفحات کتابها در آن لینک بدهید. نشانی کتاب‌ها یک عدد (شناسهٔ آنها) و شناسهٔ صفحات کتاب‌ها شمارهٔ صفحات آنها بعد از خط کج (/) جدا شده از شناسهٔ کتاب متناظرشان است.

شناسهٔ کتاب و شمارهٔ صفحه در نشانی‌های نسک‌بلن

امکان کپی آسان لینک صفحات (کتاب‌ها، صفحات کتاب‌ها و جستجوها) نیز در نظر گرفته شده است.

کپی نشانی صفحه یا کتاب به حافظه
تایپ شمارهٔ صفحه و رفتن به آن

۲. متن (تقریباً) تمام کتاب‌ها با استفاده از نرم‌افزار بازمتن تسرکت (tesseract) که از زبان فارسی نیز پشتیبانی می کند OCR شده است و می‌توانید در متن آنها بگردید (قطعاً خروجی OCR پراشکال است اما برای یافتن شواهد به اندازهٔ کافی خوب است، ضمناً با توجه به سخت‌افزار سرور فعلی نسکبان باید در جستجوی تمام‌متنی پرحوصله باشید).

جستجوی پیش‌فرض در ابرداده‌های کتاب‌ها (عناوین و نام پدیدآورندگان و …) انجام می‌شود و برای جستجو در متن کتاب‌ها باید از دکمهٔ دیگری استفاده کنید:

جستجو در متن

می‌توانید عبارتی را در متن تمام کتاب‌ها بگردید (اگر می‌خواهید عبارتی ترکیبی را به طور دقیق جستجو کنید آن را بین دو علامت قرار دهید). در صفحهٔ نتایج فهرست تمام کتاب‌هایی را خواهید دید که این متن در آنها یافت شده است.

نتایج جستجو

با انتخاب هر کتاب از نتایج نمایش داده شده، عبارت جستجو شده دوباره در متن آن کتاب جستجو می‌شود و تصاویر صفحات حاوی آن به همراه متن حاوی عبارت به صورت برجسته‌شده نمایش داده می‌شوند.

نمایش نتایج در یک کتاب

با انتخاب هر صفحه می‌توانید تصویر آن صفحه را ببینید. امکان آن که از ابتدا عبارتی را در یک کتاب خاص بگردید نیز وجود دارد. آن را باز کنید. امکان جستجو در متن آن (اگر OCR شده باشد) از کادر بالای آن وجود دارد.

جستجو در متن یک کتاب خاص

۳. کاربران می‌توانند کتاب‌ها و صفحات آنها را نشان کنند و به فهرست نشان‌شده‌هایشان دسترسی دارند.

نشان شده
نشان شده‌ها

۴. از کارکردهای ثانویه که بگذریم 😉 امکان فهرست‌گذاری صفحات کتاب‌های نسکبان با متن گنجور فراهم شده است. لذا می‌توان امیدوار بود که در آینده منابع چاپی همهٔ متون گنجور را با استفاده از آن فهرست‌گذاری کنیم. روش کار مشابه همان کاری است که در گنجینهٔ گنجور انجام شده. پس از نام‌نویسی و ورود به نسکبان، کتاب مد نظر را پیدا می‌کنیم. وارد آن می‌شویم و زیر صفحه‌ای که با شعری از گنجور مرتبط است از دکمهٔ «پیشنهاد شعر مرتبط با گنجور» به صفحه‌ای مانند شکل بعد می‌رسیم که می‌توانیم در دو سمت صفحه نسکبان و گنجور را ببینیم و بین صفحات آنها مستقلاً حرکت کنیم.

پیشنهاد شعر مرتبط در گنجور

۵. نسکبان هم‌اکنون روی سروری که برای پشتیبان‌گیری از داده‌های سرور اصلی گنجور تهیه شده میزبانی می‌شود. این سرور در ایران قرار دارد و احتمالاً با فیلترشکن‌ها و شاید با کاربران خارج از ایران مشکلاتی داشته باشد. از آنجا که مهمترین شاخص تهیهٔ این سرور فضای دیسک بوده مشخصات سخت‌افزاری خوبی هم ندارد. به این دلایل انتظار ندارم که این سرور در برابر ترافیک بالای ورودی پاسخگویی مناسبی داشته باشد. خصوصاً که جستجوی متنی داخل همهٔ کتابها نیز پردازهٔ سنگینی است. در آینده پروژه‌های امیدوارکننده‌ای مانند ایران سرچ و همینطوراحتمالاً خود سها و کتابخانهٔ ادبیات -اگر قابلیت جستجوی متنی داخل کتاب‌ها را اضافه کنند- می‌توانند جایگزین‌های پایدارتری برای نسکبان باشند و کارکرد نسکبان بیشتر به یکپارچگی آن با گنجور محدود شود. بسته به استقبال و میزان پایداری شاید در آینده سرور بهتری برای نسکبان تهیه کردم تا پاسخگویی بالاتری داشته باشد. در حال حاضر و با توجه به شلختگی کلی در طراحی و کمبود امکانات نرم‌افزاری نسکبان و همینطور سرور و سخت‌افزار زغالی با توجه به کارکردهای -در حال حاضر- به نظر بی‌نظیرش، نسکبان رتبهٔ بالاتری به نسبت گنجور در کسب عنوان «لنگه کفش کهنه در بیابان» کسب می‌کند 😉 !

نسکبان جای زیادی برای کار و بهبود دارد. برای آن که کنترل بهتری روی آن داشته باشم استفاده از آن را منوط به نام‌نویسی و ورود کاربران کرده‌ام. به این ترتیب از ایندکس شدن میلیون‌ها صفحهٔ آن روی گوگل جلوگیری می‌کنم، آمار دقیقی از میزان استفاده از آن دارم، احتمالاً حجم استفاده از آن به دلیل آن که بسیاری از سد نام‌نویسی و ایجاد حساب کاربری عبور نمی‌کنند پایین و کارایی آن با وجود سخت‌افزار ضعیف معقول باقی می‌ماند و اگر بعدها خواستم آن را واگذار کنم مالک و نگه‌دارندهٔ بعدی دست بازتری روی انتخاب آن که آن را چطور می‌خواهد در اختیار کاربر نهایی قرار دهد خواهد داشت.