شكاوى مراقبة الذكاء الاصطناعي


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

يمكنك محاولة حل أي مهمة صعبة باستخدام طرق بسيطة ، ولا يعد التعلم الآلي استثناءً.

التعليقات هي أهم المعلومات ، لذا يجب أن تدرس قدر الإمكان كل جزء منها. عند تحليل الشكاوى المقدمة من العملاء ، نرى بموضوعية أي مشاكل في العمليات التجارية تنشأ. نظرًا لأن العمليات غالبًا ما تكون مترابطة ، يمكن تجميعها واعتبارها كمجموعة. وفقًا لذلك ، نصل إلى مهمة التعلم الآلي المعياري (ML) - "التصنيف متعدد الفئات". نتيجة لهذا التحليل ، تم حل المهمة - جمع التحليلات المدمجة للمؤسسة.

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

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

def review_to_wordlist(review):
       		review_text = re.sub('[^--]',' ', review)
       		words = review_text.strip().lower().split()
       		words = [w for w in words if not w in stop_words] 
       		words = [morph.parse(w)[0].normal_form for w in words]
       		new_stop_words = find_names(words)
       		words = [w for w in words if not w in new_stop_words]
       		return words

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

def find_names(words, prob_thresh = 0.4):
    words = [w for w in words if 'str' in str(type(w))]
    add_stop_words = [w for w in words for p in morph.parse(w) if 'Name' in p.tag and
    p.score >= prob_thresh]
    stop_words.update(add_stop_words)
    return stop_words

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

tfidf = TfidfVectorizer(sublinear_tf=True, min_df=5, norm='l2', encoding='utf8',  
    ngram_range=(1, 2), stop_words=stop_words)
features = tfidf.fit_transform(df_temp['Consumer_complaint_narrative'])
labels = df_temp['Num_bp']

تم تحديد تصنيف متجه الدعم الخطي للتصنيف. تم ذلك للأسباب التالية:

  • كفاءة عالية عند العمل بقياسات ذات أبعاد كبيرة ؛
  • عمل مستقر في حالة زيادة البعد على عدد العينات.

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

All Articles