لمن يتساءلون عن كيفية عرض قاعدة بيانات نتائج التصنيف لوحدتي “مشاعر المجتمع” (Community Sentiment) و"السمية" (Toxicity)، يمكن القيام بذلك باستخدام المكون الإضافي لاستكشاف البيانات (Data Explorer)، وجدول classification_results.
هذا مفيد لرؤية كيفية عمل المكون الإضافي للذكاء الاصطناعي على موقعك وتصنيف المنشورات.
مشاعر الذكاء الاصطناعي (AI Sentiment)
SELECT target_id as post_id,
model_used,
classification->'negative' as negative,
classification->'neutral' as neutral,
classification->'positive' as positive
from classification_results
WHERE model_used = 'sentiment'
order by id desc
SELECT target_id as post_id,
model_used,
classification->'neutral' as neutral,
classification->'sadness' as sadness,
classification->'surprise' as surprise,
classification->'fear' as fear,
classification->'anger' as anger,
classification->'joy' as joy,
classification->'disgust' as disgust
from classification_results
WHERE model_used = 'emotion'
order by id desc
SELECT target_id as post_id,
classification->'toxicity' as toxicity,
classification->'severe_toxicity' as severe_toxicity,
classification->'obscene' as obscene,
classification->'identity_attack' as identity_attack,
classification->'insult' as insult,
classification->'threat' as threat,
classification->'sexual_explicit' as sexual_explicit
From classification_results
WHERE classification_type = 'toxicity'
order by id desc
هل هناك طريقة لإضافة عامل تصفية إلى هذا الاستعلام للحصول على المنشورات من خيط معين؟ حاليًا، يبدو أنه يحصل على منشورات عبر المجتمع بأكمله، وهو أمر جيد، ولكنه أيضًا مرهق للعثور على منشور/خيط معين تبحث عنه، ناهيك عن أنك ستصل إلى حد الصف لهذا.
هل يعمل هذا لمواضيع محددة؟ سيتعين عليك تحديد معرف الموضوع في المعلمات.
-- [params]
-- int :topic_id =
SELECT cr.target_id as post_id,
cr.model_used,
cr.classification->'negative' as negative,
cr.classification->'neutral' as neutral,
cr.classification->'positive' as positive
FROM classification_results cr
JOIN posts p ON p.id = cr.target_id
WHERE cr.model_used = 'sentiment'
AND p.topic_id = :topic_id
ORDER BY cr.id DESC
-- [params]
-- topic_id :topic_id
SELECT
cr.target_id as post_id,
cr.model_used,
cr.classification->'negative' as negative,
cr.classification->'neutral' as neutral,
cr.classification->'positive' as positive
FROM classification_results cr
JOIN posts p ON p.id = cr.target_id
WHERE cr.model_used = 'sentiment'
AND p.topic_id = :topic_id
ORDER BY p.id
آه، لقد سبقتني.
ولكن إليك واحد لمنشور معين أيضًا فقط حتى لا تشعر بأنها ردود غير مجدية:
-- [params]
-- topic_id :topic_id
-- int :post_number
SELECT
cr.target_id as post_id,
cr.model_used,
cr.classification->'negative' as negative,
cr.classification->'neutral' as neutral,
cr.classification->'positive' as positive
FROM classification_results cr
JOIN posts p ON p.id = cr.target_id
WHERE cr.model_used = 'sentiment'
AND p.topic_id = :topic_id
AND p.post_number = :post_number
يمكن العثور على topic_id و post_number في عنوان URL، لذا فهو سهل الاستخدام للغاية.
-- [params]
-- int :category_id =
SELECT cr.target_id as post_id,
cr.model_used,
cr.classification->'negative' as negative,
cr.classification->'neutral' as neutral,
cr.classification->'positive' as positive
FROM classification_results cr
JOIN posts p ON p.id = cr.target_id
JOIN topics t ON t.id = p.topic_id
WHERE cr.model_used = 'sentiment'
AND t.category_id = :category_id
ORDER BY cr.id DESC
@JammyDodger سيكون على دراية أفضل، ولكن نعم أعتقد أن تحليل المشاعر يعمل على المنشورات الجديدة. أعتقد أنه لكي يتم استخدامه للمنشورات القديمة، قد يتطلب الأمر بعض أوامر Rails لمعالجتها من خلال نموذج المشاعر، وإدخالها في جدول classification_results (حيث توجد نتائج تحليل المنشورات الجديدة).
هل يمكن لأحدكم (أو لمستعلم لامع آخر) مساعدتي في ضبط هذا قليلاً؟ أود الحصول على معلمات للتواريخ وأن تتوافق هذه التواريخ مع تاريخ النشر. الهدف النهائي هنا هو أن أكون قادرًا على النظر إلى التغييرات بمرور الوقت أثناء انتظار رؤية ما إذا كانت لوحة المعلومات يمكنها القيام بذلك في المستقبل
إذا كنت ترغب في تحسين تلك الاستعلامات لتشمل معلمات تاريخ البدء والانتهاء، يمكنك استخدام استعلام مثل هذا:
-- [params]
-- date :start_date = 2023-01-01
-- date :end_date = 2024-01-01
SELECT
p.created_at,
cr.target_id as post_id,
cr.model_used,
cr.classification->'negative' as negative,
cr.classification->'neutral' as neutral,
cr.classification->'positive' as positive
FROM classification_results cr
JOIN posts p ON p.id = cr.target_id
WHERE cr.model_used = 'sentiment'
AND p.created_at BETWEEN :start_date AND :end_date
ORDER BY cr.id DESC
نتائج مثال:
created_at
post
model_used
negative
neutral
positive
2023-11-08T21:21:23.913Z
post_id
sentiment
58
38
2
الجزء المهم المضاف هنا هو ربط جدول posts بجدول classification_results حتى نتمكن من إضافة:
AND p.created_at BETWEEN :start_date AND :end_date
إلى عبارة WHERE لتصفية المنشورات حسب تاريخ created_at الخاص بها.
نظرًا لأن استعلامات تصنيف emotion و toxicity متشابهة، يمكنك تعديل تلك الاستعلامات بهذا الإضافة لتشمل معلمات تاريخ البدء والانتهاء أيضًا.