شعار زيفيرنت

تصنيف التحرش الجنسي باستخدام التعلم الآلي

التاريخ:

تم نشر هذه المقالة كجزء من مدونة علوم البيانات.

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

التحرش الجنسي باستخدام التعلم الآلي

تصوير داني فرانكو على Unsplash

فهرس

1. مشكلة العمل

2. ML صياغة مشكلة الأعمال

3. تحليل مجموعة البيانات

4. مقاييس الأداء

5. الهدف من دراسة الحالة

6. تحليل البيانات استكشافية

7. المعالجة المسبقة لنص الوصف

8. تضمين نص الوصف

9. النماذج المستخدمة

10 تم تحقيق أداء المقاييس

11 الأساليب التي لم تنجح

12 نشر النموذج

مشكلة العمل

التصنيف التلقائي لنوع التحرش الجنسي سيمكن الأشخاص الذين يرغبون في إجراء تغيير في المجتمع من تحليل البيانات بشكل أفضل ، ولهذا السبب بالذات ، فإن تحديد التحرش الجنسي باستخدام التعلم الآلي سيغير قواعد اللعبة ويضمن عدم حدوث ذلك. وقوع حوادث غير متوقعة. يمكن أيضًا تجميع البيانات من خلال التصنيف الذي يمكن أن يكون حالة استخدام مهمة في تمكين اتخاذ إجراءات أسرع من قبل السلطات. نظرًا لأن لدينا بالفعل العديد من القصص الشخصية حول الاعتداء الجنسي التي تمت مشاركتها عبر الإنترنت من خلال دراسة الحالة هذه ، فسنستخدم البيانات علميًا.

التحرش الجنسي باستخدام التعلم الآلي
                                                        https://arxiv.org/pdf/1809.04739.pdf

ML صياغة مشكلة الأعمال

سنستفيد من البرمجة اللغوية العصبية لتصنيف أنواع التحرش الجنسي بشكل صحيح باستخدام التعلم الآلي (نظرًا لأن الفرز اليدوي لكل منها واتخاذ الإجراءات يمكن أن يستغرق قدرًا هائلاً من الوقت والجهد). يتم استخدام التصنيف الفردي والمتعدد للمهمة للمساعدة في ملء تقارير الحوادث عبر الإنترنت تلقائيًا وتصنيف البيانات وتلخيصها بناءً على نوع الإساءة.

تحليل مجموعة البيانات

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

تتكون مجموعة بيانات التدريب من عمودين

لتصنيف التسمية الواحدة: -

1. وصف الحادث: - لدينا بيانات موجودة باللغة الإنجليزية.

2. الفئة: - المتغير الثنائي 1 يشير إلى المضايقة 0 تشير إلى لا شيء

مثال على ogling:

”كانت كليتي قريبة. حدث هذا في كل وقت. رفاق يمررون التعليقات ، يحدقون ، يحاولون اللمس. محبط "→ مصنف على أنه 1 ، مما يدل على أنه قد تم تحديد التحرش الجنسي باستخدام التعلم الآلي

لقد شاهدت حادثة عندما تم انتزاع سلسلة بوحشية من سيدة عجوز. ووقع الحادث في المساء. → مصنفة على أنها 0

لتصنيف متعدد التصنيفات: -

1. وصف الحادث: - لدينا بيانات موجودة باللغة الإنجليزية.

2. الفئة: - جميع الملصقات القابلة للتطبيق موجودة

على سبيل المثال:

"في الصباح ، كانت امرأة تسير بجانبها وجاء رجل نحيف ونادى باسمها ، وعلق عليها وحدق بها"

هو إيجابي لفئتين: التعليق ، ogling

مقاييس الأداء

سنستخدم مقاييس التقييم أدناه من أجل: -

1. التصنيف الثنائي: - الدقة

2. تصنيف متعدد التسمية: - خسارة ضار

يمكن تعريف Hamming Loss على أنه (المصدر: ويكيبيديا) جزء التسميات الخاطئة إلى العدد الإجمالي للتسميات.

الهدف من دراسة الحالة

تم تطوير دراسة الحالة باستخدام مرجع الورقة (مدينة آمنة: فهم الأشكال المتنوعة لقصص شخصية عن التحرش الجنسي)https://arxiv.org/pdf/1809.04739.pdf)). كان هدفي أثناء العمل في دراسة الحالة هو مطابقة نتائج الورقة (التي تستخدم التعلم العميق) أثناء اتباع مسار مختلف (باستخدام نماذج التعلم الآلي الكلاسيكية) ، دون مزيد من اللغط ، دعنا نبدأ في وصف عملي.

تحليل البيانات استكشافية

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

بيانات

المصدر: المؤلف

عند إجراء مزيد من التحليل للبيانات النصية ، لوحظ أنها تحتوي على بيانات مكررة خاطئة ، ويتم تكرار نفس الوصف للنص وتعيينه إلى فئة مختلفة. كما يمكنك أن ترى أدناه ، يحتوي وصف سوء التصرف على فئة 0 في الصف 199 وفئة 1 في الصف 7175.

التحرش الجنسي باستخدام التعلم الآلي

المصدر: المؤلف

كما لوحظ أن بعض نصوص الوصف لم تكن غنية بالمعلومات.

1. كان سيئا حقا.

2. تم إجراء هذا المسح بواسطة مدينة آمنة (Red Do ...

3. أساء التصرف

4. التحرش

المعالجة المسبقة لنص الوصف

كجزء من المعالجة المسبقة ، اتخذت الخطوات التالية. رمز لكل خطوة متبوعًا بوصف قصير. (تتم مشاركة رابط قاعدة الشفرة بالكامل في نهاية المقالة للرجوع إليها)

1) إلغاء البيانات المكررة

df_train_og.drop_duplicates (subset = "Description"، keep = False، inplace = True) df_train_go.drop_duplicates (subset = "Description"، keep = False، inplace = True) df_train_co.drop_duplicates (subset = "Description"، keep = False، inplace = True) train_df.drop_duplicates (مجموعة فرعية = "الوصف" ، احتفظ = خطأ ، inplace = صحيح)

نستخدم وظيفة pandas drop_duplicates لإزالة البيانات المكررة.

2) إزالة علامات الترقيم وكلمات التوقف

علامات النقاط = ['،'، '.'، '""،': '،') '،' ('،' - '،'! '،'؟ '،' | '،'؛ '، "" " ، '$'، '&'، '/'، '['، ']'، '>'، '٪'، '='، '#'، '*'، '+'، ''، '• '،' ~ '،' @ '،' £ '،' · '،' _ '،' {'،'} '،' © '،' ^ '،' ® '،' ''، '<'، '→'، '°'، '€'، '™'، '›'، '♥'، '←'، '×'، '§'، ''، ''، ''، ' '،' ½ '،' à '،' ... '،' ""، '★'، '' '،' - '،' ● '،' â '،' '،' - '،' '، '²'، '¬'، '░'، '¶'، '↑'، '±'، ''، ''، ''، ''، ''، '-'، ' '،' ▓ '،' - '،' ‹'،' '،' '،' : '،' ¼ '،' '،' ▼ '،' '،' '،' ■ '، '' '،' ▀ '،' ¨ '،' '،' '،' ☆ '،' é '،' '،' ♦ '،' '،' '،' è '،' '،' ¾ '،' Ã '،' ⋅ '،' ''، '∞'، '∙'، ')'، '↓'، '、'، ''، ''، '»'، ','، '♪'، '╩'، '╚'، '³'، '・'، '╦'، ''، '╔'، ''، ''، ''، ' '،' Ø '،' ¹ '،' ≤ '،' ‡ '،' √ '،] def clean_text (data): stop = stopwords.words (' english ') res = [] data [' Description '] = data ['Description']. تطبيق (lambda x: '' .join ([word for word in x.split () if word not in (stop)])) for x in data ['Description']: x = str (x) لعلامات الترقيم: إذا كانت النقطة في x: x = x.

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

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

تضمين نص الوصف

الغرض من تضمين حقل الوصف هو أن نموذج التعلم الآلي لن يفهم الكلمات التي نحتاجها إلى طريقة لتضمين معناها في المتجهات وتقديم نفس الشيء للنموذج.

جربنا استراتيجيتين للتضمين: -

1. TF IDF vectorizer مع ميزات تريجرام وبيجرام ويونيغرام مع 50 ميزة كحد أقصى و min_df من 15. تم تحديد هذه القيم عن طريق التجربة.

2. استخدام ترميز الجملة الشامل لتضمين الجملة. يقوم بتحويل نص الإدخال متغير الطول إلى متجه 512 بعد. لقد ورد في العديد من الأوراق البحثية أن استخدام مشفر على مستوى الجملة مفيد على مستوى الكلمات لأنه يحافظ على المعلومات السياقية.

النماذج المستخدمة

لقد استخدمنا نماذج التعلم الآلي أدناه للتصنيف أحادي التسمية

1. الانحدار اللوجستي (كنموذج أساسي)

2. XGBoost

3. LightGBM

لتصنيف متعدد العلامات ، استخدمنا الصلة الثنائية مع المتعلمين الأساسيين لمصنفات ناقلات الدعم و XGBoost.

الملاءمة الثنائية: - يحل التصنيف متعدد الملصقات عن طريق تحويلها إلى مشاكل تصنيف ذات تسمية واحدة L ويكون الناتج اتحادًا على جميع تصنيفات التسمية المفردة L. يمكنك الرجوع إلى الوثائق هنا. http://scikit.ml/api/skmultilearn.problem_transform.br.html

تم تحقيق أداء المقاييس

بالنسبة لتصنيف الملصق الفردي ، وصلنا إلى المقاييس التالية ، فهذه النتائج قابلة للمقارنة بمخرجات الورقة الأصلية ، ولكل فئة في بيانات الاختبار ، فإننا أقل دقة بنسبة 2٪ فقط من الورقة لأن الورقة تستخدم تقنيات معقدة للتعلم العميق ولدينا استخدمت نماذج التعلم الآلي الكلاسيكية في دراسة الحالة الخاصة بنا.

تم تحقيق مقياس دراسة الحالة:

المقاييس

                                                                                         المصدر: المؤلف

مقياس الورق الأصلي:

                                                                      https://arxiv.org/pdf/1809.04739.pdf

بالنسبة للتصنيف متعدد الملصقات ، فإن دراسة الحالة التي أجريناها تؤدي بشكل أفضل قليلاً من الورقة كما يتضح من درجات الطرق أدناه.

تم تحقيق مقياس دراسة الحالة:

المقاييس

المصدر: المؤلف

مقياس الورق الأصلي:

المصفوفة الأصلية
                                                https://arxiv.org/pdf/1809.04739.pdf

مقاربات لم تنجح

حاول SMOTE لعدم توازن البيانات ، ولم يحسن الدقة

نشر النموذج

لقد استخدمت Flask API و Heroku لنشر نموذجي. كان متاح للوصول

https://predict-abuse.herokuapp.com/index

يوجد أدناه عرض توضيحي مباشر للنموذج الذي تم نشره:

https://youtu.be/9_YYODlDHj

الارتباط بقاعدة الشفرة الخاصة بي بالكامل: - https://www.kaggle.com/aliphya/casestudy-eda-baseline-model

مراجع حسابات

https://mlwhiz.com/blog/2019/01/17/deeplearning_nlp_preprocess/

قم بترقية مشروعك للمبتدئين في البرمجة اللغوية العصبية باستخدام BERT 

لا يجب أن يكون التعلم العميق معقدًا.

Towardsdatascience.com

https://deeplizard.com/learn/video/gZmobeGL0Yg

عن المؤلف

أنا أليفيا، يعمل حاليًا كمحلل. من خلال كتابة هذه المقالات أحاول تعميق فهمي للتعلم الآلي التطبيقي.

الارتباط بقاعدة الشفرة الخاصة بي بالكامل: - https://www.kaggle.com/aliphya/casestudy-eda-baseline-model

لقراءة المزيد من المقالات التي نشرتها Alifia ، انقر فوق هنا

الوسائط الموضحة في هذه المقالة ليست مملوكة لشركة Analytics Vidhya ويتم استخدامها وفقًا لتقدير المؤلف.

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة