<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Clement |</title><link>https://clementgodbarge.com/fa/authors/clement/</link><atom:link href="https://clementgodbarge.com/fa/authors/clement/index.xml" rel="self" type="application/rss+xml"/><description>Clement</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>fa</language><lastBuildDate>Sun, 06 Sep 2026 00:00:00 +0000</lastBuildDate><image><url>https://clementgodbarge.com/media/authors/clement_hu_3c9b888d0ca9e974.webp</url><title>Clement</title><link>https://clementgodbarge.com/fa/authors/clement/</link></image><item><title>حصار، نه آتش</title><link>https://clementgodbarge.com/fa/post/fence-not-fire/</link><pubDate>Sun, 06 Sep 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/fa/post/fence-not-fire/</guid><description>&lt;p&gt;در انباری در شمال لاس‌وگاس، Amazon ماشینی به کار انداخته که عطف کتاب‌های دست‌دوم را می‌بُرد. صفحه‌های جداشده از اسکنر می‌گذرند و کاغذ سپس به خمیر کردن می‌رود.
این کار را با کتاب‌سوزان مدرن قیاس کرد و در این راه از هیچ کلیشه‌ای دریغ نورزید: اشاره به ساوونارولا، عکس‌های آرشیوی از کتاب‌هایی به‌ظاهر نایاب و، البته، آتش برلین. روزنامه‌های جدی‌تر، چنان‌که انتظار می‌رفت، خونسردتر بودند اما همان مقایسه را در هوا معلق گذاشتند. این مقاله‌ها با همهٔ برآشفتگی‌شان، گذاشتند صنعت هوش مصنوعی به‌طرزی شگفت‌انگیز قسر در برود. کنترل دانشی که اسکن می‌شود دست کیست؟ این پرسش باید صبر کند تا نخست تکلیف یاوهٔ کتاب‌سوزان را روشن کنیم.&lt;/p&gt;
&lt;h2 id="اسکنر-آتشسوزی-نیست"&gt;اسکنر آتش‌سوزی نیست&lt;/h2&gt;
&lt;p&gt;نابود کردن یک نسخهٔ کاغذی، به‌خودی‌خود، اسکن مخرب را همتای مدرنِ آتش ساوونارولا یا کتاب‌سوزان نازی‌ها نمی‌کند. آن کارها معنایشان را از آنچه محکوم می‌شد و از چرایی محکومیتش می‌گرفتند. آن راهب بینوا، ساوونارولا، که پایش را به هر جنجال کتاب‌سوزی می‌کشند، از مردم می‌خواست بخشی از دارایی‌شان را همچون توبه‌ای علنی به آتش بیندازند. آتش نازی‌ها گونه‌ای دیگر از طرد را به صحنه می‌برد: سوزاندن علنی کتاب‌ها اعلام می‌کرد که نویسندگانشان در حیات فرهنگی آلمان جایی ندارند. در هر دو مورد، نابودی نمایشی بود. اسکن مخرب، که روشی رایج در دیجیتال‌سازی است، غرض دیگری دارد: نسخه قربانی می‌شود تا محتوایش بماند. کتاب از میان می‌رود؛ متن از ماده رها می‌شود. هر کس دست به دامن &lt;em&gt;فارنهایت 451&lt;/em&gt; می‌شود، خوب است به یاد آورد که آتش‌نشانان بردبری متن را برای بعد نگه نمی‌داشتند.&lt;/p&gt;
&lt;p&gt;
با گذاشتن «کتاب‌های نایاب» در تیتر خود بر دامنهٔ هراس افزود، و رسانه‌های دیگر هم به‌نوبهٔ خود این وصف را تکرار کردند. حال آنکه کتاب‌فروشی که در همان گزارش از او نقل شده گفته بود این سفارش‌های عمده
؛ یعنی عمدتاً چاپ‌هایی که از حدود 1970، زمان رواج شابک، به بعد منتشر شده‌اند. این‌ها جنس بساط دست‌دوم‌فروش‌ها و مغازه‌های خیریه‌اند که غالباً یک خانه‌تکانی با زباله‌دانی فاصله دارند. پیش از اعلام فاجعهٔ فرهنگی، بد نیست فهرست کتابخانه را نگاهی بیندازیم. این‌ها دقیقاً همان انتشاراتی‌اند که کتابخانه‌های واسپاری قانونی برای نگهداری‌شان به وجود آمده‌اند. البته شابک داشتن، بقای نسخهٔ واسپاری را تضمین نمی‌کند؛ اما کمیابی در بازار دست‌دوم هم ناپدید شدن یک متن را ثابت نمی‌کند.&lt;/p&gt;
&lt;p&gt;خمیر کردن، نسخهٔ فیزیکی را با هر یادگاری‌نوشته و حاشیه‌ای که دارد از میان می‌برد. نسخه‌هایی که حاشیه‌نویسی یا پیشینهٔ مالکیت مهمی از نظر تاریخی دارند سزاوارند شناسایی و حفظ شوند، ترجیحاً پیش از آنکه به بازار دست‌دوم برسند. می‌توان همچنان نگران کم شدن نسخه‌های کاغذی عنوان‌های از چاپ خارج‌شده بود. اما در آن صورت باید پرسید چرا صاحبان حقوقشان نه آن‌ها را تجدید چاپ می‌کنند و نه اجازهٔ دسترسی به نسخه‌های دیجیتال موجود را می‌دهند. پژوهشگران این کلافگی را خوب می‌شناسند: Google Books عبارت مورد نیازتان را پیدا می‌کند و بعد تکه‌ای کوچک از کتابی را نشانتان می‌دهد که نه می‌توانید نو بخرید و نه آنلاین بخوانید. اینجا خسارت‌هایی هست که ارزش بحث دارد. ولی هیچ‌یک اسکنر را به آتش نازی‌ها بدل نمی‌کند.&lt;/p&gt;
&lt;p&gt;از این گذشته، صنعت نشر از دیرباز کتاب‌های فروش‌نرفته را به‌طور روزمره خمیر می‌کند. تنها در فرانسه، برآورد می‌شود که
، یعنی نزدیک به 60 درصد از تناژی که فروش‌نرفته به پخش‌کننده‌ها برگشته است. نام این کار «مدیریت موجودی» است. نسخه‌های مازاد و عنوان‌های کمیاب دست‌دوم پرسش‌های متفاوتی دربارهٔ دسترسی پیش می‌کشند، اما نابود کردن کاغذ به‌خودی‌خود نه سانسور است و نه استبداد.&lt;/p&gt;
&lt;h2 id="کتاب-بیشتر-هوش-مصنوعی-بهتر"&gt;کتاب بیشتر، هوش مصنوعی بهتر؟&lt;/h2&gt;
&lt;p&gt;اینکه شرکت‌های هوش مصنوعی کتاب می‌خرند و اسکن می‌کنند در واقع خبر خوبی است. فناوری‌ای که پیوسته به درک سطحی‌اش از فرهنگ بشری متهم می‌شود دارد از آن فرهنگ بیشتر برمی‌گیرد، و انتظار می‌رفت اهل دانشگاه از این تلاش استقبال کنند.&lt;/p&gt;
&lt;p&gt;وب جانشین ناقصی برای گنجینهٔ انباشتهٔ یک زبان است. بخش بزرگی از حیات مکتوب هر زبان، از رمان و خاطرات گرفته تا ترانه‌های عامه‌پسند و گفت‌وگوهای پیاده‌شده، هرگز از چاپ به وب راه نیافته است. بسیاری از این کتاب‌ها از ناشرانشان بیشتر عمر کرده‌اند. راه دادن آن‌ها به داده‌های آموزشی آنجا بیشترین اهمیت را دارد که چیز دیگری در دسترس نیست. چند کتاب بیشتر به انگلیسی شاید بهبودی حاشیه‌ای بیاورد. در زبانی که بازنمایی ضعیفی دارد، همان کتاب‌ها می‌توانند مرز میان سامانه‌ای کارآمد و سامانه‌ای بی‌فایده باشند. اینکه این ابزارها جایی در خدمات عمومی یا زندگی روزمرهٔ ما داشته باشند یا نه، پرسشی است برای بحث عمومی. اما هر جا که تصمیم بگیریم از آن‌ها استفاده کنیم، باید بتوانیم به زبان خودمان استفاده کنیم.&lt;/p&gt;
&lt;p&gt;سفارش‌هایی که از اسپانیا و هلند گزارش شده، بُعد زبانی ماجرا را ملموس می‌کند. در ماه مه،
از کتاب‌فروشی در بادالونا نوشت که سفارش‌های پیاپی دریافت می‌کرد، عمدتاً برای آثار غیرداستانی کاتالان: کتاب‌های تاریخ، راهنماهای فنی و مجموعه‌مقالات کنفرانس‌های قدیمی. تا ماه اوت، گزارش‌های هلندی از درخواستی به De Slegte برای
خبر می‌دادند. زبان کتاب‌ها دست‌کم به همان اندازهٔ سرنوشت جلدشان سزاوار توجه است. شاید این از Daily Mail انتظار زیادی باشد. ولی روزنامه‌های سنجیده‌تر هم دربارهٔ زبان‌های دخیل چیز چندانی نگفته‌اند.&lt;/p&gt;
&lt;p&gt;قراردادهای مجوز با ناشران بزرگ هم می‌توانند مواد ارزشمندی فراهم کنند، اما فهرست‌های دیجیتال آن‌ها تنها کسری از آنچه به چاپ رسیده را در بر می‌گیرد. کتاب‌هایی که هرگز دیجیتال نشده‌اند، یا حقوقشان دیگر در دست ناشر نیست، بیرون از این عرضه می‌مانند. حتی سخاوتمندانه‌ترین قرارداد مجوز هم نمی‌تواند جای تاریخ نشر را بگیرد، چه رسد به تاریخ یک فرهنگ. خرید نسخه‌های دست‌دوم راهی است برای گذشتن از این مرزهای تجاری.&lt;/p&gt;
&lt;h2 id="دزدی-استدلال-نیست"&gt;«دزدی» استدلال نیست&lt;/h2&gt;
&lt;p&gt;«دزدی» نامیدنش هم کمکی نمی‌کند. در ژوئن 2025، دو دادگاه ناحیه‌ای ایالات متحده حکم دادند که استفاده از کتاب‌ها برای آموزش مدل‌های زبانی، در پرونده‌های مطروحه، استفادهٔ منصفانه بوده است. در پروندهٔ
، دادگاه بر خصلت دگرگون‌ساز آموزش تأکید کرد: کتاب‌ها برای ساختن سامانه‌ای به کار رفته بودند که می‌تواند بیان تازه‌ای تولید کند. مدل‌ها ممکن است عباراتی را از بر کنند، اما استفاده از یک کتاب در آموزش، تمام متن آن را در دسترسِ بازیابی به فرمان قرار نمی‌دهد. از سوی دیگر، نبودِ بازتولید عین‌به‌عین هم همهٔ اعتراض‌ها را پاسخ نمی‌دهد. در پروندهٔ
، قاضی هشدار داد که آثار تولیدشده با هوش مصنوعی می‌توانند بازار را اشباع کنند و شواهدی از چنین زیانی می‌تواند دفاع استفادهٔ منصفانه را از پا درآورد. این شاکیان اما شاهد معناداری از چنین زیانی به آثار خودشان ارائه نکرده بودند. هیچ‌یک از دو حکم به شرکت‌های هوش مصنوعی اجازهٔ بی‌قید و شرط نمی‌دهد و نزاع اخلاقی را نیز فیصله نمی‌دهد. آنچه از ما می‌خواهند تمایز گذاشتن است میان اینکه کتاب‌ها چگونه به دست می‌آیند، نسخه‌ها چگونه نگهداری می‌شوند و آموزش با آن‌ها چه می‌کند. «دزدی» نامیدن همهٔ این‌ها، آن پرسش‌ها را بی‌پاسخ می‌گذارد.&lt;/p&gt;
&lt;p&gt;در ضمن، حکم پروندهٔ Anthropic دلیلی هم برای گیوتین به دست می‌دهد. دادگاه دیجیتال‌سازی نسخه‌های خریداری‌شده را تأیید کرد و انباشتن کتاب‌های دزدی در کتابخانه‌ای دائمی را مردود شمرد؛ همان چیزی که شرکت بعدها بر سر آن
. دیجیتال‌سازی تا حدی از آن رو پذیرفته شد که هر نسخهٔ چاپی در جریان تبدیل نابود شده بود: نسخهٔ دیجیتال جای آن را گرفته و بیرون از شرکت به اشتراک گذاشته نشده بود. همان نابودی‌ای که این‌همه خاطر برخی را می‌آزارد، به Anthropic کمک کرد ثابت کند برنامهٔ دیجیتال‌سازی‌اش استفادهٔ منصفانه بوده است. خریدن، اسکن کردن و دور انداختن، در آن پرونده مسیری قانونی بود. گیوتین در اینجا ابزار انطباق با قانون است. خرید نسخه‌ها می‌تواند مشکل تملک را حل کند؛ اما به‌خودی‌خود به هیچ‌کس اجازه نمی‌دهد پیکرهٔ حاصل را به اشتراک بگذارد.&lt;/p&gt;
&lt;p&gt;دلایل خوبی هست برای اینکه بخواهیم هوش مصنوعی از زبان‌های بیشتر، از دانش بیشتر و از بخش بزرگ‌تری از جهانِ پیش از اینترنت بهره بگیرد. این دلایل از این رو که شرکتی که دوستش نداریم فرصتی تجاری در این کار یافته، دود نمی‌شوند.&lt;/p&gt;
&lt;h2 id="خشم-عاریتی"&gt;خشم عاریتی&lt;/h2&gt;
&lt;p&gt;پس به Daily Mail برگردیم. مقاله‌اش بخشی است از
، کارزاری از سوی مالکان روزنامه‌ها و ناشران که
برای هوش مصنوعی می‌خواهند. دو جایگزینی راحت، کار را پیش می‌برد: غول‌های فناوری به جای هوش مصنوعی می‌نشینند و صاحبان حقوق به جای خلاقیت بریتانیایی. از خوانندگان دعوت می‌شود از فرهنگ دفاع کنند، در حالی که ناشران بر سر شرایط فروش آن چانه می‌زنند. پژوهشگرانی که این خبر را دست‌به‌دست می‌کنند، خوب است بپرسند خشمشان در خدمت کدام آرمان است.&lt;/p&gt;
&lt;p&gt;غول‌های فناوری و
بر سر اجاره‌بها دعوا دارند، اما هیچ‌کدام با حصار مخالف نیستند. داستان نویسندهٔ تنهایی که غولی فناوری غارتش کرده، آنچه را که قراردادهای گران‌قیمت مجوز به هر دو اردوی شرکتی می‌بخشد پنهان می‌کند: ناشران پول می‌گیرند و غول‌های فناوری بازاری به دست می‌آورند که رقبای کوچک‌ترشان از عهدهٔ رقابت در آن برنمی‌آیند. پیتر تیل ترجیح سیلیکون‌ولی را بی‌پرده‌تر گفته است:
.&lt;/p&gt;
&lt;p&gt;مجوزدهی لزوماً به چنین نتیجه‌ای نمی‌انجامد. دسترسی ارزان و غیرانحصاری می‌تواند به توسعه‌دهندگان کوچک‌تر کمک کند. اما سامانه‌ای که هر تازه‌وارد را وادار می‌کند با صاحبان حقوق بزرگ قراردادهای پرهزینه ببندد، قدرت خرید را به شرط ورود بدل می‌کند. پرداختی که به‌عنوان امتیازی به صنایع فرهنگی عرضه می‌شود، در نهایت بیمه‌ای می‌خرد در برابر رقیبان آینده.&lt;/p&gt;
&lt;h2 id="هوش-مصنوعی-مال-غولهای-فناوری-نیست"&gt;هوش مصنوعی مال غول‌های فناوری نیست&lt;/h2&gt;
&lt;p&gt;مسئلهٔ عمیق‌تری هم در کار است. بخش بزرگی از نقد هوش مصنوعی، بزرگ‌ترین عرضه‌کنندگان تجاری‌اش را با تمام این حوزه یکی می‌گیرد. محصولات تیترها را پر می‌کنند؛ پژوهش و توسعه‌ای که بیرون از آن شرکت‌ها جریان دارد از نظر پنهان می‌ماند. غول‌های فناوری سوءتفاهمی مفیدتر از این نمی‌توانستند بخواهند. جاه‌طلبی‌شان برای تصاحب این حوزه، پیش‌فرضِ همان نقدی می‌شود که علیه‌شان می‌نویسند. انحصار هنوز قطعی نشده است. تمام‌شده انگاشتنش، لطف بزرگی است در حق این شرکت‌ها.&lt;/p&gt;
&lt;p&gt;هوش مصنوعی متن‌باز به مردم امکان می‌دهد سامانه‌هایی بسازند و سازگار کنند که تنوع بیشتری از زبان‌ها، فرهنگ‌ها و شکل‌های بیان را بازتاب می‌دهند. برای کشورهای اروپا، آفریقا و آمریکای لاتین، و نیز برای کرهٔ جنوبی، ژاپن و هند، این پایه‌ای عملی برای حاکمیت فناورانه و فرهنگی است: توانایی تصمیم گرفتن دربارهٔ اینکه سامانه‌ها چگونه کار کنند، به کدام زبان‌ها خدمت کنند و کجا به کار روند. اینکه از هوش مصنوعی استفاده بشود یا نه و برای چه، باید انتخابی عمومی بماند، نه تصمیمی که وابستگی به یک عرضه‌کنندهٔ خارجی دیکته می‌کند.&lt;/p&gt;
&lt;p&gt;اما آزادیِ تغییر دادن یک سامانه، بدون امکانات این کار، معنای چندانی ندارد. کار مستقل به تخصص، زیرساخت محاسباتی و دسترسی به مواد آموزشی نیاز دارد. و همین ما را به کتاب‌ها برمی‌گرداند. اگر هر گروه پژوهشی یا نهاد عمومی ناچار باشد خودش با ناشران قرارداد ببندد یا کتابخانهٔ خصوصی خودش را گرد آورد، استقلال همچنان امتیاز کسانی می‌ماند که از عهدهٔ هزینه‌اش برمی‌آیند.&lt;/p&gt;
&lt;h2 id="کتابها-همینجا-هستند"&gt;کتاب‌ها همین‌جا هستند&lt;/h2&gt;
&lt;p&gt;کتابخانه‌ها و آرشیوها نسل‌ها صرف گردآوری همان موادی کرده‌اند که این سامانه‌ها به آن نیاز دارند. مجموعه‌هایشان از آن رو وجود دارد که دسترسی به دانش باید از منفعت تجاریِ فروش آن بیشتر عمر کند. بخش زیادی هم پیش‌تر اسکن شده است:
نزدیک به نوزده میلیون جلد دیجیتال‌شده از کتابخانه‌های پژوهشی را در اختیار دارد که بسیاری‌شان هنوز مشمول حق نشرند. کتابخانه کتاب را اسکن می‌کند و نگهش می‌دارد. آنجا کسی به گیوتین نیازی ندارد. HathiTrust
، اما از
هم خبر داده است؛ پروژه‌ای برای فراهم کردن دسترسی به پیکره برای پژوهش و توسعهٔ غیرتجاری در هوش مصنوعی. دسترسی با این شرایط باز هم برخی توسعه‌دهندگان مستقل را بیرون در نگه می‌دارد.&lt;/p&gt;
&lt;p&gt;مالکیت کتاب‌ها اما به کتابخانه حق نمی‌دهد محتوای مشمول حق نشر آن‌ها را به‌صورت پیکرهٔ آموزشی توزیع کند.
به نهادهای پژوهشی و کتابخانه‌ها اجازه می‌دهد آثارِ قانوناً در دسترس را برای پژوهش علمی کاوش کنند، و کاوش گسترده‌تر را آنجا مجاز می‌داند که صاحبان حقوق حق خود را محفوظ نداشته‌اند.
: استثنای کاوش در آن به پژوهش غیرتجاری محدود است و انتقال نسخه‌ها را مقید می‌کند. هیچ‌یک از این دو چارچوب به کتابخانه‌ها حقی عام نمی‌دهد که موجودی مشمول حق نشرشان را برای ساخت‌وساز دیگران به اشتراک بگذارند.&lt;/p&gt;
&lt;p&gt;می‌توان در این هم بازنگری کرد که صاحبان حقوق تا چه مدت باید بر کاربردهای محاسباتی کتاب‌ها مسلط بمانند. پتنت‌های دارویی یک نقطهٔ مقایسه‌اند: دورهٔ معمول بیست‌سالهٔ آن‌ها بسیار کوتاه‌تر از حمایت حق نشر است که تمام عمر نویسنده و هفتاد سال پس از آن را در بر می‌گیرد. آیا نمی‌شود کتاب‌ها، مثلاً بیست سال پس از نخستین انتشار، بدون حق مجوز برای متن‌کاوی و داده‌کاوی در دسترس قرار گیرند، در حالی که حقوق بازنشر و فروش همچنان محفوظ بماند؟ پاسداری از حق نویسنده برای فروش کتابش لزوماً به معنای کنترل هر شیوهٔ استفاده از محتوای آن برای نسل‌ها نیست.&lt;/p&gt;
&lt;p&gt;دو سال پیش در
استدلال کردم که داده‌های میراث فرهنگی را باید کالایی عمومی دانست. دولت‌ها باید به کتابخانه‌ها و آرشیوها بودجه بدهند تا مجموعه‌هایشان را دیجیتال کنند، بازنویسی کنند و مستند سازند، و به آن‌ها اختیار قانونی بدهند که پیکره‌های حاصل را در اختیار دیگران بگذارند تا بر آن بنا کنند. غول‌های فناوری می‌توانند از طریق عوارضی اختصاصی بخشی از هزینه را بپردازند.&lt;/p&gt;
&lt;p&gt;بودجهٔ عمومی باید با سیاست‌های اعلام‌شدهٔ گردآوری و قواعد دسترسی همراه باشد که کار دانشگاهی و تجاری را بدون قرارداد انحصاری یا دسترسی ویژه برای اهداکنندگان پوشش دهد. دسترسی برای آموزش لزوماً به معنای بازتوزیع بی‌قید کتاب‌های مشمول حق نشر نیست. نویسندگان باید در طراحی این طرح عمومی سهیم باشند، از جمله در اینکه چگونه به رضایت، پاداش و رقابت با آثارشان می‌پردازد. دسترسی رایگان برای کاربران با پاداش نویسندگان از بودجهٔ عمومی منافاتی ندارد.
، که هر بار کتابی به امانت می‌رود از محل بودجهٔ عمومی به نویسنده می‌پردازد، یک پیشینه است. آتش هرگز اصل ماجرا نبود. حصار است.&lt;/p&gt;</description></item><item><title>سردبیران گرامی: اگر صدای مرا می‌خواهید، زبانم را به من پس بدهید</title><link>https://clementgodbarge.com/fa/post/dear-editors/</link><pubDate>Thu, 27 Aug 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/fa/post/dear-editors/</guid><description>&lt;p&gt;روزی نیست که مجله‌ای سیاست تازه‌اش را دربارهٔ هوش مصنوعی جار نزند. این بار نوبت &lt;em&gt;Progress in Human Geography&lt;/em&gt; است؛ سردبیرانش
منتشر کرده‌اند و هشدار داده‌اند که هر کس هوش مصنوعی را جانشین خواندن و اندیشیدن و نوشتنِ خود کند، مرتکب «نقض اخلاق دانشگاهی، همانند سرقت ادبی» شده است. مقاله‌هایی که خاطی شناخته شوند «ممکن است پس گرفته شوند»؛ در بهترین حالت تصحیح می‌شوند و اطلاعیه‌ای در مجله چاپ می‌شود. سردبیران می‌افزایند که نویسندگان باید «به‌دقت بیندیشند که آیا می‌خواهند نامشان با پس‌گرفتن مقاله و اطلاعیه‌های تصحیح گره بخورد یا نه».&lt;/p&gt;
&lt;p&gt;این جمله را باید لحظه‌ای نگه داشت. سلب اعتبار مقاله در رأس مجازات‌های انتشارات دانشگاهی می‌نشیند؛ کیفری که معمولاً برای جعل داده و تقلب کنار گذاشته‌اند. اینجا اما به تخلفی چسبانده شده که همان سرمقاله از تعریفش ناتوان است. سردبیران خود اذعان می‌کنند که «مناطق خاکستری واقعی» وجود دارد و «هیچ خط روشنی قلمرو ‹بی‌مسئولیتی› را جدا نمی‌کند». اجرای سیاست بر «داوری‌های موردی» تکیه خواهد کرد «که شاید برخی نویسندگان را برنجاند؛ نویسندگانی که ادعا خواهند کرد استفادهٔ ناروایی از هوش مصنوعی نکرده‌اند»: به عبارت دیگر، اظهار خودِ نویسنده هم می‌تواند نادیده گرفته شود. سپس توصیه می‌کنند که «در قلمرو امنِ ‹مسئولیت›» بمانیم؛ و آدم فقط آنجا به احتیاط سفارش می‌کند که خطری در کار باشد. کیفر دادن مردم به جرم عبور از خطی که به اعتراف خودتان نمی‌توانید بکشید، تنها وقتی معنا دارد که هدف، حکم راندن با ترس باشد. این نکته را به خاطر بسپارید؛ به آن بازخواهیم گشت.&lt;/p&gt;
&lt;h2 id="بهانه-صدا"&gt;بهانهٔ صدا&lt;/h2&gt;
&lt;p&gt;استفادهٔ مسئولانه چه شکلی دارد؟ به نویسندگان می‌گویند: «باید بسیار مراقب بود&amp;hellip; تا صدای خود را حفظ کنند». سوءاستفاده یعنی روی آوردن به هوش مصنوعی «برای نوشتن به زبانی که نویسندگان خود هرگز در حالت عادی به کار نمی‌برند». برای یک انگلیسی‌زبانِ مادرزاد این حرف معقول است: وانمود نکن آنچه نیستی. اما برای بیگانه‌ای که ناچار است به زبانی جز زبان خود بنویسد، این فرمان خودش را نقض می‌کند. صدایی که این سیاست از آن پاسداری می‌کند، درست همان چیزی است که قواعد خودِ مجله از ما دریغ می‌دارد.&lt;/p&gt;
&lt;p&gt;مرا نمونهٔ آزمون بگیرید. انگلیسی زبان چهارم من است؛ دقیقاً از آن زبان‌هایی که هرگز «در حالت عادی» به کار نمی‌برم. دانشگاه‌های انگلیسی‌زبان مرا تربیت کردند تا آن را کوتاه، نشانه‌گذاری‌شده و تقریباً ماشینی بنویسم: جملهٔ موضوعی در آغاز بند، قیدهای احتیاط در جاهای مقرر، حروف ربط از فهرست مصوب. تربیت کارگر افتاد: در انگلیسیِ من هرگز صدایی نبوده که از آن پاسداری شود؛ صدا نخستین چیزی بود که باید کنار می‌رفت. بنا بر تعریف خودِ سردبیران، هر چه من به انگلیسی نوشته‌ام استفادهٔ ناروا بوده است، با ماشین یا بی ماشین.&lt;/p&gt;
&lt;h2 id="میان-دو-سنگ-آسیا"&gt;میان دو سنگ آسیا&lt;/h2&gt;
&lt;p&gt;سردبیران می‌گویند به فکر ما هم بوده‌اند: سیاست می‌پذیرد که ناانگلیسی‌زبانان از اینکه هوش مصنوعی انگلیسی‌شان را وارسی کند سود می‌برند، حتی از «خدمات ترجمه، نگارش و ویرایش» آن. با این حال، سهم هوش مصنوعی در نوشتن «باید حداکثر به کمک در ویرایش و نمونه‌خوانی محدود بماند» و نباید به «قطعه‌های بزرگی از متن نوشته‌شده به دست هوش مصنوعی» برسد. مقاله‌ای که ماشینی ترجمه شده، از نخستین واژه تا واپسین واژه نوشتهٔ هوش مصنوعی است؛ چیزی جز همین قطعه‌ها نیست. پس آن امتیاز فقط در صورتی پابرجاست که ترجمه کردن، نوشتن به شمار نیاید. این خط از کجا می‌گذرد؟ پیش‌تر خودشان گفته‌اند: «هیچ خط روشنی» در کار نیست.&lt;/p&gt;
&lt;p&gt;بدتر از این هم هست، چون این سوءظن تنها ابطال‌ناپذیر نیست؛ از همان آغاز یک‌سویه است. در سال 2023 گروهی از دانشگاه استنفورد هفت آشکارساز پرکاربرد هوش مصنوعی را روی مقاله‌هایی آزمودند که انسان‌ها نوشته بودند: آشکارسازها به‌طور میانگین 61% از انشاهای TOEFL ناانگلیسی‌زبانان را تولید ماشینی تشخیص دادند، حال آنکه انشاهای انگلیسی‌زبانان مادرزاد را تقریباً بی‌خطا طبقه‌بندی کردند؛ یکی از آشکارسازها 97.8% از مجموعهٔ TOEFL را برچسب زد (
). علت آموزنده است. آشکارسازها پیش‌بینی‌پذیری را می‌سنجند، و انگلیسیِ زبان دوم، که به سمت میانگین تربیت شده، بنا به ساختش پیش‌بینی‌پذیر است: محتمل‌ترین واژه در محتمل‌ترین ترتیب. همان پژوهش این نشانه را در نوشته‌های علمی واقعی هم یافت: تنوع زبانی کمتر در مقاله‌های کنفرانسی که نویسندهٔ نخستشان انگلیسی‌زبان مادرزاد نیست. نشانه‌های سبکی‌ای که «هوش مصنوعی» خوانده می‌شوند، همان نشانه‌های انگلیسیِ مسلطِ زبان‌دومی‌هاست؛ و داوری موردی یک انسان هم همان نشانه‌هایی را می‌خواند که ماشین می‌خواند. حلقه بسته می‌شود: انگلیسی خودم را بنویسم، شبیه ماشین می‌شوم؛ ماشین را به کار بگیرم، قاعدهٔ آنان را شکسته‌ام.&lt;/p&gt;
&lt;h2 id="مالیات-زبان"&gt;مالیات زبان&lt;/h2&gt;
&lt;p&gt;اگر پای تهدید در میان نبود، این تناقض بی‌آزار می‌ماند. اما تهدیدها پرده از مشکلی عمیق‌تر و کهنه‌تر برمی‌دارند که سیاست هرگز نامش را نمی‌برد: تک‌زبانگی.
«گسترده‌ترین پوشش بین‌المللی ممکن» را می‌خواهد و در همان صفحه می‌نویسد: «زبان مجله انگلیسی است.»&lt;/p&gt;
&lt;p&gt;هزینهٔ این ترتیب فرضی نیست. آمانو و همکارانش با نظرسنجی از 908 دانشمند محیط‌زیست دریافتند که ناانگلیسی‌زبانان برای نوشتن یک مقاله تا 51% زمان بیشتری صرف می‌کنند، مقاله‌شان 2.5 برابر بیشتر رد می‌شود و 12.5 برابر بیشتر از آنان بازنگری خواسته می‌شود، آن هم صرفاً به دلایل زبانی (
). این مالیات پیش از رسیدن هر سیاست هوش مصنوعی گرفته می‌شود؛ فرم اظهارنامه و تهدیدهایش، ممیزی‌ای است که روی آن سوار شده است.&lt;/p&gt;
&lt;h2 id="fin-dempire"&gt;Fin d’empire&lt;/h2&gt;
&lt;p&gt;تک‌زبانگی همان اصل موضوعه‌ای است که هیچ‌کس درباره‌اش بحث نمی‌کند. میراثی امپراتوری است که با گذر زمان توجیهی عملی هم پیدا کرد: ترجمه کند و گران بود، و هیچ هیئت تحریریه‌ای نمی‌توانست چیزی را که نمی‌خواند ارزیابی کند. ولی هیچ‌یک از این‌ها در برابر پیشرفت ترجمهٔ ماشینی دوام نمی‌آورد. پیشرفته‌ترین ترجمهٔ ماشینی می‌تواند لایه‌ای قابل اعتماد میان نویسندگان و سردبیران باشد.&lt;/p&gt;
&lt;p&gt;راه برون‌رفت آرمانی، انسانی است: پژوهشگران باید بیش از یک زبان بخوانند. دانشگاه‌های انگلیسی‌زبان اما ترجیح می‌دهند دانشکده‌های زبان‌های زنده را تعطیل کنند. توجه کنید که این تعطیلی‌ها پدیده‌ای انگلیسی–آمریکایی است: پژوهشگران جاهای دیگر هرگز تجمل تک‌زبانگی را نداشته‌اند. و به زمان‌بندی هم توجه کنید. تعطیل کردن یک دانشکدهٔ زبان یعنی شرط بستن بر اینکه انگلیسی برای همیشه پیروز شده و از این پس هیچ چیز خواندنی‌ای به زبان دیگری نوشته نخواهد شد. این شرط درست در بدترین لحظه بسته می‌شود، و از دو جهت. نخست از آن رو که ترجمهٔ ماشینی، برای نخستین بار، بی‌نیازی از زبان میانجی را ممکن می‌کند؛ دوم از آن رو که نظمی که انگلیسی را زبان پیش‌فرض کرده بود در حال عقب‌نشینی است: جهان انگلیسی‌زبان به درون خود می‌خزد، جهانی‌شدن فرو می‌نشیند، تجارت آزاد در زادگاه خودش زیر سؤال رفته و جهانی چندقطبی شکل می‌گیرد که در آن زبان‌های خواندنی چند برابر خواهند شد. دانشگاه‌ها پژوهشگرانی تربیت می‌کنند که فقط انگلیسی می‌خوانند، برای جهانی که در آن انگلیسی کافی نخواهد بود. نخستین وارثان این خسران، هیئت‌های تحریریه خواهند بود.&lt;/p&gt;
&lt;h2 id="آزمونی-برای-سردبیران"&gt;آزمونی برای سردبیران&lt;/h2&gt;
&lt;p&gt;وقتی هیئت تحریریه‌ای می‌نالد که نمی‌تواند صدای خودِ نویسندگانش را بشنود، شاید بخشی از مشکل در خودِ هیئت باشد.&lt;/p&gt;
&lt;p&gt;این اتهام سنگینی است و آزمونی به همان سنگینی با خود دارد. آیا &lt;em&gt;Progress in Human Geography&lt;/em&gt; مقاله‌ای را که به فرانسه، ایتالیایی یا ژاپنی نوشته شده و نسخه‌ای انگلیسیِ ماشینی‌ترجمه‌شده همراه دارد، به داوری می‌فرستد؟ راهنمای خودِ مجله خدمات «ترجمه»ای را که این کار را ممکن می‌کند به رسمیت شناخته است. پاسخ مثبت، مسئله را تمام می‌کند. پاسخ منفی به ما می‌گوید این سیاست در واقع از چه چیزی پاسداری می‌کند.&lt;/p&gt;
&lt;p&gt;به هر روی، انتخاب با سردبیران است. اگر صدا، چنان‌که مدعی‌اند، اهمیت دارد، مجله باید مقاله‌ها را به زبانی بپذیرد که نویسندگان به آن می‌اندیشند. اگر اهمیت ندارد، فرم اظهارنامه باید برود، و تهدیدها هم با آن.&lt;/p&gt;</description></item><item><title>tei-mcp v0.3: رمزگذاری TEI بدون بازنویسی متن مبدأ</title><link>https://clementgodbarge.com/fa/post/tei-mcp-span-locked/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/fa/post/tei-mcp-span-locked/</guid><description>&lt;p&gt;وقتی
، هدف این بود که
دستیارهای هوش مصنوعی از توهم در نشانه‌گذاری TEI باز بمانند. پایه‌گذاری بر شِما
بخشی از مشکل را حل کرد: با دسترسی مستقیم و ابزارمحور به مشخصات P5،
مدل دیگر ناچار نیست حدس بزند یک عنصر چه معنایی دارد یا کدام صفت‌ها را
می‌پذیرد. خروجی از اعتبارسنجی می‌گذرد.&lt;/p&gt;
&lt;p&gt;اما توهم در رمزگذاری TEI دو چهره دارد و شِما تنها یکی از آن‌ها را
می‌گیرد. اعتبارسنجی در برابر مشخصات به شما می‌گوید که &lt;em&gt;نشانه‌گذاری&lt;/em&gt;
خوش‌ساخت است. دربارهٔ &lt;em&gt;متنی&lt;/em&gt; که نشانه‌گذاری آن را در بر گرفته چیزی نمی‌گوید. و
همان‌جا — در خودِ متن — است که توهم‌های زیان‌بارتر لانه می‌کنند.
ترکیب بازه‌قفل (span-locked composition)، ویژگی شاخص نسخهٔ v0.3، دقیقاً
برای پیشگیری از همین‌ها طراحی شده است.&lt;/p&gt;
&lt;details class="print:hidden xl:hidden" &gt;
&lt;summary&gt;فهرست مطالب&lt;/summary&gt;
&lt;div class="text-sm"&gt;
&lt;nav id="TableOfContents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#توهمی-که-شما-نمیتواند-بگیرد"&gt;توهمی که شِما نمی‌تواند بگیرد&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ترکیب-بازهقفل"&gt;ترکیب بازه‌قفل&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#این-چه-هست-و-چه-نیست"&gt;این چه هست و چه نیست&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#چرا-فراتر-از-tei-هم-اهمیت-دارد"&gt;چرا فراتر از TEI هم اهمیت دارد&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#دریافت-بهروزرسانی"&gt;دریافت به‌روزرسانی&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;h2 id="توهمی-که-شما-نمیتواند-بگیرد"&gt;توهمی که شِما نمی‌تواند بگیرد&lt;/h2&gt;
&lt;p&gt;از مدلی بخواهید نامه‌ای فرانسوی از سدهٔ شانزدهم را رمزگذاری کند و اغلب
سند TEI‌ای تحویل می‌گیرید که بی‌عیب می‌نماید. سرآیند پر شده، برچسب‌های
&lt;code&gt;&amp;lt;persName&amp;gt;&lt;/code&gt; درست نشسته‌اند، &lt;code&gt;&amp;lt;dateline&amp;gt;&lt;/code&gt; خوش‌ساخت است. آن را از
&lt;code&gt;validate_document&lt;/code&gt; بگذرانید؛ قبول می‌شود.&lt;/p&gt;
&lt;p&gt;حالا بدنه را با متن مبدأ مقایسه کنید.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;mesme&lt;/code&gt; شده است &lt;code&gt;même&lt;/code&gt;. یک ویرگول جابه‌جا شده. &lt;code&gt;luy&lt;/code&gt; بی‌سروصدا به
&lt;code&gt;lui&lt;/code&gt; امروزی شده. جمله‌ای که در دست‌نویس دشوارخوان بود، به چیزی
پاکیزه‌تر «تصحیح» شده. هیچ‌یک از این تغییرها خواسته نشده بود.
هیچ‌یک علامت نخورده. سند از نظر شِما معتبر است و در سکوت غلط.&lt;/p&gt;
&lt;p&gt;برای گردش کار آرشیوی — که در آن متن رمزگذاری‌شده به سند دائمی‌ای بدل می‌شود
که خوانندگان بعدی، نمایه‌های جست‌وجو و ارجاع‌ها بر آن تکیه می‌کنند —
این همان خطایی است که بیش از همه اهمیت دارد. یک برچسب بدساخت آزاردهنده است.
املایی امروزی‌شده که پنج سال کسی متوجهش نشود، تحریف است.&lt;/p&gt;
&lt;h2 id="ترکیب-بازهقفل"&gt;ترکیب بازه‌قفل&lt;/h2&gt;
&lt;p&gt;نسخهٔ تازه (v0.3) سازوکاری برای پیشگیری از توهم دارد که یک‌راست
همین خطا را نشانه رفته است. هدف طراحی این است که توهم در متن بدنه
از حیث ساخت ناممکن شود، نه صرفاً نامحتمل.&lt;/p&gt;
&lt;p&gt;ایده ساده است: &lt;strong&gt;مدل هرگز متن بدنه را تایپ نمی‌کند&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;در عوض، گردش کار چنین است:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;مدل &lt;code&gt;get_source(&amp;quot;letter_001&amp;quot;)&lt;/code&gt; را فرا می‌خواند و متن سادهٔ مبدأ را
به‌صورت رشته‌ای تغییرناپذیر دریافت می‌کند.&lt;/li&gt;
&lt;li&gt;برای هر برچسبی که می‌خواهد به کار ببرد،
&lt;code&gt;tag_span(&amp;quot;letter_001&amp;quot;, start, end, element_path, attrs)&lt;/code&gt; را فرا می‌خواند — یعنی
یک عنصر TEI را در بازه‌ای از نویسه‌ها روی متن مبدأ ثبت می‌کند.&lt;/li&gt;
&lt;li&gt;وقتی کارش تمام شد، &lt;code&gt;compose(&amp;quot;letter_001&amp;quot;)&lt;/code&gt; را فرا می‌خواند. سرور
برچسب‌های ثبت‌شده را با متن سادهٔ اصلی درهم می‌بافد، TEI نهایی را می‌سازد
و سپس &lt;em&gt;بایت‌به‌بایت&lt;/em&gt; وارسی می‌کند که محتوای متنی تختِ سند
ساخته‌شده با متن مبدأ برابر است.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;اگر بایت‌ها یکی باشند، سند برمی‌گردد. اگر نباشند — اگر برچسب‌های مدل
به هر دلیلی بدنه‌ای را ایجاب کنند که حتی یک نویسه با مبدأ تفاوت دارد —
&lt;code&gt;compose()&lt;/code&gt; به جای تحویل سند تحریف‌شده، خطا می‌دهد.&lt;/p&gt;
&lt;p&gt;در این گردش کار هیچ مسیری وجود ندارد که مدل از آن سند TEI‌ای
بسازد که متن بدنه‌اش با مبدأ فرق کند. این ناوردا مکانیکی است،
نه رفتاری. لازم نیست به مدل اعتماد کنید که توهم نزند؛ کافی است
به یک مقایسهٔ &lt;code&gt;==&lt;/code&gt; میان دو رشتهٔ بایت اعتماد کنید.&lt;/p&gt;
&lt;h2 id="این-چه-هست-و-چه-نیست"&gt;این چه هست و چه نیست&lt;/h2&gt;
&lt;p&gt;ترکیب بازه‌قفل &lt;strong&gt;مکمل&lt;/strong&gt; پایه‌گذاری بر شِماست، نه جانشین آن.
ابزارهای پایه‌گذاری بر شِما (&lt;code&gt;validate_document&lt;/code&gt;،
&lt;code&gt;lookup_element&lt;/code&gt;، &lt;code&gt;valid_children&lt;/code&gt; و باقی شانزده ابزار اولیه)
به مدل کمک می‌کنند TEI &lt;em&gt;معتبر&lt;/em&gt; بسازد. ترکیب بازه‌قفل تضمین می‌کند
که متن بدنه درون آن TEI به مبدأ &lt;em&gt;وفادار&lt;/em&gt; است. یک گردش کار
رمزگذاریِ قابل استقرار باید هر دو محور را برآورده کند، و حالا هر دو
با یک سرور واحد پوشش داده می‌شوند.&lt;/p&gt;
&lt;p&gt;نوشدارویی برای همه چیز هم نیست. &lt;code&gt;compose()&lt;/code&gt; هنوز بررسی نمی‌کند
که برچسب‌های ثبت‌شده بر پایهٔ یک سفارشی‌سازی ODD بارگذاری‌شده مجازند یا نه —
این کار بعدی است. برچسب‌های ثبت‌شده در حافظهٔ فرایند می‌مانند و پس از
راه‌اندازی مجدد از بین می‌روند. و فایل‌های مبدأ باید از هر جا که سرور اجرا می‌شود
خواندنی باشند. همهٔ این‌ها چاره‌پذیرند؛ هیچ‌یک ناوردای اصلی را
سست نمی‌کند.&lt;/p&gt;
&lt;h2 id="چرا-فراتر-از-tei-هم-اهمیت-دارد"&gt;چرا فراتر از TEI هم اهمیت دارد&lt;/h2&gt;
&lt;p&gt;این الگو تعمیم‌پذیر است. هر بار که از مدلی خواسته می‌شود قطعه‌ای متن را حاشیه‌نویسی، تبدیل
یا بسته‌بندی کند — و هر بار که سلامت متن زیرین
مهم‌تر از توانایی مدل در «بهتر کردن» آن باشد — همین شکل از
راه حل کاربرد دارد. از مدل نخواهید متن را دوباره تایپ کند. از آن بخواهید
دستورالعمل‌هایی روی متن تولید کند، و بگذارید یک ترکیب‌کنندهٔ قطعی
آن‌ها را زیر ناوردای برابری اعمال کند.&lt;/p&gt;
&lt;p&gt;برای نسخه‌های دیجیتال به‌طور خاص، این تغییر می‌دهد که مسئولانه چه چیزی را
می‌توان به مدل سپرد. رمزگذاری ناگهان به کاری بدل می‌شود که می‌توان واگذارش کرد
بی‌آنکه ناچار باشید هر خروجی را دستی با مبدأ مقایسه کنید.
ماشین راه ملال‌آور را می‌رود؛ مصحح نشانه‌گذاری را بازبینی می‌کند، نه
املا را.&lt;/p&gt;
&lt;h2 id="دریافت-بهروزرسانی"&gt;دریافت به‌روزرسانی&lt;/h2&gt;
&lt;p&gt;اگر tei-mcp را از قبل نصب کرده‌اید:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uvx tei-mcp@latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;یا از نو:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;برای استفاده از ترکیب بازه‌قفل، سرور را به پوشه‌ای از فایل‌های متن سادهٔ
مبدأ نشانه بروید:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;TEI_MCP_SPAN_SOURCE_ROOT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/path/to/sources
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uvx tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;نام هر فایل بدون پسوند، شناسهٔ سند آن می‌شود (‎&lt;code&gt;letter_001.txt&lt;/code&gt; →
&lt;code&gt;letter_001&lt;/code&gt;‎).&lt;/p&gt;
&lt;p&gt;کد منبع، مستندات کامل و یادداشت‌های طراحی ناوردا:
&lt;/p&gt;</description></item><item><title>نسخهٔ دیجیتالی از گونه‌ای دیگر</title><link>https://clementgodbarge.com/fa/post/cavriana-edition/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/fa/post/cavriana-edition/</guid><description>&lt;p&gt;بیشتر منابع دست‌اول هرگز منتشر نمی‌شوند. الگویی که برای چاره کردن این وضع به آن تکیه می‌کنیم، یعنی نسخه‌های دیجیتال متکی به گرنت، گران‌تر، متمرکزتر و شکننده‌تر از آن است که در مقیاس بزرگ کار کند. همین تازگی
منتشر کردم و در آن توضیح دادم که چرا تصحیح انتقادی نامه‌های کاوریانا را به شیوه‌ای دیگر می‌سازم: اسناد دیجیتال‌شدهٔ منابع دست‌اول که به‌طور طبیعی رشد می‌کنند، با کمترین زیرساخت، نگهداری خودکار، گشوده به همکاری، و آن‌قدر ارزان که اصلاً به گرنتی نیاز نیست. این دفاعی است از گونه‌ای علوم انسانی دیجیتال که مستقل از پشتیبانی نهادی کار می‌کند.&lt;/p&gt;</description></item><item><title>tei-mcp: استاندارد TEI P5 برای عامل‌های هوش مصنوعی</title><link>https://clementgodbarge.com/fa/post/tei-mcp/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/fa/post/tei-mcp/</guid><description>&lt;p&gt;اگر تا به حال با یک دستیار برنامه‌نویسی هوش مصنوعی TEI XML نوشته باشید،
احتمالاً دیده‌اید که خراب می‌کند. عنصرها جایی ظاهر می‌شوند که نباید.
صفت‌هایی از خود ساخته می‌شوند. قواعد تودرتویی نادیده گرفته می‌شوند. مدل تصوری
تقریبی از شکل TEI دارد، اما هیچ شناخت قابل اعتمادی از مشخصات آن ندارد.&lt;/p&gt;
&lt;p&gt;tei-mcp این مشکل را با دادن دسترسی مستقیم و ابزارمحور به راهنمای TEI P5
به عامل‌های هوش مصنوعی حل می‌کند.&lt;/p&gt;
&lt;details class="print:hidden xl:hidden" &gt;
&lt;summary&gt;فهرست مطالب&lt;/summary&gt;
&lt;div class="text-sm"&gt;
&lt;nav id="TableOfContents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#mcp-چیست"&gt;MCP چیست؟&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#tei-mcp-چه-میکند"&gt;tei-mcp چه می‌کند&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#چرا-اهمیت-دارد"&gt;چرا اهمیت دارد&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#شروع-کار"&gt;شروع کار&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;h2 id="mcp-چیست"&gt;MCP چیست؟&lt;/h2&gt;
&lt;p&gt;
(MCP) استانداردی باز است
که به برنامه‌های هوش مصنوعی اجازه می‌دهد به منابع داده و ابزارهای بیرونی
وصل شوند. آن را چیزی مانند درگاه USB برای هوش مصنوعی تصور کنید: یک
پروتکل واحد که هر کلاینت سازگار — Claude، Cursor، Windsurf و دیگران —
را به خدمات تخصصی وصل می‌کند.&lt;/p&gt;
&lt;p&gt;یک سرور MCP &lt;em&gt;ابزارهایی&lt;/em&gt; را در اختیار می‌گذارد که هوش مصنوعی می‌تواند در جریان
گفت‌وگو فرا بخواند. مدل به جای تکیه بر داده‌های آموزشیِ به‌خاطرسپرده،
می‌تواند از منبعی زنده و معتبر پرس‌وجو کند.&lt;/p&gt;
&lt;h2 id="tei-mcp-چه-میکند"&gt;tei-mcp چه می‌کند&lt;/h2&gt;
&lt;p&gt;tei-mcp مشخصات ODD استاندارد TEI P5 را تجزیه می‌کند و 16 ابزار در اختیار می‌گذارد که
رایج‌ترین پرسش‌های یک مصحح یا رمزگذار را پوشش می‌دهند:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;این عنصر چیست؟&lt;/strong&gt; هر عنصر، کلاس، ماکرو یا پیمانه را با نام جست‌وجو کنید،
بدون حساسیت به حروف بزرگ و کوچک و با پیشنهاد اصلاح غلط‌های تایپی.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;چه صفت‌هایی می‌پذیرد؟&lt;/strong&gt; صفت‌ها را در سراسر سلسله‌مراتب کلاس‌ها تعیین کنید
— نخست صفت‌های محلی، سپس صفت‌های به‌ارث‌رسیده به ترتیب.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;چه چیزی می‌تواند درون آن قرار بگیرد؟&lt;/strong&gt; مدل‌های محتوا را به درخت‌های ساخت‌یافته بسط دهید،
یا فهرستی تخت از فرزندان مجاز بگیرید.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;آیا این عنصر می‌تواند اینجا بیاید؟&lt;/strong&gt; تودرتویی والد–فرزند را بررسی کنید، یا
دسترس‌پذیری را در تمام سلسله‌مراتب عنصرها ردیابی کنید.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;آیا سند من معتبر است؟&lt;/strong&gt; یک فایل TEI XML را در برابر مشخصات اعتبارسنجی کنید: مدل‌های
محتوا، مقادیر صفت‌ها، فهرست‌های بستهٔ مقادیر، یکپارچگی ارجاع‌ها و
هشدارهای منسوخ‌شدگی.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;شِمای پروژهٔ من چه می‌شود؟&lt;/strong&gt; یک فایل سفارشی‌سازی ODD بارگذاری کنید تا
همهٔ موارد بالا به زیرمجموعهٔ خاص TEI در پروژهٔ شما محدود شود.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="چرا-اهمیت-دارد"&gt;چرا اهمیت دارد&lt;/h2&gt;
&lt;p&gt;رمزگذاری TEI مراجعهٔ مدام به راهنما را می‌طلبد. رمزگذاران باتجربه
رایج‌ترین الگوها را از بر می‌کنند، اما حتی آنان هم برای عنصرهای کمتر آشنا
یا مدل‌های محتوای پیچیده باید به مشخصات رجوع کنند. برای دستیارهای هوش
مصنوعی، که چنین دانش درونی‌شده‌ای ندارند، مشکل بدتر است:
نشانه‌گذاری‌ای می‌سازند که موجه می‌نماید اما نادرست است.&lt;/p&gt;
&lt;p&gt;با tei-mcp، هوش مصنوعی ناچار به حدس زدن نیست. می‌تواند پیش از نوشتن حتی یک
براکت زاویه‌دار، پاسخ را در مشخصات بیابد. نتیجه، نشانه‌گذاری‌ای است
که با TEI P5 — یا با سفارشی‌سازی ODD پروژهٔ شما — سازگار است.&lt;/p&gt;
&lt;h2 id="شروع-کار"&gt;شروع کار&lt;/h2&gt;
&lt;p&gt;از PyPI نصب کنید:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;سپس آن را به پیکربندی کلاینت MCP خود بیفزایید:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;mcpServers&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;tei&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;uvx&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;tei-mcp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;سرور در نخستین اجرا مشخصات TEI را دانلود می‌کند و با هر کلاینت
سازگار با MCP کار می‌کند.&lt;/p&gt;
&lt;p&gt;کد منبع و مستندات کامل:
&lt;/p&gt;</description></item><item><title>جغرافیای ادراکی لِوانته</title><link>https://clementgodbarge.com/fa/post/levante/</link><pubDate>Sat, 29 Oct 2022 10:02:52 -0500</pubDate><guid>https://clementgodbarge.com/fa/post/levante/</guid><description>&lt;h1 id="مقدمه"&gt;مقدمه&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;لوانته&lt;/em&gt; جایی گریزپاست. چون معمولاً در نسبت با سرزمینی دیگر — یا در تقابل با آن — تعریف می‌شود، معنایش کمتر ثابت مانده و بسته به زمان و مکانِ کاربرد، جغرافیاهای متفاوتی را به ذهن آورده است. اما اگر تعریفی عینی و دقیق از این اصطلاح به‌دشواری به دست می‌آید، هنوز می‌توان امید داشت که نقشه‌ای ذهنی از آن منطقه ترسیم کرد، بر پایهٔ همبستگی‌هایی که در پیکره‌ای معین از متن‌ها وجود دارد. به بیان دیگر، &lt;em&gt;لوانته&lt;/em&gt; برای گروه خاصی از خوانندگان چه فضایی را تداعی می‌کرد؟&lt;br&gt;
در این یادداشت نشانتان می‌دهم که چگونه می‌توان با داده‌های
پروژهٔ آرشیو مدیچی
مکان‌های مشخصی را که این جای‌نام با آن‌ها همراه می‌شد به تصویر کشید.&lt;/p&gt;
&lt;h1 id="پایگاه-mia"&gt;پایگاه MIA&lt;/h1&gt;
&lt;p&gt;پایگاه MIA بستری مشارکتی است برای پژوهشگرانی که می‌خواهند عکس‌های خود از اسناد آرشیوی
را بارگذاری و به اشتراک بگذارند. در سال گذشته، و زیر چتر
، گروه ما هزاران سند از بخش &lt;em&gt;avvisi&lt;/em&gt; در فوند &lt;em&gt;Mediceo del Principato&lt;/em&gt; در فلورانس را عکس‌برداری، بازنویسی، خلاصه و دسته‌بندی کرده است. پایگاه ما در اصل برای تحلیل آماری ساخته نشده، اما فراداده‌هایی که در دسترس گذاشته‌ایم را همچنان می‌توان دانلود کرد و به‌عنوان مجموعه‌داده به کار برد.&lt;/p&gt;
&lt;h1 id="مجموعه-داده"&gt;مجموعهٔ داده&lt;/h1&gt;
&lt;p&gt;در این مورد، مجموعه‌داده‌ای که ساختم همهٔ اخبار &lt;em&gt;لوانته&lt;/em&gt; از 1543 تا 1566 را در بر می‌گیرد؛ یعنی از نخستین avviso ثبت‌شده در آرشیو تا سال مرگ سلطان
. این هم نمونه‌ای از داده‌هایی که از سرور استخراج کردم. داده‌ها سه ستون دارند: شمارهٔ یکتای سند، یک جای‌نام و یک تاریخ.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csv" data-lang="csv"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57386 Malta / Europe / World / Top of the TGN hierarchy 1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57386 Modon / Messinias&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt; Nomos / Peloponnisos / Ellas 1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57386 Al-Iskandariyah / Muhafazat al Iskandariyah / Egypt / Africa 1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57386 Evvoia / Evvoias&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt; Nomos / Sterea Ellas-Evvoia / Ellas 1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57386 Venetian Republic / Italia / Europe / World 1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57386 Arsenale / Istanbul / Istanbul / Marmara 1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57386 Black Sea / Asia / World / Top of the TGN hierarchy 1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389 Otranto / Lecce / Puglia / Italia 1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389 Nisoi Aiyaiou / Ellas / Europe / World 1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389 Malta / Europe / World / Top of the TGN hierarchy 1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389 Buda / Budapest / Budapest / Magyarorszag 1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389 Al-Iskandariyah / Muhafazat al Iskandariyah / Egypt / Africa 1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389 Kipros / Asia / World / Top of the TGN hierarchy 1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389 Rodhos / Rodos&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt; Nisos / Sporadhes / Nisoi Aiyaiou 1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389 Arsenale / Istanbul / Istanbul / Marmara 1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389 Çorlu / Thraki / Ellas / Europe 1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="پاکسازی-دادهها"&gt;پاک‌سازی داده‌ها&lt;/h2&gt;
&lt;p&gt;برای مصورسازی این داده‌ها باید آن‌ها را به‌صورت مجموعه‌داده‌ای csv (مقادیر جداشده با ویرگول) خوانا کنیم. همچنین باید اطلاعات جغرافیایی موجود در آن را به قالبی «ماشین‌پسندتر» برگردانیم: مختصات GPS. چون مجموعه‌داده صدها مدخل دارد، بهتر است این کار را خودکار کنیم. این کار را می‌توان نسبتاً سریع و با دقت خوبی با مدل‌های زبانی پیش‌آموخته‌ای مانند
،
یا
، و چند نمونهٔ دیگر، انجام داد. البته این عملیات باید زیر نظارت دقیق باشد، چون مدل‌های زبانی پیش‌آموخته اندکی به توهم گرایش دارند.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csv" data-lang="csv"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;documentId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;latitude&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;longitude&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;documentDate&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57386&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;35.899167&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;14.514167&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57386&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;37.05&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;22.116667&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57386&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;31.200028&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;29.918719&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57386&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;38.366667&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;23.666667&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57386&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;45.438333&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;12.331333&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57386&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;41.018611&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;28.984444&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57386&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;42.7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;18.8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;40.216667&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;18.166667&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;37.966667&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;23.716667&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;35.899167&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;14.514167&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;47.4925&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;19.051389&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;31.200028&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;29.918719&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;34.916667&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;33.616667&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;36.405419&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;28.227778&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;41.018611&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;28.984444&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;57389&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;41.133333&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;27.416667&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;1565-1-3&lt;/span&gt;&lt;span class="p"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="نقشه-چگالی"&gt;نقشهٔ چگالی.&lt;/h1&gt;
&lt;p&gt;نقشهٔ چگالی گونه‌ای مصورسازی است که بسامد یادکرد هر مکان را در مجموعه‌داده‌ای معین برجسته می‌کند. این نقشه به‌ویژه برای فهم نه‌فقط گسترهٔ جغرافیایی داده‌ها، بلکه کانون‌های آن‌ها سودمند است. کدام مکان‌های نقشه بیشتر یاد می‌شوند؟ و کدام‌ها گاه‌به‌گاه؟ مرکزها کجایند و پیرامون تا کجا می‌رود؟ توجه خواننده بیش از همه بر کدام نقطهٔ نقشه متمرکز می‌شود؟&lt;/p&gt;
&lt;iframe width='100%' height='600px' src="https://api.mapbox.com/styles/v1/clemclem/cl9q7c77p004y14mqytjrfnex.html?title=false&amp;access_token=pk.eyJ1IjoiY2xlbWNsZW0iLCJhIjoiY2lmbGpvbjMwZjh3NnJ5bHg4ZzkzeWZzeCJ9.IgOF4fphVbsWAIKyzAV-DQ&amp;zoomwheel=false#3.83/43.29/33.61" title="Levante" style="border:none;"&gt;&lt;/iframe&gt;
&lt;p&gt;برای این آزمایش — و چون عجله داشتم — از یکی از APIهای
استفاده کردم. اما بسیاری از کتابخانه‌های مصورسازی و سامانه‌های اطلاعات جغرافیایی همین نوع نقشهٔ چگالی را می‌سازند.&lt;/p&gt;
&lt;h1 id="چند-مشاهده"&gt;چند مشاهده&lt;/h1&gt;
&lt;p&gt;نتیجه بیش از آنکه بازنمایی دقیقِ مفهومی روشن و تعریف‌پذیر باشد، تابلویی امپرسیونیستی است، و همین دقیقاً چیزی است که در این آزمایش دوست دارم. راستش،
&lt;mark&gt;علم داده می‌تواند متحد نیرومندی برای علوم انسانی باشد، اما ما لزوماً ناچار نیستیم از قواعد آن پیروی کنیم.&lt;/mark&gt;
&lt;/p&gt;
&lt;p&gt;جنبهٔ جالب دیگر این آزمایش آن است که نقشه &lt;em&gt;لوانته&lt;/em&gt;ای را آشکار می‌کند که کاملاً با باقی اروپا و مدیترانه درآمیخته است. همچنین بر مرکزیت ادرنه در جغرافیای سیاسی امپراتوری عثمانی نور می‌اندازد. از این گذشته، مهم‌ترین شهر اسپانیا در این نقشه نه مادرید است و نه اسکوریال، بلکه ناپل است. و سرانجام، جزیره‌ها و دولت‌شهرهای کوچکی مانند راگوزا گویا نقش مهمی در میانجی‌گری میان قدرت‌های گوناگون منطقه داشته‌اند.&lt;/p&gt;
&lt;h1 id="چگونه-از-mia-داده-بگیریم"&gt;چگونه از MIA داده بگیریم&lt;/h1&gt;
&lt;p&gt;MIA ابزار مشارکتی برجسته‌ای برای پژوهشگران است، اما داده‌هایی که در سرورهایش نگه می‌دارد به‌آسانی در دسترس نیست. مثلاً بک‌اند آن در مخازن عمومی منتشر نشده است. با این حال، می‌توانید با ثبت‌نام در MIA و ارسال درخواست به سرور با python داده‌ها را به دست آورید.&lt;/p&gt;
&lt;h3 id="درخواست"&gt;درخواست&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://mia.medici.org/Mia/json/de/advancedsearch/advancedSearchResults/0/90/docYear/asc/?isNewsFeedSearch=False&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;searchSection&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;archivalLocationSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;archivalLocationAdvancedSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;isActiveFilter&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;repository&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;collection&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Mediceo del Principato&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;series&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;volume&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;2863&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;insert&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;},{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;searchSection&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;categoryAndTypologySearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;categoryAndTypologyAdvancedSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;isActiveFilter&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;category&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;News&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;typology&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;},{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;searchSection&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;transcriptionSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;transcriptionAdvancedSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;isActiveFilter&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;transcription&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;},{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;isActiveFilter&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;searchSection&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;synopsisSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;synopsisAdvancedSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;synopsis&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;},{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;searchSection&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;placesSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;placesAdvancedSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;isActiveFilter&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;places&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:[]},{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;searchSection&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;peopleSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;peopleAdvancedSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;isActiveFilter&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;people&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:[]},{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;searchSection&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;topicsSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;topicsAdvancedSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;isActiveFilter&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;topics&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:[{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;topicTitle&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Place Index&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;topicId&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;51&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;placeAllId&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;}]},{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;searchSection&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;dateSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;dateAdvancedSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;isActiveFilter&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;dateFilterType&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;dateYear&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;dateMonth&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;dateDay&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;dateBYear&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;dateBMonth&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;dateBDay&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;},{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;searchSection&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;documentOwnerSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;documentOwnerAdvancedSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;isActiveFilter&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;editType&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;owner&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;account&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;},{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;searchSection&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;languagesSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;languagesAdvancedSearch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;isActiveFilter&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;languages&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:[]}]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Content-type&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;application/json&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Accept&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;*/*&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;auth&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;LOGIN&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;PASSWORD&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;فراموش نکنید LOGIN و PASSWORD را با اطلاعات کاربری خودتان جایگزین کنید.&lt;/p&gt;
&lt;h3 id="نوشتن-پاسخ-در-فایل"&gt;نوشتن پاسخ در فایل&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;response.json&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;wb&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;fd&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iter_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;chunk_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;fd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;chunk&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="باز-کردن-json"&gt;باز کردن JSON&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;response.json&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;encoding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;utf8&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="برگرداندن-شیء-json-بهصورت-دیکشنری"&gt;برگرداندن شیء JSON به‌صورت دیکشنری&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;json_complete&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="گزینش-دادهها-از-json-و-چاپ-آنها-در-قالب-csv"&gt;گزینش داده‌ها از JSON و چاپ آن‌ها در قالب CSV&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;results.csv&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;w&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;newline&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;csvfile&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;fieldnames&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;documentId&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;placeCited&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;documentDate&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;csv&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DictWriter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;csvfile&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fieldnames&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;fieldnames&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;writeheader&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;json_complete&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;data&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;topics&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;topics&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;documentId&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;documentId&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;placeCited&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;topicPlaceName&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;date&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;docYear&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;date&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;docMonth&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;date&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;docDay&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;documentDate&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;-&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;-&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;writerow&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;documentId&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;documentId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;placeCited&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;placeCited&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;documentDate&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;documentDate&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;پس از دانلود فایل &lt;code&gt;results.csv&lt;/code&gt;، می‌توانید داده‌ها را به روشی که در بالا گفته شد پاک‌سازی کنید.&lt;/p&gt;</description></item><item><title>تجزیهٔ کتاب‌شناختی در مقیاس بزرگ با مدل‌های زبانی پیش‌آموخته</title><link>https://clementgodbarge.com/fa/post/bibliography/</link><pubDate>Thu, 07 Jul 2022 19:04:14 +0200</pubDate><guid>https://clementgodbarge.com/fa/post/bibliography/</guid><description>&lt;p&gt;خودکارسازی کلید کاهش هزینهٔ پروژه‌های علوم انسانی دیجیتال است. تا امروز، کارهای تکراری و ملال‌آور تصحیح در محیط‌های دانشگاهی یا با هزینهٔ گزاف بر دوش پژوهشگرانِ غرق در کار افتاده، یا به دانشجویان «برون‌سپاری» شده است. در این
استدلال می‌کنم که بیشتر این کارهای ناسپاس نه‌فقط &lt;em&gt;می‌توانند&lt;/em&gt;، بلکه &lt;em&gt;باید&lt;/em&gt; خودکار شوند. خودکارسازی کارهای تصحیح هزینهٔ کلی پروژه‌های علوم انسانی دیجیتال را پایین می‌آورد. و مهم‌تر از آن، به پژوهشگران مناطق کم‌درآمد امکان می‌دهد اسناد ارزشمند را سریع و ارزان منتشر کنند.&lt;/p&gt;
&lt;p&gt;در
برای نمونه نشان دادم که مدل‌های زبانی پیش‌آموخته چگونه می‌توانند بیشتر کار برچسب‌زنی XML یک نسخهٔ دیجیتال را بر عهده بگیرند.&lt;/p&gt;
&lt;p&gt;در این یادداشت نمونهٔ دومی می‌آورم، این بار با کتاب‌شناسی.&lt;/p&gt;
&lt;h2 id="مسئله"&gt;مسئله&lt;/h2&gt;
&lt;p&gt;ساختن یک پایگاه‌دادهٔ کتاب‌شناختی از ارجاع‌های یک مقالهٔ علمی کار چندان پیچیده‌ای نیست. می‌توان در فهرستی مانند
جست‌وجویی سریع کرد و ارجاع را در قالبی مشخص دانلود کرد، یا آن را خودکار از پایگاه‌داده‌ای محلی وارد کرد. این روش برای یکی دو مقاله خوب جواب می‌دهد.
اما از شمار معینی ارجاع به بعد، کار خشک و وقت‌گیر می‌شود. برای چاره، می‌توان از الگوریتم‌های تجزیه مانند
کمک گرفت. اما مقیاس دادن به این الگوریتم‌ها دشوار است.
وقتی anystyle را برای تبدیل بیش از 150 جستار علمیِ گنجانده‌شده در
به کار بردم، حجم خطاهای انباشته به‌سادگی مدیریت‌شدنی نبود. بسیاری از منابع ما را درست تشخیص نداد؛ مثلاً عنوان‌های بلند کتاب‌های اوایل دورهٔ مدرن را با چیز دیگری اشتباه گرفت، و اسناد کمتر متعارف مانند صفحه‌های وب خاص، ویدئوهای آنلاین و مانند این‌ها را نشناخت. تجزیه‌گرها به شرطی خوب کار می‌کنند که نویسنده مو به مو از قواعد یک شیوه‌نامهٔ شناخته‌شده مانند Chicago، Turabian یا MLA پیروی کند. هر انحرافی از هنجار به خطا می‌انجامد.&lt;/p&gt;
&lt;h2 id="راه-حل"&gt;راه حل&lt;/h2&gt;
&lt;p&gt;اینجاست که
&lt;mark&gt;مدل‌های زبانی پیش‌آموخته&lt;/mark&gt;
به کار می‌آیند، چون
&lt;mark&gt;الگوهای هر سبک کتاب‌شناختی را به‌سرعت درمی‌یابند&lt;/mark&gt;
، حتی سبکی که خودتان ابداع کرده باشید، و تنها با چند مثال، حجم بزرگی از کتاب‌شناسیِ قالب‌بندی‌شده را به‌درستی به
برمی‌گردانند.&lt;/p&gt;
&lt;p&gt;در اوایل 2021 این بخت را داشتم که به
شرکت OpenAI دسترسی زودهنگام پیدا کنم. Codex مدلی است که به کاربران امکان می‌دهد زبان طبیعی را به کد ترجمه کنند و برعکس. OpenAI مدعی است این مدل در بیش از ده‌دوازده زبان برنامه‌نویسی چیره‌دست است، و هرچند API آن در زمان نوشتن این یادداشت هنوز به‌صورت بتا در دسترس است، همین حالا موتور برنامه‌های محبوبی مانند
گیت‌هاب است.&lt;/p&gt;
&lt;p&gt;پس از کمی ور رفتن با این API، دریافتم که با کدهای ساده‌تری مانند &lt;code&gt;BibTeX&lt;/code&gt; هم بسیار خوب کار می‌کند.&lt;/p&gt;
&lt;p&gt;و در واقع تنها با چهار مثال در پرامپت ورودی توانستم آن را به‌طور قابل اعتمادی به کار بیندازم.&lt;/p&gt;
&lt;h3 id="پرامپت-ورودی"&gt;پرامپت ورودی&lt;/h3&gt;
&lt;p&gt;References:
Bayle, Ariane. “Patients exemplaires: la correspondance médicale de Fioravanti.” In &lt;em&gt;Vulgariser la médecine. Du style médical en France et en Italie&lt;/em&gt;, edited by Andrea Carlino and Michel Jeanneret, 181–212. Geneva: Droz, 2009.&lt;/p&gt;
&lt;p&gt;Berns, Andrew D. &lt;em&gt;The Bible and Natural Philosophy in Renaissance Italy: Jewish and Christian Physicians in Search of Truth&lt;/em&gt;. Cambridge: Cambridge University Press, 2015.&lt;/p&gt;
&lt;p&gt;Gabler, Hans Walter. “Theorizing the Digital Scholarly Edition.” &lt;em&gt;Literature Compass&lt;/em&gt; 7, no. 2 (2010): 43–56.
.&lt;/p&gt;
&lt;p&gt;Findlen, Paula. &lt;em&gt;Possessing Nature: Museums, Collecting, and Scientific Culture in Early Modern Italy&lt;/em&gt;. Berkeley: University of California Press, 1994.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-BibTeX" data-lang="BibTeX"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nc"&gt;@incollection&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;bayle2009&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Bayle, Ariane}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;booktitle&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Vulgariser la médecine. Du style médical en France et en Italie}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Patients exemplaires: la correspondance médicale de Fioravanti}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;editor&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Carlino, Andrea and Michel Jeanneret}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;year&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{2009}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;address&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Geneva}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;publisher&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Droz}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;langid&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{french}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nc"&gt;@book&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;berns2015&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{The Bible and Natural Philosophy in Renaissance Italy: Jewish and Christian Physicians in Search of Truth}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Berns, Andrew D.}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;address&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Cambridge}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;publisher&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Cambridge University Press}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;langid&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{english}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;date&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{2015}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nc"&gt;@article&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;gabler2010&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Gabler, Hans Walter}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Theorizing the Digital Scholarly Edition}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;journal&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Literature Compass}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;volume&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{7}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;number&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{2}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;pages&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{43-56}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;doi&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{10.1111/j.1741-4113.2009.00675.x}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;langid&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{english}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;year&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{2010}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nc"&gt;@book&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;findlen1994&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Possessing Nature: Museums, Collecting, and Scientific Culture in Early Modern Italy}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Findlen, Paula}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;address&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Berkeley}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;publisher&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{University of California Press}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;langid&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{english}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;date&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{1994}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="نتایج"&gt;نتایج&lt;/h3&gt;
&lt;p&gt;
&lt;mark&gt;چشمگیر است: بیش از 2,000 ارجاع کتاب‌شناختی ظرف چند روز تبدیل شد.&lt;/mark&gt;
این رویکرد نه‌فقط الگوی پرامپت ورودی مرا دقیق بازتولید کرد، بلکه انواع مدخل و فیلدهایی را هم که در پرامپت ورودی نبودند به‌درستی افزود. به عبارت دیگر، &lt;code&gt;GPT-3&lt;/code&gt; به &lt;code&gt;BibTeX&lt;/code&gt; کاملاً مسلط است. و شاید شگفت‌انگیزتر، برای مدلی که اساساً به انگلیسی آموزش دیده، همهٔ زبان‌ها (روسی، فرانسوی، ایتالیایی، لاتین، یونانی، آلمانی، اسپانیایی و جز این‌ها) را تشخیص داد و هر بار فیلد &lt;code&gt;langid&lt;/code&gt; درست را افزود.&lt;/p&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;نکته&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;GPT-3 در حال حاضر اندازهٔ ورودی و خروجی محدودی دارد و حداکثر 2048 توکن زبانی را پردازش می‌کند. به محض برداشته شدن این محدودیت، همین کار احتمالاً یک ساعت یا کمتر طول خواهد کشید.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;تا حدی غیرمنتظره، GPT-3 اطلاعاتی را هم افزود که در ارجاع‌های اصلی نبود.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;Baillot, Anne, and Anna Busch. “Editing for Man and Machine.” In &lt;em&gt;Users of Scholarly Editions: Editorial Anticipations of Reading, Studying and Consulting&lt;/em&gt;, Vol. 13. Variants (Journal of the European Society for Textual Scholarship). Leicester, 2015.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;در این ارجاع کتاب‌شناختی، برای نمونه، GPT-3 پیوند دائمی مخزن دسترسی آزاد (
) را که مقاله در آن خواندنی است افزود، همراه با فیلدهای اختصاصی &lt;code&gt;HAL_ID&lt;/code&gt; و &lt;code&gt;HAL_VERSION&lt;/code&gt; که مخزن HAL ساخته است:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-BibTeX" data-lang="BibTeX"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nc"&gt;@inproceedings&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;baillot2015&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Editing for Man and Machine}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Baillot, Anne and Busch, Anna}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;year&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;2015&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;booktitle&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Users of Scholarly Editions: Editorial Anticipations of Reading, Studying and Consulting}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;address&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Leicester}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;series&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Variants (Journal of the European Society for Textual Scholarship)}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;volume&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;13&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;editor&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Bruhn, Siglinde and Schreiber, Manfred}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;langid&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{english}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;hal_id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{halshs-01233380}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;hal_version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{v1}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;این افزوده‌ها نشان می‌دهند که
&lt;mark&gt;GPT-3 تنها ارجاع کتاب‌شناختی را تجزیه نمی‌کند، بلکه آن را بر پایهٔ آنچه در آموزش اولیه آموخته تکمیل هم می‌کند.&lt;/mark&gt;
از این نظر جالب خواهد بود ببینیم با ارجاع‌هایی که تاریخشان پس از آموزش GPT-3 است نیز همین رفتار را دارد یا نه&amp;hellip;&lt;/p&gt;
&lt;h2 id="محدودیتها"&gt;محدودیت‌ها&lt;/h2&gt;
&lt;p&gt;با این حال GPT-3 بی‌عیب نیست و به نظارت انسانی نیاز دارد. یکی از محدودیت‌های شناخته‌شده‌اش
است: گاهی چیزهایی از خود می‌سازد و فرض‌های نامحتملی می‌کند.&lt;/p&gt;
&lt;p&gt;در آزمایش من، ناسازگاری‌های GPT-3 آنجا آشکار شد که خودسرانه نام خانوادگی نویسنده‌ای را از «Ruscelli» به «Ruscello» تغییر داد. این از نظر فنی خطا نیست، چون نام‌های خانوادگی ایتالیایی در اوایل دورهٔ مدرن را می‌شد بی‌تفاوت به صورت جمع یا مفرد به کار برد. اما قرارداد امروز این است که نام خانوادگی، جمع باشد یا مفرد، همان‌طور که هست نگه داشته شود. امروز هیچ‌کس ماکیاوللی را ماکیاوللو نمی‌خواند، همان‌طور که از ما انتظار می‌رود به جای Rosselli بگوییم Rossello. آیا GPT-3 این قرارداد را از سر بی‌خبری از گاه‌شماری نادیده گرفته؟ یا بر پایهٔ نام‌های خانوادگی همسایه، که در این بخش از کتاب‌شناسی همگی اتفاقاً مفردند (Bariletto، Cesano، Rossello)، فرضی کرده است؟
که می‌داند.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-Bibtex" data-lang="Bibtex"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nc"&gt;@book&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;rossello1565&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Della summa de’ secreti universali}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Rossello, Timoteo}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;address&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Venice}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;publisher&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Giovanni Bariletto}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;langid&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{italian}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;date&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{1565}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nc"&gt;@book&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;ruscello1559&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{La seconda parte de’ secreti del Reverendo Donno Alessio Piemontese}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Ruscello, Girolamo}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;address&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Pesaro}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;publisher&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Bartolomeo Cesano}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;langid&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{italian}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;date&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{1559}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="نتیجهگیری"&gt;نتیجه‌گیری&lt;/h2&gt;
&lt;p&gt;بیش از 150 جستارِ
، که حاصل چهار سال همکاری فشرده است، نه‌فقط اطلاعات حیاتی‌ای دربارهٔ دست‌نویسی که تصحیح و ترجمه کردیم به دست می‌دهند، بلکه اطلاعات کتاب‌شناختی ارزشمندی نیز در خود دارند.&lt;/p&gt;
&lt;p&gt;گرد آوردن این ارجاع‌های کتاب‌شناختی در یک پایگاه‌داده به مصححان امکان می‌دهد قالب کتاب‌شناسی را در چشم‌به‌هم‌زدنی تغییر دهند و این اطلاعات را هر طور که می‌خواهند نمایش دهند. این پایگاه‌داده اطلاعات ارزشمندی نیز دربارهٔ نسخه و پروژه‌ای که آن را ممکن ساخت به دست می‌دهد و چشم‌اندازهای تحلیلی تازه‌ای پیش روی پژوهشگران می‌گشاید. چنین پایگاه‌داده‌ای را می‌توان با دقتی بالا و در زمانی بی‌سابقه تکمیل کرد.&lt;/p&gt;
&lt;p&gt;البته ممکن است خطاهایی رخنه کنند، به‌ویژه به سبب گرایش GPT-3 به توهم. اما نسل‌های آیندهٔ مدل‌های زبانی پیش‌آموخته این مشکل را کاهش خواهند داد.&lt;/p&gt;</description></item><item><title>خودکارسازی نشانه‌گذاری در نسخه‌های علمی دیجیتال</title><link>https://clementgodbarge.com/fa/post/gpt3/</link><pubDate>Mon, 22 Nov 2021 18:15:00 +0000</pubDate><guid>https://clementgodbarge.com/fa/post/gpt3/</guid><description>&lt;h1 id="مقدمه"&gt;مقدمه&lt;/h1&gt;
&lt;p&gt;چگونه می‌توان نسخه‌های علمی دیجیتال را بی‌آنکه خزانه را خالی کند تولید کرد؟ در این یادداشت، که نخستین از سلسله‌یادداشت‌هایی دربارهٔ تصحیح کارآمد است، نقشی را می‌سنجم که مدل‌های زبانی پیش‌آموخته می‌توانند در خودکارسازی کارهای تصحیح، از جمله نشانه‌گذاری معنایی، ایفا کنند.&lt;/p&gt;
&lt;details class="print:hidden xl:hidden" &gt;
&lt;summary&gt;فهرست مطالب&lt;/summary&gt;
&lt;div class="text-sm"&gt;
&lt;nav id="TableOfContents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#کار-عاشقانه"&gt;کار عاشقانه&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#آستانهای-بلند"&gt;آستانه‌ای بلند&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#ترنسفورمرها-سادهترین-راه-خودکارسازی"&gt;ترنسفورمرها: ساده‌ترین راه خودکارسازی؟&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#codex"&gt;Codex&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#فراتر-از-openai"&gt;فراتر از OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#آزمایش-1--دستهبندی-متن"&gt;آزمایش 1 &amp;ndash; دسته‌بندی متن.&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#مهندسی-پرامپت"&gt;مهندسی پرامپت&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#آزمون"&gt;آزمون&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#نتیجه"&gt;نتیجه&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#آزمایش-2--نشانهگذاری-معنایی"&gt;آزمایش 2 &amp;ndash; نشانه‌گذاری معنایی&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#مهندسی-پرامپت-1"&gt;مهندسی پرامپت&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#آزمون-1"&gt;آزمون&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;h1 id="مسئله"&gt;مسئله&lt;/h1&gt;
&lt;h2 id="کار-عاشقانه"&gt;کار عاشقانه&lt;/h2&gt;
&lt;p&gt;در کار عشق حساب و کتاب نمی‌کنند&amp;hellip; یا دست‌کم ضرب‌المثل قدیمی چنین می‌گوید. این حرف دربارهٔ نسخه‌های علمی دیجیتال به‌ویژه صادق است، چرا که بازنویسی، ترجمه و حاشیه‌نویسیِ لازم برای ساختن آن‌ها هزاران ساعت کار می‌طلبد؛ کاری که در مورد
صدها همکار بسیار متخصص بر عهده گرفتند.&lt;/p&gt;
&lt;p&gt;از یک نظر، اینکه پروژه‌های پرآوازهٔ علوم انسانی دیجیتال می‌توانند بودجه‌های هنگفتِ لازم برای ادامهٔ کار را به دست آورند، موهبتی است. اما اتکای سنگین به دست‌ودل‌بازی بنیادهای ثروتمند، دانشگاه‌ها و نهادهای دولتی، و نیاز درازمدت به نیروی انسانی فراوان، الگوی اقتصادی پایداری برای آینده نیست.&lt;/p&gt;
&lt;p&gt;در واقع، اگر می‌خواهیم پژوهشگران سراسر جهان را تشویق کنیم که اسناد تاریخی را در دسترس عموم بگذارند،
&lt;mark&gt;هزینهٔ تصحیح‌های انتقادی دیجیتال باید چندین مرتبهٔ بزرگی کاهش یابد&lt;/mark&gt;
.&lt;/p&gt;
&lt;h2 id="آستانهای-بلند"&gt;آستانه‌ای بلند&lt;/h2&gt;
&lt;p&gt;شاید کمی تناقض‌آمیز بنماید، اما
&lt;mark&gt;راه حل چه بسا از دل همین پروژه‌های پرزحمت مانند
بیرون بیاید، زیرا این‌ها مجموعهٔ آموزشی ارزشمندی‌اند&lt;/mark&gt;
برای خودکار کردن برخی از خشک‌ترین و تکراری‌ترین کارهای تصحیح دیجیتال، از جمله نشانه‌گذاری.&lt;/p&gt;
&lt;p&gt;نه اینکه نشانه‌گذاری بی‌اهمیت باشد. برعکس،
&lt;mark&gt;نشانه‌گذاری به جزء جدایی‌ناپذیر هر پروژهٔ علمی دیجیتالِ جدی بدل شده است.&lt;/mark&gt;
این کار، که
آن را استاندارد کرده، به ما امکان می‌دهد تا آنجا که ممکن است جنبه‌های سند و متنی را که سند حامل آن است ثبت کنیم: ساختار، حاشیه‌نوشته‌ها، خط‌خوردگی‌ها، نسخه‌بدل‌ها، نوع کاغذ، لکه‌ها، خوشنویسی&amp;hellip; هر چه بخواهید.&lt;/p&gt;
&lt;p&gt;نمونهٔ زیر، برگرفته از
، نشان می‌دهد که نشانه‌گذاری چگونه متن را با اطلاعات افزوده (مقوله، ساختار، حوزه‌های معنایی، خط‌خوردگی‌ها و جز آن) غنی می‌کند و در نهایت به نسخه‌های دیجیتال برتری چشمگیری بر نیاکان کاغذی‌شان می‌بخشد.&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Plain Text &lt;/th&gt;
&lt;th&gt; XML Markup&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Pour rompre grenades et donner
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;violence aux artifices de foeu
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Mects parmy la pouldre et la sixiesme
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;partye dicelle de vif argent
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;p008r_2&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;categories=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;arms and armor&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;Pour rompre &lt;span class="nt"&gt;&amp;lt;wp&amp;gt;&lt;/span&gt;grenades&lt;span class="nt"&gt;&amp;lt;/wp&amp;gt;&lt;/span&gt; et donner&lt;span class="nt"&gt;&amp;lt;lb/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;violence aux &lt;span class="nt"&gt;&amp;lt;wp&amp;gt;&lt;/span&gt;artifices de foeu&lt;span class="nt"&gt;&amp;lt;/wp&amp;gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;ab&amp;gt;&lt;/span&gt;Mects parmy la &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;pouldre&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;del&amp;gt;&amp;lt;ms&amp;gt;&lt;/span&gt;six fois autant&lt;span class="nt"&gt;&amp;lt;/ms&amp;gt;&lt;/span&gt; de
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;vif argent&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&amp;lt;/del&amp;gt;&amp;lt;lb/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;del&amp;gt;&lt;/span&gt;et&lt;span class="nt"&gt;&amp;lt;/del&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;ms&amp;gt;&lt;/span&gt;la sixiesme partye&lt;span class="nt"&gt;&amp;lt;/ms&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; dicelle de &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;vif argent&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&amp;lt;/ab&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;این اطلاعات نه‌فقط برای آرشیو ارزشمند است، بلکه چنان‌که پیش‌تر در جاهای دیگر نشان داده‌ام، به کار ترکیب و تحلیل هم می‌آید. با این حال، این نوع حاشیه‌نویسی می‌تواند بی‌اندازه وقت‌گیر باشد، چرا که یک متن واحد اغلب باید به چند صورت در دسترس باشد: به‌صورت ترجمه، بازنویسی، نسخهٔ امروزی‌شده و جز آن.&lt;/p&gt;
&lt;h1 id="راه-حل"&gt;راه حل&lt;/h1&gt;
&lt;h2 id="ترنسفورمرها-سادهترین-راه-خودکارسازی"&gt;ترنسفورمرها: ساده‌ترین راه خودکارسازی؟&lt;/h2&gt;
&lt;p&gt;در سال 2020،
با سر و صدای بسیار تازه‌ترین خانوادهٔ مدل‌های زبانی بزرگ و همه‌منظوره‌اش را با نام GPT-3 عرضه کرد؛ نامی که کوتاه‌شدهٔ «Generative Pre-trained Transformer 3» است. ترنسفورمرها دستاورد نسبتاً تازه‌ای در هوش مصنوعی‌اند. با سرعتی چشمگیر کارهای تازه می‌آموزند: کافی است یک پرامپت بخوانند و شمار بسیار اندکی مثال ببینند. می‌توان آن‌ها را با مجموعه‌داده‌ای اختصاصی نیز آموزش تکمیلی داد (ریزتنظیم) تا سرعت پاسخ و دقتشان بهتر شود. از همین رو می‌گوییم GPT-3 و ترنسفورمرهای همانند آن
(few-shot) هستند.&lt;/p&gt;
&lt;p&gt;OpenAI مدعی است که GPT-3 رقم بی‌سابقهٔ 175 میلیارد پارامتر دارد و بر بیش از 570 گیگابایت متن آموزش دیده که بیشترشان اسناد انگلیسی‌اند و احتمالاً از
گرفته شده‌اند. GPT-3 به لطف ابعاد عظیمش معیار تازه‌ای در این حوزه گذاشته و بی‌هیچ آماده‌سازی، کارهای گوناگونی را با واقع‌نمایی نگران‌کننده‌ای انجام می‌دهد.
باورپذیر می‌نویسد، در اتاق‌های گفت‌وگو
،
،
، اسناد را ترجمه می‌کند، اصطلاحات تخصصی را توضیح می‌دهد، و جز این‌ها.&lt;/p&gt;
&lt;p&gt;از مه 2021 به API شرکت OpenAI دسترسی زودهنگام داشته‌ام و توانسته‌ام توان این مدل را در حل شماری از کارهای به‌اصطلاح دشوار بیازمایم: ترجمهٔ شعر فرانسوی و متون نولاتین به انگلیسی، توضیح قیاس‌ها، و حتی ساده کردن کتاب چهارم &lt;em&gt;بنیاد مابعدالطبیعهٔ اخلاق&lt;/em&gt; کانت برای کودکی هفت‌ساله (هرچند نه چندان قانع‌کننده).&lt;/p&gt;
&lt;h3 id="codex"&gt;Codex&lt;/h3&gt;
&lt;p&gt;یکی از تازه‌ترین تحولات GPT-3 بر زبان‌های رایانه‌ای متمرکز است. این مدل، که &lt;em&gt;Codex&lt;/em&gt; نام دارد، زبان طبیعی را به زبان رایانه ترجمه می‌کند و برعکس. مثلاً اگر دنبال عبارتی باقاعده باشم که «فقط واژه‌هایی را پیدا کند که با حرف بزرگ آغاز می‌شوند»، GPT-3 بی‌درنگ آن را به یک عبارت باقاعدهٔ کارآمد برمی‌گرداند: &lt;code&gt;[A-Z]+\w+&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;OpenAI مدعی است که &lt;em&gt;Codex&lt;/em&gt; با ده‌دوازده زبان رایانه‌ای، از جمله Python، JavaScript، Go، Perl، PHP، Ruby و Swift کار می‌کند. &lt;em&gt;Codex&lt;/em&gt; با تبدیل روان شبه‌کد به کد، به آدم‌ها امکان می‌دهد به جای نحو خسته‌کنندهٔ یک زبان رایانه‌ای، بر گام‌های منطقی و راهبردهایی تمرکز کنند که برنامه‌ها به کمکشان مسئله حل می‌کنند.&lt;/p&gt;
&lt;h3 id="فراتر-از-openai"&gt;فراتر از OpenAI&lt;/h3&gt;
&lt;p&gt;البته OpenAI تنها بازیگر این میدان نیست. چنان‌که پیش‌تر اشاره شد، آکادمی هوش مصنوعی پکن در 2021 مدلی حتی بزرگ‌تر و تواناتر به نام &lt;em&gt;Wu Dao 2&lt;/em&gt; را اعلام کرد. Nvidia و Microsoft دست به دست هم دادند و مدلی با نام برازندهٔ &lt;em&gt;Megatron-Turing NLG 530B&lt;/em&gt; ساختند. استارتاپ‌های کوچک‌تری مانند
و
نیز APIهایی به عموم عرضه می‌کنند. ابتکارهای متن‌باز مانند
هم شایان ذکرند. صحنهٔ هوش مصنوعی البته با شتاب دگرگون می‌شود؛ برای دنبال کردن ابتکارهای تازهٔ این حوزه، به
سر بزنید.&lt;/p&gt;
&lt;h1 id="آزمایشها"&gt;آزمایش‌ها&lt;/h1&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;نکته&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;هدف این آزمایش‌ها یافتن اقتصادی‌ترین راه به خودکارسازی قابل اعتماد کارهای تصحیح است. می‌توان گفت برخی از این کارها را با الگوریتم‌های یادگیری بانظارت نیز می‌توان خودکار کرد. این فرضیه را در یادداشتی دیگر خواهیم کاوید.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;آیا ترنسفورمری مانند GPT-3 می‌تواند یاد بگیرد که مثلاً یک دست‌نویس فنی و علمی سدهٔ شانزدهم را حاشیه‌نویسی کند؟&lt;/p&gt;
&lt;h2 id="آزمایش-1--دستهبندی-متن"&gt;آزمایش 1 &amp;ndash; دسته‌بندی متن.&lt;/h2&gt;
&lt;p&gt;با چیزی نسبتاً ساده شروع کنیم. GPT-3، به‌عنوان «یادگیرندهٔ چندنمونه‌ای»، باید بتواند به‌سرعت دریابد که گروه تصحیح ما مدخل‌های Ms Fr 640 را چگونه دسته‌بندی کرده است.&lt;/p&gt;
&lt;h3 id="مهندسی-پرامپت"&gt;مهندسی پرامپت&lt;/h3&gt;
&lt;p&gt;برای آموزش آن، پرامپتی بسیار کمینه به کار بردم و چهار مدخل کوتاه متن ساده را به‌عنوان مثال برگزیدم، از جمله یکی دربارهٔ «پزشکی»، یکی «سلاح و زره» و یکی «نقاشی».&lt;/p&gt;
&lt;h3 id="آزمون"&gt;آزمون&lt;/h3&gt;
&lt;p&gt;سپس قطعهٔ دیگری را که در توالی اولیه نبود کپی کردم:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Working neatly
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Never put down, if you can, two colors one on top of the other.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;But next, having made your design carefully, keep the place of shadows for them alone,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;amp; also separately that of lights &amp;amp; highlights, without layering one color all over &amp;amp; then highlighting or else shading on it.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;And in this way, you further your work, economize your colors &amp;amp; work neatly.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Which is the reason that, the colors not being muddled nor mixed together, they do not die &amp;amp; you soften the colors better, since they are not so thick.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;خروجی کاملاً با محتوا سازگار است:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;categories&lt;/span&gt;&lt;span class="err"&gt;=&amp;#34;painting&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;اگر مدخلی را بیازماییم که به مقوله‌ای تعلق دارد که حتی در گزینش اولیهٔ متن‌های آموزشی GPT-3 نبوده، نتیجه شگفت‌آور است.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;categories&lt;/span&gt;&lt;span class="err"&gt;=&amp;#34;jewelry&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="نتیجه"&gt;نتیجه&lt;/h3&gt;
&lt;p&gt;مقولهٔ «jewelry» (جواهرات) در نسخهٔ ما از Ms. Fr. 640 وجود ندارد. گروه تصحیح مقولهٔ گسترده‌تر «Stones» (سنگ‌ها) را
. با این حال شمّ GPT-3 خوب است و نشان می‌دهد که با اندکی آموزش بیشتر می‌تواند دسته‌بندی هر مدخل Ms. Fr. 640، و شاید حتی متون فنی مشابه سدهٔ شانزدهم، را بیاموزد.&lt;/p&gt;
&lt;h2 id="آزمایش-2--نشانهگذاری-معنایی"&gt;آزمایش 2 &amp;ndash; نشانه‌گذاری معنایی&lt;/h2&gt;
&lt;p&gt;سطح کار را کمی بالاتر ببریم. اگر ترنسفورمرهایی چون GPT-3 می‌توانند دسته‌بندی متن‌ها را بر پایهٔ معیارهای خاص یک تصحیح بیاموزند، آیا می‌توانند بخشی از نشانه‌گذاری متن را هم تشخیص دهند؟&lt;/p&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;نکته&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;&lt;em&gt;Secrets of Craft and Nature&lt;/em&gt;
از برچسب‌های معنایی و ساختاری به کار می‌برد. متأسفانه GPT-3، برخلاف پروژه‌هایی مانند
، تصویر پردازش نمی‌کند. به احتمال زیاد نسل‌های بعدی GPT این قابلیت را، که برای تشخیص بیشتر جنبه‌های ساختاری و مادی یک سند ضروری است، خواهند داشت. از این برچسب‌های خاص می‌گذریم و در عوض بر نشانه‌گذاری‌ای تمرکز می‌کنیم که به تشخیص تصویر نیاز ندارد.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="مهندسی-پرامپت-1"&gt;مهندسی پرامپت&lt;/h3&gt;
&lt;p&gt;برچسب‌های معنایی شامل ارجاع به جانوران، گیاهان، جای‌نام‌ها، داده‌های حسی و مانند این‌هاست. در پرامپت آموزشی، چند نمونه از نسخه را برگزیدم:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;lt;!--Input prompt--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;The following is a list of words and their corresponding semantic tags
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cannons: &lt;span class="nt"&gt;&amp;lt;wp&amp;gt;&lt;/span&gt;cannons&lt;span class="nt"&gt;&amp;lt;/wp&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;powder: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;powder&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;flasks: &lt;span class="nt"&gt;&amp;lt;tl&amp;gt;&lt;/span&gt;flasks&lt;span class="nt"&gt;&amp;lt;/tl&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wooden: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;wooden&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iron: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;iron&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;parchment: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;parchment&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;goats: &lt;span class="nt"&gt;&amp;lt;al&amp;gt;&lt;/span&gt;goats&lt;span class="nt"&gt;&amp;lt;/al&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;lambs: &lt;span class="nt"&gt;&amp;lt;al&amp;gt;&lt;/span&gt;lambs&lt;span class="nt"&gt;&amp;lt;/al&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;leather: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;leather&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;earth: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;earth&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;fine fatty earth: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;fine fatty earth&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Venice: &lt;span class="nt"&gt;&amp;lt;pl&amp;gt;&lt;/span&gt;Venice&lt;span class="nt"&gt;&amp;lt;/pl&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Flemish: &lt;span class="nt"&gt;&amp;lt;pl&amp;gt;&lt;/span&gt;Flemish&lt;span class="nt"&gt;&amp;lt;/pl&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;almond: &lt;span class="nt"&gt;&amp;lt;pa&amp;gt;&lt;/span&gt;almond&lt;span class="nt"&gt;&amp;lt;/pa&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;almond oil: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&amp;lt;pa&amp;gt;&lt;/span&gt;almond&lt;span class="nt"&gt;&amp;lt;/pa&amp;gt;&lt;/span&gt; oil&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;walnuts skin: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&amp;lt;pa&amp;gt;&lt;/span&gt;walnuts&lt;span class="nt"&gt;&amp;lt;/pa&amp;gt;&lt;/span&gt; skin&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;molten lead: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;molten lead&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;today: &lt;span class="nt"&gt;&amp;lt;tmp&amp;gt;&lt;/span&gt;today&lt;span class="nt"&gt;&amp;lt;/tmp&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;In the past: &lt;span class="nt"&gt;&amp;lt;tmp&amp;gt;&lt;/span&gt;In the past&lt;span class="nt"&gt;&amp;lt;/tmp&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Clockmakers: &lt;span class="nt"&gt;&amp;lt;pro&amp;gt;&lt;/span&gt;Clockmakers&lt;span class="nt"&gt;&amp;lt;/pro&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;red copper: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;red copper&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;crucible: &lt;span class="nt"&gt;&amp;lt;tl&amp;gt;&lt;/span&gt;crucible&lt;span class="nt"&gt;&amp;lt;/tl&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;bellows: &lt;span class="nt"&gt;&amp;lt;tl&amp;gt;&lt;/span&gt;bellows&lt;span class="nt"&gt;&amp;lt;/tl&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;charcoal: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;charcoal&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;founders: &lt;span class="nt"&gt;&amp;lt;pro&amp;gt;&lt;/span&gt;founders&lt;span class="nt"&gt;&amp;lt;/pro&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="آزمون-1"&gt;آزمون&lt;/h3&gt;
&lt;p&gt;چند واژهٔ ساده را با مدل &lt;code&gt;Davinci-codex&lt;/code&gt; بیازماییم، مانند &lt;em&gt;Apothecary&lt;/em&gt;، &lt;em&gt;smoke&lt;/em&gt;، &lt;em&gt;glassmakers&lt;/em&gt;، &lt;em&gt;latten&lt;/em&gt; و &lt;em&gt;snake&lt;/em&gt;. نتیجه فوری و بی‌نقص است:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;lt;!--Output--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Apothecary: &lt;span class="nt"&gt;&amp;lt;pro&amp;gt;&lt;/span&gt;Apothecary&lt;span class="nt"&gt;&amp;lt;/pro&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;smoke: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;smoke&lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;glassmakers: &lt;span class="nt"&gt;&amp;lt;pro&amp;gt;&lt;/span&gt;glassmakers&lt;span class="nt"&gt;&amp;lt;/pro&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;latten: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;latten&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;snake: &lt;span class="nt"&gt;&amp;lt;al&amp;gt;&lt;/span&gt;snake&lt;span class="nt"&gt;&amp;lt;/al&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;آزمون دشوارتر، واژه‌های مرکبی چون &lt;em&gt;copper plates&lt;/em&gt;، &lt;em&gt;walnut oil&lt;/em&gt; و &lt;em&gt;wood block&lt;/em&gt; را به میان می‌آورد. هدف این آزمون آن است که ببینیم GPT-3 برچسب‌های تودرتو را درست به کار می‌برد یا نه.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;lt;!--Output--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;copper plates: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;copper plates&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;walnut oil: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&amp;lt;pa&amp;gt;&lt;/span&gt;walnut&lt;span class="nt"&gt;&amp;lt;/pa&amp;gt;&lt;/span&gt; oil&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wood block: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;wood block&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;نتیجه اما دوگانه است: &lt;code&gt;Davinci-codex&lt;/code&gt; تنها &lt;em&gt;walnut oil&lt;/em&gt; را درست برچسب زد و برچسب‌های تودرتوی &lt;code&gt;tl&lt;/code&gt; و &lt;code&gt;m&lt;/code&gt; را در &lt;em&gt;copper plates&lt;/em&gt; و &lt;em&gt;wood block&lt;/em&gt; تشخیص نداد. با این حال، چنان‌که آزمون بعدی در زیر نشان می‌دهد، این خطاها را می‌توان با پرامپت آموزشی بهتری کاهش داد. پس از افزودن پنج نمونهٔ دیگر از برچسب‌های تودرتو، &lt;code&gt;Davinci-codex&lt;/code&gt; نتیجه‌ای تقریباً بی‌نقص برگرداند، با تنها یک خطا (&lt;em&gt;oil paintbrushes&lt;/em&gt;):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;lt;!--Output--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cannon powder: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&amp;lt;wp&amp;gt;&lt;/span&gt;cannon&lt;span class="nt"&gt;&amp;lt;/wp&amp;gt;&lt;/span&gt; powder&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;arquebus powder: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&amp;lt;wp&amp;gt;&lt;/span&gt;arquebus&lt;span class="nt"&gt;&amp;lt;/wp&amp;gt;&lt;/span&gt; powder&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;oil paintbrushes: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&amp;lt;al&amp;gt;&lt;/span&gt;oil&lt;span class="nt"&gt;&amp;lt;/al&amp;gt;&lt;/span&gt; paintbrushes&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sheep footbones: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&amp;lt;al&amp;gt;&lt;/span&gt;sheep&lt;span class="nt"&gt;&amp;lt;/al&amp;gt;&lt;/span&gt; footbones&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;bronze mortar: &lt;span class="nt"&gt;&amp;lt;tl&amp;gt;&amp;lt;m&amp;gt;&lt;/span&gt;bronze&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt; mortar&lt;span class="nt"&gt;&amp;lt;/tl&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="نتیجهگیری"&gt;نتیجه‌گیری&lt;/h1&gt;
&lt;p&gt;نباید از یاد برد که این آزمون‌ها با قطعه‌های کوتاهی از متن انجام شد. گمان می‌کنم اگر در مثال‌ها و پرامپت زمینهٔ بیشتری فراهم شود، مدل‌های GPT-3 نتایج بهتری هم بدهند. افزون بر این، ریزتنظیم مدل با مجموعه‌داده‌های آموزشی اختصاصی بی‌تردید دقت برچسب‌زنی را باز هم بالا خواهد برد.&lt;br&gt;
هرچند این آزمایش‌ها باید در مقیاسی بزرگ‌تر تکرار شوند تا قابل اعتماد بودن مدل‌های زبانی پیش‌آموخته اثبات شود، همین حالا می‌توان نتیجه گرفت که
&lt;mark&gt;این رویکرد به مصححان امکان می‌دهد چندین کار حاشیه‌نویسی را در چند گام ساده خودکار کنند و از این راه بالقوه زمان و هزینهٔ هنگفتی را صرفه‌جویی کنند.&lt;/mark&gt;
&lt;/p&gt;</description></item><item><title>مصورسازی دست‌نویس‌ها 2 (به‌روزرسانی)</title><link>https://clementgodbarge.com/fa/post/treemap2/</link><pubDate>Sat, 20 Nov 2021 16:00:00 +0000</pubDate><guid>https://clementgodbarge.com/fa/post/treemap2/</guid><description>&lt;p&gt;چنان‌که وعده داده بودم، این هم نسخهٔ تازه‌ای از نقشهٔ درختی تعاملی‌ای که در
معرفی کردم؛ این بار با دو حالت نمایش.&lt;/p&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;نکته&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;برای تجربهٔ بهتر، مطمئن شوید که صفحه در حالت روشن (Light) است (روی نماد ماه در گوشهٔ بالا سمت راست کلیک کنید).&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;head&gt;
&lt;meta charset="UTF-8" /&gt;
&lt;meta http-equiv="X-UA-Compatible" content="IE=edge" /&gt;
&lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /&gt;
&lt;title&gt;&lt;/title&gt;
&lt;link rel="preconnect" href="https://fonts.gstatic.com" /&gt;
&lt;link
href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&amp;display=swap"
rel="stylesheet"
/&gt;
&lt;link rel="stylesheet" href="css/index.css" /&gt;
&lt;link rel="stylesheet" href="css/vis-treemap.css" /&gt;
&lt;link rel="stylesheet" href="css/vis-tooltip.css" /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div class="stacked"&gt;
&lt;div class="switch"&gt;
&lt;input
type="checkbox"
name="group-by-category-switch"
id="group-by-category-switch"
checked
/&gt;
&lt;label for="group-by-category-switch"&gt; Group folios by category &lt;/label&gt;
&lt;/div&gt;
&lt;div id="treemap"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;script src="https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js" integrity="sha384-CjloA8y00+1SDAUkjs099PVfnY2KmDC2BZnws9kh8D/lX1s46w6EPhpXdqMfjK6i" crossorigin="anonymous" referrerpolicy="no-referrer"&gt;&lt;/script&gt;
&lt;script src="js/vis-treemap.js"&gt;&lt;/script&gt;
&lt;script src="js/vis-tooltip.js"&gt;&lt;/script&gt;
&lt;script src="js/index.js"&gt;&lt;/script&gt;
&lt;/body&gt;</description></item><item><title>مرورگری دیداری برای آرشیو</title><link>https://clementgodbarge.com/fa/post/treemap/</link><pubDate>Sun, 20 Jun 2021 16:00:00 +0000</pubDate><guid>https://clementgodbarge.com/fa/post/treemap/</guid><description>&lt;h1 id="مسئله"&gt;مسئله&lt;/h1&gt;
&lt;p&gt;نسخه‌های دیجیتال گرفتار تناقضی‌اند: از یک سو اسناد دیریاب را در دسترس عموم می‌گذارند، و از سوی دیگر با از دست رفتن ورودی حسی‌ای که پیامد ماده‌زدایی آن‌هاست، خواننده را سردرگم و حتی از سر و کله زدن با محتوا دلسرد می‌کنند. پیمایش در مخازن عظیم اسناد را دشوار و هراس‌انگیز می‌سازند. این تنها دربارهٔ کاربرانی که با پژوهش آرشیوی آشنا نیستند صادق نیست؛ خوانندگان دچار اختلال‌های شناختی هم با آن روبه‌رویند.&lt;/p&gt;
&lt;h1 id="راه-حل"&gt;راه حل&lt;/h1&gt;
&lt;p&gt;اینجاست که فراداده‌های آرشیوی به کارمان می‌آیند. با این داده‌ها می‌توان انتزاع‌های دیداری تعاملی‌ای ساخت که ورودی حسی دیگری به خواننده می‌دهند و از این راه هم راحتیِ کار و هم دسترس‌پذیری را بالا می‌برند. برای اینکه آرشیو به‌صورت دیداری پیمایش‌پذیر شود، یک نقشهٔ درختی (treemap)، یا هر نموداری که داده‌های سلسله‌مراتبی را به‌خوبی تجزیه کند، کفایت می‌کند.&lt;/p&gt;
&lt;h1 id="آزمایش"&gt;آزمایش&lt;/h1&gt;
&lt;p&gt;نخستین آزمایش من
برای &lt;code&gt;D3.js&lt;/code&gt; را اقتباس می‌کند و به آن فراپیوند می‌افزاید. این نقشه دست‌نویس BnF Ms Fr 640، برگ‌هایش و مدخل‌های درون هر برگ را نمایش می‌دهد. رنگ‌ها نمایندهٔ مقولهٔ غالب‌اند. با نگه داشتن نشانگر روی هر مدخل، داده‌های بیشتری، از جمله پیوند به دست‌نویس، نمایان می‌شود.&lt;br&gt;
به این ترتیب نقشهٔ درختی به یک نمایهٔ دیداری تعاملی بدل می‌شود و در یک نگاه سریع و پاسخگو، نه‌تنها محتوای دست‌نویس، بلکه ابعاد هر برگ و هر مدخل را نیز به خواننده نشان می‌دهد.&lt;br&gt;
&lt;del&gt;در ماه‌های آینده این ایده را با نمودارها و سلسله‌مراتب‌های دیگر خواهم آزمود&amp;hellip; منتظر باشید!&lt;/del&gt; برای نسخهٔ تازهٔ نقشهٔ درختی
را کلیک کنید.&lt;/p&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;نکته&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;برای تجربهٔ بهتر، مطمئن شوید که صفحه در حالت روشن (Light) است (روی نماد ماه در گوشهٔ بالا سمت راست کلیک کنید).&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;head&gt;
&lt;meta charset="UTF-8" /&gt;
&lt;meta http-equiv="X-UA-Compatible" content="IE=edge" /&gt;
&lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /&gt;
&lt;title&gt;&lt;/title&gt;
&lt;link rel="preconnect" href="https://fonts.gstatic.com" /&gt;
&lt;link
href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&amp;display=swap"
rel="stylesheet" /&gt;
&lt;link rel="stylesheet" href="css/index.css" /&gt;
&lt;link rel="stylesheet" href="css/vis-treemap.css" /&gt;
&lt;link rel="stylesheet" href="css/vis-tooltip.css" /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;p&gt;Click any cell to zoom in, or the top to zoom out.&lt;/p&gt;
&lt;div id="treemap"&gt;&lt;/div&gt;
&lt;script src="https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js" integrity="sha384-CjloA8y00+1SDAUkjs099PVfnY2KmDC2BZnws9kh8D/lX1s46w6EPhpXdqMfjK6i" crossorigin="anonymous" referrerpolicy="no-referrer"&gt;&lt;/script&gt;
&lt;script src="js/vis-treemap.js"&gt;&lt;/script&gt;
&lt;script src="js/vis-tooltip.js"&gt;&lt;/script&gt;
&lt;script src="js/index.js"&gt;&lt;/script&gt;
&lt;/body&gt;</description></item><item><title>آرشیو در یک نگاه</title><link>https://clementgodbarge.com/fa/post/dashboard/</link><pubDate>Mon, 24 May 2021 16:00:00 +0000</pubDate><guid>https://clementgodbarge.com/fa/post/dashboard/</guid><description>&lt;h1 id="مسئله"&gt;مسئله&lt;/h1&gt;
&lt;p&gt;آرشیوهای تاریخی می‌توانند به‌طرزی نومیدکننده آشفته باشند. فوند &lt;em&gt;Mediceo del Principato&lt;/em&gt; در
نمونهٔ گویایی است. تنها بخش کوچکی از آن فهرست‌برداری شده و بسیاری از اسنادش، بی‌هیچ دلیل روشنی، در بیش از 6,500 مجلد پراکنده‌اند. مشکل دیگر آنکه آرشیو تنها اجازهٔ مطالعهٔ شمار محدودی مجلد (یا به تعبیر خودشان &lt;em&gt;filza&lt;/em&gt;، جمع آن &lt;em&gt;filze&lt;/em&gt;) را می‌دهد. در روزگار عادی این سقف 4 بسته در روز است؛ در دوران همه‌گیری اما به 4 بسته در هر دو هفته رسیده است. در نبودِ فهرست‌های تفصیلی، حجم عظیم آرشیو پژوهشگر را ناگزیر می‌کند برای یافتن سریع اسناد مورد نظرش تدبیری بیندیشد.&lt;/p&gt;
&lt;h1 id="راه-حل"&gt;راه حل&lt;/h1&gt;
&lt;p&gt;برخی شانس را ترجیح می‌دهند؛ برخی دیگر می‌کوشند بر پایهٔ گاه‌شماری، گیرندگان، نویسندگان، خاستگاه فوند آرشیوی، زبان و مانند این‌ها حدس‌های سنجیده بزنند. اما &lt;em&gt;نگاه کردن&lt;/em&gt; به همهٔ این متغیرها در یک زمان می‌تواند الگوهای غیرمنتظره‌ای را در ساختار آرشیو آشکار کند و حدس‌های ما را دقیق‌تر سازد. تجربهٔ من نشان می‌دهد که فراداده‌هایی که پژوهشگران معمولاً در یک صفحه‌گسترده جمع می‌کنند، وقتی به نمودار درآیند، دید آدمی را نسبت به وضعیت آرشیو به‌طور چشمگیری بالا می‌برند.&lt;/p&gt;
&lt;h1 id="آزمایش"&gt;آزمایش&lt;/h1&gt;
&lt;p&gt;پژوهش کنونی من بر مکاتبات یک جاسوس سدهٔ شانزدهم متمرکز است. نامه‌هایش در صدها &lt;em&gt;filza&lt;/em&gt; پراکنده‌اند. با هویت‌های گوناگون نوشته شده‌اند، به گیرندگانی گوناگون و گاه غیرمنتظره، از مکان‌هایی گوناگون، و جز این‌ها. برای یافتن بسته‌هایی که به احتمال بیشتر نامه‌های مورد انتظار را در خود دارند، داشبوردی ساخته‌ام: یک برنامهٔ وبِ مصورسازی تعاملی داده‌ها (
) که همه‌گونه داده، از جمله اطلاعات جغرافیایی و گاه‌شمارانه، را به نموداری سلسله‌مراتبی (
) از فوند آرشیوی پیوند می‌دهد. داشبورد در یک نگاه به من می‌گوید تا کنون چه یافته شده، این یافته‌ها چه سهمی دارند، و تصویری تقریبی به دست می‌دهد از اینکه نامه‌های تازه را احتمالاً کجا باید جست. افزون بر این، با کلیک بر هر متغیر، همهٔ نمودارها به‌روز می‌شوند و همبستگی‌های خاصی را نشان می‌دهند.&lt;/p&gt;
&lt;h1 id="گامهای-بعدی"&gt;گام‌های بعدی&lt;/h1&gt;
&lt;p&gt;شاید مهم‌تر از همه، این داشبورد را می‌توان به یک نمایهٔ دیداری بدل کرد. وقتی تصحیح انتقادی این نامه‌ها به‌صورت آنلاین منتشر شود، داشبورد نقش دروازهٔ ورودی جایگزینی را خواهد داشت که خوانندگان از آنجا می‌توانند داده‌ها را مرور کنند. به دلایل محرمانگی، در حال حاضر تنها می‌توانم تصویری از آن نشان دهم که بخش‌هایی‌اش پوشانده شده، اما داشبورد کامل را سال آینده منتشر خواهم کرد. در این میان، نمونهٔ اولیه‌ای به‌زودی در دسترس خواهد بود. منتظر باشید!&lt;/p&gt;</description></item><item><title>مصورسازی نشانه‌گذاری معنایی در BnF Ms. Fr. 640</title><link>https://clementgodbarge.com/fa/post/visualization/</link><pubDate>Sun, 20 Dec 2020 18:15:00 +0000</pubDate><guid>https://clementgodbarge.com/fa/post/visualization/</guid><description>&lt;h1 id="نگاه-کلی"&gt;نگاه کلی&lt;/h1&gt;
&lt;p&gt;نسخه‌های علمیِ غنی از داده، حاشیه‌نویسی‌های ارزشمندی دارند که می‌توان برای هر گونه هدف پژوهشی استخراج، تحلیل و مصورسازی‌شان کرد.
، که در 2020 منتشر شد و فایل فراداده‌اش را در مخزن GitHub خود برای دانلود گذاشته، از همین دست است. در این یادداشت نشان می‌دهم چگونه می‌توان همهٔ این متغیرها را در یک ماتریس همبستگی گرد آورد و به شیوه‌های گوناگون به تصویر کشید.&lt;/p&gt;
&lt;h1 id="دادهها"&gt;داده‌ها&lt;/h1&gt;
&lt;p&gt;پروژهٔ Making and Knowing صفحه‌گسترده‌ای با اطلاعات به‌روز دربارهٔ محتوای دست‌نویس تولید می‌کند: &lt;code&gt;entry_metadata.csv&lt;/code&gt;. این فایل را می‌توان از
پروژهٔ Making &amp;amp; Knowing گرفت. راه دیگر آن است که به لطف
عالیِ Matthew Kumar، که نسخه‌ای پایتونی از BnF Ms. Fr. 640 است، فایل‌های .csv سفارشی با نشانه‌گذاری بیشتر تولید کنید.&lt;/p&gt;
&lt;h2 id="آماده-کردن-python"&gt;آماده کردن Python&lt;/h2&gt;
&lt;p&gt;از Pandas برای سر و سامان دادن به داده‌ها، از Matplotlib و seaborn برای نقشه‌های حرارتی، و سرانجام از NetworkX برای ساختن شبکه‌های مبتنی بر همبستگی استفاده می‌کنیم.&lt;br&gt;
برای این نوع متغیرها از روش پیرسون پرهیز می‌کنیم و به جای آن روش 𝜙𝐾 را به کار می‌بریم. حتماً
: هم دربارهٔ این روش همبستگی و هم دربارهٔ &lt;code&gt;PhiK&lt;/code&gt;، کتابخانهٔ متناظر با آن.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#install packages&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;pip&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="n"&gt;phik&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# import modules&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;plt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;seaborn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;sns&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;networkx&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nx&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="آمادهسازی-دادهها"&gt;آماده‌سازی داده‌ها&lt;/h2&gt;
&lt;p&gt;نخست، تازه‌ترین فایل فرادادهٔ نسخه را از پوشهٔ metadata در
آن دانلود می‌کنیم.
فقط ستون‌هایی را که لازم داریم برمی‌گزینیم. برای این نمایش، همهٔ برچسب‌های معنایی ترجمهٔ انگلیسی &lt;code&gt;tl&lt;/code&gt; را انتخاب می‌کنم، اما می‌توانید برچسب‌های بازنویسی فرانسوی &lt;code&gt;tc&lt;/code&gt; یا نسخهٔ هنجارشدهٔ &lt;code&gt;tcn&lt;/code&gt; را هم برگزینید.
داده‌ها به‌صورت مقادیر جداشده با نقطه‌ویرگول می‌آیند و باید Python آن‌ها را برایمان بشمارد. برای این کار از روش stack-unstack با عبارت باقاعدهٔ &lt;code&gt;[^;\s][^\;]*[^;\s]*&lt;/code&gt; استفاده می‌کنیم.
برای خواناتر شدن ماتریس، نام هر ستون را تغییر می‌دهیم. اگر عجله دارید می‌توانید از این گام بگذرید؛ فقط به یاد داشته باشید که دیتافریم ما در این مرحله &lt;code&gt;tagsrn&lt;/code&gt; نام دارد.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# load the edition&amp;#39;s metadata&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;entry_metadata.csv&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# select the tags you want to correlate&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;dftags&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;al_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;bp_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;cn_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;df_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;env_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;m_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;md_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;ms_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;mu_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pa_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pl_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pn_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pro_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sn_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;tl_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;tmp_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;wp_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;de_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;el_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;it_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;la_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;oc_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;po_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# count comma separated values&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;tagcount&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;dftags&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dropna&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;str&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;[^;\s][^\;]*[^;\s]*&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;unstack&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# rename columns&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;tagsrn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tagcount&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;columns&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;al_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;animals&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;bp_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;body parts&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;cn_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;currency&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;df_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;definitions&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;env_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;environment&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;m_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;material&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;md_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;medical&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;ms_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;measurement&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;mu_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;music&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pa_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;plant&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pl_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;toponym&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pn_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;person&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pro_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;profession&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sn_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sensory&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;tl_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;tool&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;tmp_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;temporal&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;wp_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;weapons&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;de_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;German&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;el_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Greek&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;it_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Italian&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;la_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Italian&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;oc_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Occitan&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;po_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Poitevin&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="همبسته-کردن"&gt;همبسته کردن&lt;/h1&gt;
&lt;p&gt;وقتی دیتافریم پاک شد، می‌توانیم ضرایب همبستگی میان متغیرها را حساب کنیم. در این مرحله مهم است که داده‌هایتان را بشناسید و مطمئن شوید مناسب‌ترین روش همبستگی را به کار می‌برید. بستهٔ &lt;code&gt;pandas-profiling&lt;/code&gt; برای این کار به‌ویژه سودمند است.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# calculate correlation coefficient with the phi k method&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;cortag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tagsrn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;phik_matrix&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;cortag&lt;/code&gt; ماتریس همبستگی ماست. حالا می‌توانیم انواع مختلف مصورسازی را بیازماییم.&lt;/p&gt;
&lt;h1 id="مصورسازی"&gt;مصورسازی&lt;/h1&gt;
&lt;p&gt;نخستین کاری که می‌توان کرد این است که آن را به‌صورت ماتریسی رنگ‌کدشده، با
کتابخانهٔ &lt;code&gt;seaborn&lt;/code&gt;، به تصویر بکشیم.&lt;/p&gt;
&lt;h3 id="نقشه-حرارتی-همبستگی"&gt;نقشهٔ حرارتی همبستگی&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;subplots&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;figsize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sns&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;heatmap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cortag&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;linewidths&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;.03&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;vmin&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cmap&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Oranges&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;square&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="نقشهٔ حرارتی همبستگی BnF Ms. Fr. 640"
srcset="https://clementgodbarge.com/post/visualization/heatmap_hu_943abdd98e24b0a3.webp 320w, https://clementgodbarge.com/post/visualization/heatmap_hu_eca41311a0e0ac17.webp 480w, https://clementgodbarge.com/post/visualization/heatmap_hu_1650defb643c0285.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://clementgodbarge.com/post/visualization/heatmap_hu_943abdd98e24b0a3.webp"
width="760"
height="665"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;اگر متن را خوب بشناسید، بی‌درنگ می‌بینید که نقشهٔ حرارتی کاملاً معنادار است. برای نمونه، نام‌ها همبستگی نیرومندی با لاتین دارند، چون رسم بود، به‌ویژه میان اومانیست‌های سدهٔ شانزدهم، که نام‌ها را لاتینی کنند.&lt;/p&gt;
&lt;p&gt;برخی شاید بگویند این نقشهٔ حرارتی فقط بدیهیات را بازگو می‌کند. یکسره بی‌راه نمی‌گویند، و در نگاه نخست برچسب‌های پزشکی نمونهٔ خوبی به نظر می‌رسند، چون همان‌طور که انتظار می‌رود با اندام‌های بدن، اندازه‌ها و گیاهان همبسته‌اند.&lt;/p&gt;
&lt;p&gt;اما اگر نقشهٔ حرارتی را با دقت بیشتر، سطر به سطر بخوانیم، ممکن است همبستگی‌های جالب و غیرمنتظره‌ای بیابیم. اینکه برچسب‌های پزشکی مثلاً با واژه‌های ایتالیایی و لاتین همبسته‌اند، سرنخ‌هایی دربارهٔ خاستگاه نسخه‌های پزشکی Ms. Fr. 640 به دست می‌دهد. به همین ترتیب، همبستگی میان پیشه‌ها، تعریف‌ها و اندازه‌ها نشان می‌دهد که هویت حرفه‌ای تا چه اندازه به گفتمان‌های فنی سدهٔ شانزدهم ساختار می‌بخشد.&lt;/p&gt;
&lt;h3 id="نقشه-خوشهای-همبستگی"&gt;نقشهٔ خوشه‌ای همبستگی&lt;/h3&gt;
&lt;p&gt;نقشه‌های حرارتی در زمینه‌های «اکتشافی» سودمندند، اما ممکن است در چشم مخاطب کمی شلوغ بنمایند، به‌ویژه اگر دربارهٔ خوشه‌های معنایی خاصی در دست‌نویس بحث می‌کنید — یا هنوز در جست‌وجوی آن‌ها هستید. پیمانهٔ &lt;code&gt;clustermap&lt;/code&gt; کتابخانهٔ Seaborn می‌تواند نتایج جالبی بدهد.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;clustermap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sns&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;clustermap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cortag&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;figsize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;dendrogram_ratio&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;.2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;vmin&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cmap&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Oranges&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cbar_pos&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;.06&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;.12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;.03&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;.68&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="نقشهٔ خوشه‌ای همبستگی BnF Ms. Fr. 640"
srcset="https://clementgodbarge.com/post/visualization/clustermap_hu_677e6e5028f9d902.webp 320w, https://clementgodbarge.com/post/visualization/clustermap_hu_2dac945fa40a8ac6.webp 480w, https://clementgodbarge.com/post/visualization/clustermap_hu_3abaf7b36a53572.webp 753w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://clementgodbarge.com/post/visualization/clustermap_hu_677e6e5028f9d902.webp"
width="753"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;نقشهٔ خوشه‌ای، گذشته از اینکه شبیه حشره‌ای پیکسلی (بله، این واژه در OED هست) به نظر می‌رسد، برچسب‌های منزوی (در بالا و سمت چپ) را از برچسب‌های به‌هم‌پیوسته‌تر به‌روشنی جدا می‌کند. خوشه‌های منزوی، مانند موسیقی و پواتوینی (که فکرش را می‌کرد!)، را نیز از خوشه‌های مرکزی‌تر مانند اندازه، ماده، تعریف و سلاح تشخیص می‌دهیم. پیشه‌ها پیوندهای بیشتری دارند، اما دست‌کم در این ماتریس همبستگی خاص، جزو خوشهٔ مشخصی نیستند.&lt;/p&gt;
&lt;h3 id="شبکه-همبستگی"&gt;شبکهٔ همبستگی&lt;/h3&gt;
&lt;p&gt;اگر بخواهیم همبستگی‌های ماتریس را باز هم فشرده‌تر کنیم، گراف‌های شبکه راه حلی ظریف‌اند. این به‌ویژه در زمینه‌هایی صادق است که می‌خواهیم دربارهٔ محتوای دست‌نویس با دیگران سخن بگوییم.&lt;br&gt;
برای این کار باید ماتریس را به فهرستی از یال‌ها و گره‌ها تبدیل کنیم و آستانه‌ای تعیین کنیم تا همبستگی‌های ضعیف‌تر از گراف حذف شوند.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# transform the data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;links&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cortag&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stack&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;reset_index&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;links&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;columns&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;var1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;var2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;value&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# threshold &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;links_filtered&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;links&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;loc&lt;/span&gt;&lt;span class="p"&gt;[(&lt;/span&gt;&lt;span class="n"&gt;links&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;value&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;.6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;links&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;var1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="n"&gt;links&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;var2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;links_filtered&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# create edges&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;G&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;from_pandas_edgelist&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;links_filtered&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;var1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;var2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# draw network using Kamada &amp;amp; Kawai&amp;#39;s algorithm &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;figure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;figsize&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;nx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;draw_kamada_kawai&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;G&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;with_labels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;node_color&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;red&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;node_size&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;400&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;edge_color&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;black&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;linewidths&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font_size&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="گراف همبستگی BnF Ms. Fr. 640"
srcset="https://clementgodbarge.com/post/visualization/graph_hu_396032c00cb7f7f3.webp 320w, https://clementgodbarge.com/post/visualization/graph_hu_85295e5fba6293bc.webp 480w, https://clementgodbarge.com/post/visualization/graph_hu_4190dbca7e86ffc1.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://clementgodbarge.com/post/visualization/graph_hu_396032c00cb7f7f3.webp"
width="760"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;اگر یال‌ها و گره‌ها زیادند، می‌توانید آستانه را تغییر دهید تا نتیجهٔ تمیزتری بگیرید. در غیر این صورت، می‌توانید گراف را با تابع &lt;code&gt;.write_gexf()&lt;/code&gt; صادر کنید و در &lt;code&gt;Gephi&lt;/code&gt; با آن کار کنید.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;nx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write_gexf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;G&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;graph.gexf&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;نتیجه را می‌توانید در آغاز این یادداشت ببینید.&lt;/p&gt;
&lt;h3 id="بهروزرسانی-شبکه-وزندار-دایرهای"&gt;به‌روزرسانی: شبکهٔ وزن‌دار دایره‌ای&lt;/h3&gt;
&lt;p&gt;دنبال راه‌هایی بودم برای نمایش ماتریس‌های همبستگی به‌صورت شبکه‌های وزن‌دار، و این رویکرد جالب را یافتم که
و من آن را اینجا برای مجموعه‌دادهٔ خودمان اقتباس می‌کنم.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# create graph weighted by correlation coefficients (unfiltered)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Gx&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;from_pandas_edgelist&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;links&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;var1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;var2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;edge_attr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;value&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# determine a threshold to remove some edges&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;threshold&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# list to store edges to remove&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;remove&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# loop through edges in Gx and find correlations which are below the threshold&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;var1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var2&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;Gx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;edges&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;corr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Gx&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;var1&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;var2&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;value&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;#add to remove node list if abs(corr) &amp;lt; threshold&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;corr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;threshold&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;remove&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;var1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# remove edges contained in the remove list&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Gx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;remove_edges_from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;remove&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;remove&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39; edges removed&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;پس از حذف چند یال، می‌توانیم رنگ و ضخامت آن‌ها را تعیین کنیم.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# determine the colors of edges&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;assign_colour&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;correlation&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;correlation&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mf"&gt;0.8&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;#ff872c&amp;#39;&lt;/span&gt; &lt;span class="c1"&gt;# orange&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;#f11d28&amp;#39;&lt;/span&gt; &lt;span class="c1"&gt;# red&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;assign_thickness&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;correlation&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;benchmark_thickness&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;scaling_factor&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;benchmark_thickness&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;correlation&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;scaling_factor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;assign_node_size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;degree&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;scaling_factor&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;degree&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;scaling_factor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;به گره‌ها هم اندازه‌ای متناسب با شمار پیوندهایشان می‌دهیم.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# assign node size depending on number of connections (degree)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;node_size&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Gx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;degree&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;node_size&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;assign_node_size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;نتیجه گرافی وزن‌دار است که گره‌های بیشتر و یال‌های به‌مراتب بیشتری را می‌پذیرد و در عین حال خوانا و پرمایه می‌ماند.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="گراف همبستگی وزن‌دار BnF Ms. Fr. 640"
srcset="https://clementgodbarge.com/post/visualization/weightedgraph_hu_7b75f2e5fc7edb1b.webp 320w, https://clementgodbarge.com/post/visualization/weightedgraph_hu_9f0550eb49c17f11.webp 480w, https://clementgodbarge.com/post/visualization/weightedgraph_hu_a9106989817361fb.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://clementgodbarge.com/post/visualization/weightedgraph_hu_7b75f2e5fc7edb1b.webp"
width="760"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;</description></item></channel></rss>