Keluhan Pengawasan Kecerdasan Buatan


Setiap organisasi keuangan adalah organisme hidup dan proses di dalamnya tidak sempurna. Ketidaksempurnaan proses menimbulkan ketidakpuasan pelanggan, yang bahkan dapat berubah menjadi keluhan. Pada artikel ini, kita akan berbicara tentang kontribusi kita pada proses otomasi dengan menerapkan proyek Machine Learning kecil.

Anda dapat mencoba menyelesaikan tugas sulit menggunakan metode sederhana, dan Machine Learning tidak terkecuali.

Umpan balik adalah informasi yang paling berharga, jadi Anda harus belajar sebanyak mungkin setiap bitnya. Menganalisis keluhan dari pelanggan, kami melihat secara objektif di mana masalah proses bisnis muncul. Karena proses sering saling berhubungan, mereka dapat dikelompokkan dan dianggap sebagai kelompok. Dengan demikian, kita sampai pada tugas Machine Learning (ML) standar - “klasifikasi multikelas”. Sebagai hasil dari analisis ini, tugas diselesaikan - pengumpulan analitik konsolidasi untuk organisasi.

Tugas klasifikasi adalah tugas di mana ada banyak objek dibagi ke dalam kelas dengan cara tertentu. Dalam kasus klasifikasi multi-kelas, jumlah kelas harus lebih dari 2 dan bahkan dapat mencapai ribuan.

Data tentang keluhan dan respons terhadapnya disimpan di server, proses pembongkaran dan pra-pemrosesan dilakukan sebagai standar melalui permintaan ke basis data, pada output kita mendapatkan kerangka data dengan data yang akan kita kerjakan. Keluhan dan jawabannya adalah dokumen yang cukup panjang. Misalnya, respons terhadap keluhan dapat mencapai ratusan atau bahkan ribuan kata. Memproses teks semacam itu secara langsung sangat mahal (secara komputasi), oleh karena itu diperlukan pemrosesan teks.

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

Akurasi menurut model pada dasarnya tergantung pada keunikan teks, oleh karena itu perlu untuk menghapus kata-kata dari teks yang tidak membawa banyak makna - "kata-kata berhenti". Biasanya komposisi kata-kata meliputi preposisi, konjungsi, dan bagian-bagian ucapan yang tidak penting lainnya. Kami juga menambahkan kamus kata berhenti dengan nama depan dan tengah.

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

Sebelum pelaksanaan proyek, klasifikasi dilakukan secara manual, oleh karena itu, kami memiliki data yang ditandai oleh para ahli. Dan ini adalah tugas mengajar ML klasik dengan seorang guru. Teks pra-diproses dikurangi menjadi tampilan yang dapat diproses model. Untuk melakukan ini, kami menerjemahkan respons terhadap keluhan ke dalam vektor fitur (variabel independen yang digunakan dalam kode adalah fitur, variabel dependen adalah label).

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']

Klasifikasi Vektor Dukungan Linier dipilih untuk klasifikasi. Ini dilakukan karena alasan berikut:

  • efisiensi tinggi ketika bekerja dengan pengukuran dimensi besar;
  • pekerjaan stabil jika terjadi kelebihan dimensi dibandingkan jumlah sampel.

Proyek ini telah disiapkan untuk implementasi di prom. Setiap hari, model akan melakukan klasifikasi data yang dimasukkan selama hari kerja. Pada tahap awal, verifikasi manual tambahan dari karya model oleh seorang ahli seharusnya. Sekali sebulan, model akan dilatih ulang. Implementasi proyek ini memungkinkan kami untuk mengambil satu langkah lebih dekat ke masa depan!

All Articles