تنفيذ Cython لـ ClickModels التي تستخدم نماذج رسومية احتمالية لاستنتاج سلوك المستخدم عند التفاعل مع نتائج صفحة البحث (الترتيب).
يستخدم ClickModels مفهوم النماذج الرسومية الاحتمالية لنمذجة المكونات التي تصف التفاعلات بين المستخدمين وقائمة العناصر المرتبة حسب مجموعة من قواعد الاسترجاع.
تميل هذه النماذج إلى أن تكون مفيدة عندما يكون من المرغوب فيها فهم ما إذا كانت وثيقة معينة تطابقًا جيدًا لاستعلام بحث معين أم لا معروف أيضًا في الأدب كدرجات الأحكام . هذا ممكن من خلال تقييم النقرات التي تمت ملاحظتها والمواضع التي ظهرت فيها المستند على صفحات النتائج لكل استعلام.
هناك العديد من الأساليب المقترحة للتعامل مع هذه المشكلة. يقوم هذا المستودع بتطبيق شبكة بايزي ديناميكية ، على غرار الأعمال السابقة التي تم إجراؤها أيضًا في بيثون:

الاختلافات الرئيسية هي:
يحتوي دفتر ملاحظات الملف/dbn.ipynb على وصف كامل لكيفية تنفيذ النموذج إلى جانب جميع الرياضيات المعنية.
نظرًا لأن هذا المشروع يعتمد على الثنائيات التي تم تجميعها بواسطة Cython ، يتم دعم منصة Linux (Manunux) فقط. يمكن تثبيته مع:
pip install pyClickModels
تتوقع PyclickModels تخزين بيانات الإدخال في مجموعة من ملفات gz المضغوطة الموجودة في نفس المجلد. يجب أن تبدأ جميعهم مع سلسلة "الأحكام" ، على سبيل المثال ، judgments0.gz يجب أن يحتوي كل ملف على خط Jsons مفصل. فيما يلي مثال على كل خط JSON:
{
"search_keys" : {
"search_term" : " blue shoes " ,
"region" : " south " ,
"favorite_brand" : " super brand " ,
"user_size" : " L " ,
"avg_ticket" : 10
},
"judgment_keys" : [
{
"session" : [
{ "click" : 0 , "purchase" : 0 , "doc" : " doc0 " }
{ "click" : 1 , "purchase" : 0 , "doc" : " doc1 " }
{ "click" : 1 , "purchase" : 1 , "doc" : " doc2 " }
]
},
{
"session" : [
{ "click" : 1 , "purchase" : 0 , "doc" : " doc0 " }
{ "click" : 0 , "purchase" : 0 , "doc" : " doc1 " }
{ "click" : 0 , "purchase" : 0 , "doc" : " doc2 " }
]
}
]
} يقوم key search_keys بتعيين سياق البحث. في المثال أعلاه ، بحث عميل معين (أو مجموعة من العملاء مع نفس السياق) عن blue shoes . منطقتهم south (يمكن أن تكون أي قيمة مختارة) ، والعلامة التجارية المفضلة هي super brand وما إلى ذلك.
هذه المفاتيح تحدد السياق الذي حدث البحث عنه. عندما تدير Pyclickmodels تحسينها ، فإنه سوف ينظر في كل السياق في وقت واحد. هذا يعني أن الأحكام التي تم الحصول عليها هي أيضًا في إعداد السياق بأكمله.
إذا لم يكن هناك أي سياق مطلوب ، فما عليك سوى استخدام {"search_keys": {"search_term": "user search"}} .
لا يوجد مخطط مطلوب هنا مما يعني حلقات المكتبة من خلال جميع المفاتيح المتاحة في search_keys وتبني عملية التحسين مع الأخذ في الاعتبار السياق بأكمله كاستعلام واحد.
أما بالنسبة judgment_keys ، فهذه قائمة بالجلسات. session الرئيسية إلزامية. تحتوي كل جلسة على ClickStream للمستخدمين (إذا لم يكن الشراء المتغير مطلوبًا تعيينه على 0).
لتشغيل DBN من Pyclickmodels ، إليك مثال بسيط:
from pyClickModels . DBN import DBN
model = DBN ()
model . fit ( input_folder = "/tmp/clicks_data/" , iters = 10 )
model . export_judgments ( "/tmp/output.gz" )سيحتوي ملف الإخراج على ملف منفصل JSON الجديد مع الأحكام لكل استعلام وكل مستند لوحظ لهذا الاستعلام ، أي:
{ "search_term:blue shoes|region:south|brand:super brand" : { "doc0" : 0.2 , "doc1" : 0.3 , "doc2" : 0.4 }}
{ "search_term:query|region:north|brand:other_brand" : { "doc0" : 0.0 , "doc1" : 0.0 , "doc2" : 0.1 }}تختلف الأحكام هنا بين 0 و 1. تتطلب بعض المكتبات أن تتراوح بين الأعداد الصحيحة 0 و 4. اختر تحولًا مناسبًا في هذه الحالة يناسب بياناتك بشكل أفضل.
هذه المكتبة لا تزال ألفا! استخدمه بحذر. لم يتم اختباره تمامًا ولكن لا يزال يستخدم أجزاء منه P Pure C التي ربما لم يتم النظر في استثناءاتها تمامًا بعد. يوصى به ، قبل استخدام هذه المكتبة في الإنتاج ، لاختبارها بالكامل مع مجموعات بيانات وأحجام مختلفة لتقييم كيفية أداءها.
المساهمات مرحب بها للغاية! أيضا ، إذا وجدت الأخطاء ، يرجى الإبلاغ عنها :).