<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>البحوث الجارية |</title><link>https://clementgodbarge.com/ar/tag/%D8%A7%D9%84%D8%A8%D8%AD%D9%88%D8%AB-%D8%A7%D9%84%D8%AC%D8%A7%D8%B1%D9%8A%D8%A9/</link><atom:link href="https://clementgodbarge.com/ar/tag/%D8%A7%D9%84%D8%A8%D8%AD%D9%88%D8%AB-%D8%A7%D9%84%D8%AC%D8%A7%D8%B1%D9%8A%D8%A9/index.xml" rel="self" type="application/rss+xml"/><description>البحوث الجارية</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>ar</language><lastBuildDate>Sun, 12 Dec 2021 00:00:00 +0000</lastBuildDate><image><url>https://clementgodbarge.com/media/icon_hu_64a6c3bec25b3d7b.png</url><title>البحوث الجارية</title><link>https://clementgodbarge.com/ar/tag/%D8%A7%D9%84%D8%A8%D8%AD%D9%88%D8%AB-%D8%A7%D9%84%D8%AC%D8%A7%D8%B1%D9%8A%D8%A9/</link></image><item><title>The Spy Who Wished Them Well</title><link>https://clementgodbarge.com/ar/project/book1/</link><pubDate>Sun, 12 Dec 2021 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/project/book1/</guid><description>&lt;p&gt;تفاصيل أوفى قريبًا.&lt;/p&gt;</description></item><item><title>أتمتة الترميز في الطبعات العلمية الرقمية</title><link>https://clementgodbarge.com/ar/post/gpt3/</link><pubDate>Mon, 22 Nov 2021 18:15:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/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="#المحولات-transformers-أقصر-الطرق-إلى-الأتمتة"&gt;المحوّلات (Transformers): أقصر الطرق إلى الأتمتة؟&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; نص عادي &lt;/th&gt;
&lt;th&gt; ترميز XML&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="المحولات-transformers-أقصر-الطرق-إلى-الأتمتة"&gt;المحوّلات (Transformers): أقصر الطرق إلى الأتمتة؟&lt;/h2&gt;
&lt;p&gt;في عام 2020 أطلقت
، بضجة كبيرة، أحدث أسرة من نماذجها اللغوية الكبيرة ذات الأغراض العامة، وسمّتها GPT-3، اختصارًا لـ«Generative Pre-trained Transformer 3». والمحوّلات فتحٌ حديث العهد نسبيًّا في الذكاء الاصطناعي: تتعلم المهام الجديدة بسرعة مذهلة بمجرد قراءة موجّه (prompt) والنظر في عدد قليل جدًّا من الأمثلة، وتقبل كذلك تدريبًا إضافيًّا على مجموعة بيانات مخصوصة (الضبط الدقيق) يحسّن زمن استجابتها ودقتها. ولهذا نقول إن GPT-3 وأشباهه من المحوّلات
.&lt;/p&gt;
&lt;p&gt;وتزعم OpenAI أن GPT-3 يضم عددًا قياسيًّا من المعاملات يبلغ 175 مليارًا، وأنه دُرّب على ما يزيد على 570 غيغابايت من النصوص، جُلّها وثائق إنجليزية مأخوذة على الأرجح من
. وبفضل حجمه الهائل وحده أرسى GPT-3 معيارًا جديدًا في هذا الميدان، فهو ينجز من فوره مهامّ متنوعة بواقعية تبعث على القلق: يكتب
مقبولة، و
في غرف الدردشة، و
، و
، ويترجم الوثائق، ويفسّر المصطلحات، وغير ذلك.&lt;/p&gt;
&lt;p&gt;وقد أتاح لي الوصول المبكر إلى واجهة OpenAI البرمجية منذ مايو 2021 أن أختبر قدرة النموذج على مهامّ يُشهد لها بالصعوبة، كترجمة الشعر الفرنسي والنصوص اللاتينية الحديثة إلى الإنجليزية، وشرح المماثلات (analogies)، بل تبسيط الكتاب الرابع من &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;/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; الذي جاء اسمه على مسمّاه. وتعرض شركات ناشئة أصغر، مثل
و
، واجهات برمجية للجمهور. وتجدر الإشارة كذلك إلى مبادرات مفتوحة المصدر مثل
. ولما كان مشهد الذكاء الاصطناعي يتبدل بسرعة، فلمتابعة جديد الميدان راجعوا
.&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/ar/post/treemap2/</link><pubDate>Sat, 20 Nov 2021 16:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/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;تحسن المشاهدة إذا ضبطتم الصفحة على الوضع الفاتح (انقروا أيقونة القمر في أعلى اليمين).&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/ar/post/dashboard/</link><pubDate>Mon, 24 May 2021 16:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/post/dashboard/</guid><description>&lt;h1 id="المشكلة"&gt;المشكلة&lt;/h1&gt;
&lt;p&gt;قد تبلغ الفوضى في الأرشيفات التاريخية حدًّا يبعث على اليأس، ورصيد &lt;em&gt;Mediceo del Principato&lt;/em&gt; في
خير شاهد. فلم يُجرد منه إلا نزر يسير، وتناثر كثير من وثائقه في ما يزيد على 6500 مجلد من غير سبب ظاهر. ويزيد الطين بلّة أن الأرشيف لا يتيح لكم الاطلاع إلا على عدد محدود من المجلدات (أو الـ&lt;em&gt;filze&lt;/em&gt; كما يسمونها): أربع &lt;em&gt;filze&lt;/em&gt; في اليوم في الأحوال العادية، هبطت في زمن الجائحة إلى أربع كل أسبوعين. وإذ تغيب الجرود المفصّلة، فإن ضخامة الأرشيف تُلجئ الباحث إلى ابتداع الحيل كي يهتدي سريعًا إلى ما ينشده من وثائق.&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;filze&lt;/em&gt;: كُتبت بهويات شتى، إلى مرسَل إليهم مختلفين لا يُتوقع بعضهم، ومن أماكن متباعدة، وهلم جرًّا. ولكي أهتدي إلى الـ&lt;em&gt;filze&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/ar/post/visualization/</link><pubDate>Sun, 20 Dec 2020 18:15:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/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. ويمكن بدل ذلك توليد ملفات .csv على المقاس، مع إضافة مزيد من الترميز، بفضل
، الأداة الممتازة التي أعدّها ماثيو كومار (Matthew Kumar)، وهي نسخة من المخطوطة BnF Ms. Fr. 640 بلغة Python.&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;فضلًا عن شبهها بحشرة «مُبكسَلة» (نعم، الكلمة مثبتة في قاموس أكسفورد)، تفصل خريطة التجميع العنقودي فصلًا بيّنًا بين الوسوم المعزولة (في الأعلى وعلى اليسار) والوسوم الأوثق ترابطًا. ونميّز فيها كذلك عناقيد منعزلة، كالموسيقى واللهجة البواتفينية (من كان يظن!)، من عناقيد أدنى إلى المركز كالمقاييس والمواد والتعريفات والأسلحة. أما المهن فأشد ترابطًا، لكنها لا تنتمي، في مصفوفة الارتباط هذه على الأقل، إلى عنقود بعينه.&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;Gephi&lt;/code&gt; بالدالة &lt;code&gt;.write_gexf()&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><item><title>المراسلات السرية لفيليبو كافريانا، 1568—1589.</title><link>https://clementgodbarge.com/ar/project/cavrianas-correspondence/</link><pubDate>Fri, 27 Dec 2019 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/project/cavrianas-correspondence/</guid><description>&lt;p&gt;رسائل فيليبو كافريانا (Filippo Cavriana) السرية شهادةٌ لا نظير لها على الحروب الدينية الفرنسية؛ فهي تتابع، على امتداد ما يزيد على 20 عامًا، الدسائس والمعارك والمفاوضات والمؤامرات التي كانت تضبط إيقاع الحياة في البلاط الفرنسي وما وراءه.&lt;/p&gt;
&lt;p&gt;وتُحفظ هذه الرسائل في
، مبعثرةً في أغلبها بين مئات الحزم التي لم تُجرد بعد، أو الـ&lt;em&gt;filze&lt;/em&gt; كما يسمونها هناك. ولئن وُفّقت في السنوات الأخيرة إلى الكشف عن عشرات الرسائل الجديدة، فإن هذا الضرب من البحث الأرشيفي يزداد عسرًا يومًا بعد يوم: فبُعد المسافة عن فلورنسا، وتردّي بعض المرافق العامة في إيطاليا، وجائحة كوفيد-19، كلها تجعل من مشاريع النشر هذه مسارًا طويلًا لا يُؤمن عاقبته.&lt;/p&gt;
&lt;p&gt;على أن نشر المصادر الأولية ينبغي أن يبقى، مهما تعاظمت الصعاب، من صميم عمل المؤرخ. غير أن الصورة التي يتخذها هذا النشر لا بد أن تتغير على الأرجح: فليس المطلوب أن يتلاءم مع الوضع الذي وصفته آنفًا فحسب، بل أن يعبّر تعبيرًا أصدق عن الطابع التراكمي لهذا البحث، وأن يتيح لغيري أن يكمل المسيرة من حيث توقفت.&lt;/p&gt;
&lt;p&gt;ومن هنا نشأت فكرة استحداث ضرب جديد من مشاريع النشر الرقمي يكون &lt;strong&gt;قابلًا للتوسع&lt;/strong&gt;، و&lt;strong&gt;مستدامًا&lt;/strong&gt;، و&lt;strong&gt;موثوقًا&lt;/strong&gt;، و&lt;strong&gt;مستقلًّا عن المنصة&lt;/strong&gt;، وربما &lt;strong&gt;تعاونيًّا&lt;/strong&gt; أيضًا.&lt;/p&gt;
&lt;p&gt;وها هي الطبعة على الشبكة اليوم: &lt;strong&gt;
&lt;/strong&gt;. تجمع ما نُسخ من الرسائل حتى الآن، من أرشيفَي الدولة في فلورنسا ومانتوفا ومن المكتبة الوطنية الفرنسية (BnF)، وتكبر كلما طفت رسائل جديدة على السطح. وقد بسطت الحجج التي أملت تصميمها في
.&lt;/p&gt;</description></item></channel></rss>