إعادة تصنيف المواضيع تلقائيًا من منتدى مستورد من خلال استهداف الكلمات المفتاحية في العناوين؟

مرحبًا،

أقوم باستيراد منتدى قديم وكبير حول ركوب الدراجة أحادية العجلة.

لم تكن الفئات القديمة هي الأفضل، وتم دمج العديد من الأشياء المختلفة معًا.

لذلك، أنا أعيد تنظيم الفئات.

في البداية، كنت أفكر في إعادة تصنيف بضع مئات من الموضوعات الأحدث يدويًا، والحفاظ على القديمة كما هي.

الفكرة هي التركيز على المستقبل، وليس على الماضي. لا يهم كثيرًا إذا كانت الموضوعات القديمة مصنفة بشكل سيئ، الأهم هو أنها لا تزال متاحة.

لكنني أتساءل عما إذا كان إعادة تصنيف الموضوعات تلقائيًا من خلال استهداف الكلمات المفتاحية يمكن أن يؤدي في الواقع إلى عمل جيد.

حاليًا، الغالبية العظمى من موضوعاتنا -أكثر من نصف الإجمالي!- موجودة في فئة واحدة (:scream:).

يمكنني استهداف هذه الكلمات المفتاحية في العناوين: “تعلم”، “التعلم”، “تدريب”، “التدريب”، “وضعية الجسم”، إلخ… وجمع كل هذه الموضوعات في فئة #نصائح-الركوب.

نفس الشيء يمكن أن ينطبق على “إطار”، “عجلة”، “إطار مطاطي”، “مقعد”، إلخ… وهذا سيذهب إلى فئة #الدراجات-المعدات.

سأستهدف الكلمات المحاطة بمسافات وسأحاول توقع التعبيرات متعددة الكلمات وتقليل بعض “الإيجابيات الكاذبة”. مثال: “wheelwalking” (مشي على العجلة) هو حيلة في ركوب الدراجة الأحادية يجب أن تُوجد على الأرجح في فئة #نصائح-الركوب، لذا إذا استهدفت فقط “عجلة” دون تفكير عميق، ستكون هناك إيجابيات كاذبة كان من الممكن تجنبها بسهولة (ومع ذلك، يمكنني نقل الموضوعات التي تحتوي على “عجلة” من أ إلى ب، ثم نقل الموضوعات التي تحتوي على “مشي على العجلة” من ب إلى ج…).

هل قام أي شخص هنا بمثل هذا الشيء؟ هل لديك اقتراحات أو أفكار لتقليل خطر “الإيجابيات الكاذبة”؟ هل هناك أشياء واضحة (أو غير واضحة) أحتاج إلى معرفتها قبل القيام بذلك؟

يجب فحص حوالي 70 ألف موضوع.

نصيحة واحدة: لا تنظر إلى هذا الأمر على أنه يجب إنجازه بشكل صحيح من المحاولة الأولى.

فكرتك في البحث عن الكلمات المفتاحية هي نفس النهج الأول الذي سأتبعه أنا أيضًا. لا تخف من التخلي عن كل العمل الذي قمت به في محاولتك الأولى. إذا لم تكن النتيجة ما تبحث عنه، فاستفد مما تعلمته من المحاولة الأولى وابدأ من الصفر.


تعديل

عند إجراء بحث سريع عن بعض الأدوات المجانية لتحليل الكلمات، وجدت هذه الصفحة المعلوماتية حول تحليل النصوص. قراءة ممتعة.

لقد تعاملت سابقًا مع مشاريع مماثلة باستخدام التعلم غير الخاضع للإشراف مع خوارزمية تجميع K-means. سيكون ذلك تجربة رائعة، وربما تفضي الخوارزمية إلى تصنيف أفضل أيضًا :wink:

يمكنك قراءة المزيد عن هذا النهج هنا https://towardsdatascience.com/applying-machine-learning-to-classify-an-unsupervised-text-document-e7bb6265f52

تمامًا كما قال @EricGT: لا تخف من التكرار، لكن “القريب كافي”، وربما يكون لديك بعض المستخدمين من المستوى 3 (TL3) مستعدين لإعادة التصنيف عند الحاجة.

هذا مثير للاهتمام!

على الأرجح لن أملك الوقت ولا المهارات الكافية لتجربة هذا النهج (فالمنتدى معطل لأكثر من شهر، ولا يزال لدي الكثير من العمل الذي يجب إنجازه!).

بعد تجربة أولى، يبدو أن الاختيار اليدوي للكلمات المفتاحية يحقق نتائج جيدة إلى حد ما، رغم أنني لم أقوم بإعادة التصنيف بعد، بل اكتفيت بالتجربة باستخدام استعلامات SQL.

select title from topics
where category_id = 10
and lower(title) not like '%saddle%'
and lower(title) not like '%crank%'
and lower(title) not like '%pedal%'
and lower(title) not like '%rim%'
and lower(title) not like '%carbon%'
and lower(title) not like '%spoke%'
and lower(title) not like '%wheel%'
and lower(title) not like '%frame%'
and lower(title) not like '%hub%'
and lower(title) not like '%tubeless%'
and lower(title) not like '%disk%'
and lower(title) not like '%hydraulic%'
and lower(title) not like '%duro%'
and lower(title) not like '%dominator%'
and lower(title) not like '%torker%'
and lower(title) not like '%nimbus%'
and lower(title) not like '%bearing%'
and lower(title) not like '%pad%'
and lower(title) not like '%repair%'
and lower(title) not like '%handlebar%'
and lower(title) not like '%kh%'
and lower(title) not like '%kris holm%'
and lower(title) not like '%coker%'
and lower(title) not like '%tube%'
and lower(title) not like '%build%'
and lower(title) not like '%29er%'
and lower(title) not like '%36er%'

and lower(title) not like '%backwards%'
and lower(title) not like '%riding%'
and lower(title) not like '%foot%'
and lower(title) not like '%train%'
and lower(title) not like '%training%'
and lower(title) not like '%learn%'
and lower(title) not like '%learning%'
and lower(title) not like '%dismount%'
and lower(title) not like '%habit%'
and lower(title) not like '%idle%'
and lower(title) not like '%idling%'
and lower(title) not like '%freemount%'
and lower(title) not like '%free mount%'
and lower(title) not like '%free mounting%'

يعيد هذا الاستعلام 33,000 موضوع من أصل 52,000 موضوع في الفئة الرئيسية يمكن إعادة تصنيفها. يبدو الرقم واقعيًا، لكنني على الأرجح أحتاج إلى إضافة المزيد من الكلمات المفتاحية.

يبدو أن هذه الطريقة موثوقة بدرجة كافية.

ماذا فعلت في النهاية هنا؟

إذا كانت لديك كلمات رئيسية فريدة بما يكفي في الموضوعات (أفترض أنك تقوم بالتكرار عبر جميع ردود الموضوعات وعد الكلمات الرئيسية في كل منشور)، فقد يكون من الممكن تصنيف الموضوع تلقائيًا بناءً على وجود عدد كافٍ من الكلمات الرئيسية الفريدة والمحددة في ذلك الموضوع.

(هذا مفيد بشكل أساسي للهجرات، رغم أنك في منتدى مباشر ترغب في أن يكون الموضوع في التصنيف الصحيح من البداية.)

لقد نقلت المواضيع إلى فئات أخرى من خلال التحقق من الكلمات المفتاحية في عناوينها. لقد سار الأمر بشكل جيد بما يكفي ليكون أفضل من الفوضى التي كانت عليه من قبل.

هذه نقطة جيدة؛ ظهور كلمة معينة بشكل متكرر في العديد من عناوين المواضيع دليل قوي على الحاجة إلى إنشاء فئة جديدة. :thinking:

هل قمت بذلك عن طريق استعلام؟ إذا كان الأمر كذلك، فما هو قالب الاستعلام؟ هل كانت هناك أي أنشطة أخرى مطلوبة بعد تشغيل الاستعلام لضمان سلامة قاعدة البيانات؟

يبدو أنه تم ذلك باستخدام نص برمجي للاستيراد، لذلك تم تعديله لاستنتاج فئة من العنوان.

هل تقوم بالاستيراد؟ من أي برنامج؟ إذا كان موجودًا بالفعل في discourse، فيمكنك القيام بذلك من rails.

على حد علمي منذ أن ساعدته في العديد من أعماله المتعلقة بـ Discourse، أتذكر أنه استخدم نص Rails بعد الاستيراد. لقد اختار المواضيع حسب الكلمات المفتاحية في عناوينها، ثم استخدم الأوامر الموثقة رسميًا لنقلها، مثل Administrative Bulk Operations.

أتذكر أيضًا أن نقل المواضيع التي تحتوي على علامات، والأوامر الرسمية، ومهام rake لم يقم بتحديث بعض الجداول بالكامل، وكذلك المهمة الدورية ذات الصلة في Sidekiq.
لا أعرف ما إذا كان هذا لا يزال هو الحال، ولكن قد يكون هذا شيئًا يجب الانتباه إليه في Bulk tagged topics, then moved topics into another category, but the category tag selector doesn't show tags - #3 by Canapin.

آمل أن يكون هذا مفيدًا!