Tạo trung tâm cuộc gọi Python

Bài viết này tiếp nối bài viết trước của tôi về cách sử dụng Máy học trong môi trường Hỗ trợ. Tôi đã chia sẻ quan điểm của mình về cách sử dụng mã python đơn giản mà chúng ta có thể làm phong phú thêm các hoạt động của bộ phận hỗ trợ/trung tâm cuộc gọi trong tổ chức hoặc tổ chức khách hàng của chính mình. Trong bài viết đó, tôi đã chia sẻ thông tin chi tiết về những gì và cách chúng ta có thể tạo ra sự khác biệt đối với môi trường hiện tại bằng cách sử dụng ML để mang lại thời gian phục vụ tốt hơn trong việc giải quyết các cuộc gọi của khách hàng và tránh lặp lại các yêu cầu giống nhau được đưa ra bởi nhiều người dùng của cùng một khách hàng với

Từ điển Python đã được sử dụng để tạo nhật ký giải quyết hỗ trợ lịch sử rất hữu ích, sẽ rất hữu ích cho những người L1/L2 (Cấp 1, Cấp 2), những người thường xuyên tham gia vào chế độ chữa cháy và đảm bảo SLA không bị vi phạm và leo thang không chuyển đến . Bạn có thể tham khảo blog trước đây của tôi tại đây

Nhìn chung, nhân viên hỗ trợ đã dành một lượng thời gian đáng kể để giải quyết phiếu yêu cầu đã xảy ra trong quá khứ, do các kỹ sư khác nhau làm việc trong các trung tâm cuộc gọi 24x7 và họ có thể không biết giải pháp đã tồn tại hoặc sẽ mất . Ngoài ra, nếu chúng tôi có thể tự động hóa ưu tiên yêu cầu, nó sẽ giảm thời gian ngừng hoạt động hiện tại để tạo mức độ ưu tiên cho yêu cầu và cải thiện quy trình tổng thể

Trong blog này, tôi sẽ chia sẻ thêm một số ý tưởng về cách chúng ta có thể sử dụng NLP trong các hoạt động Hỗ trợ của tổ chức, điều này sẽ giúp ích cho nhân viên hỗ trợ và cũng cải thiện quy trình tổng thể đến mức sẽ có những thay đổi rõ rệt hơn so với trước đây. Blog này được chia thành 3 Phần/ Chủ đề như bên dưới

Phần 1

Tính chất/Tầm quan trọng của Vé. Trong bất kỳ loại môi trường được hỗ trợ nào, điều rất quan trọng là phải biết loại vé chúng tôi nhận được từ môi trường sản xuất và lý do giống nhau. Sau đây mình chia sẻ một số báo cáo phân tích đơn giản nhưng rất hiệu quả có thể lấy từ lệnh đơn giản trong python

Phần 2

Mức độ ưu tiên của vé hỗ trợ. Thông thường, các Ưu tiên được đặt thành các cuộc gọi P1, P2, P3, P4 trong đó P1, P2 cần được giải quyết ngay lập tức vì nó ảnh hưởng đến hoạt động kinh doanh. P3, P4 là các lỗi phần mềm cần được fix trong thời gian nhất định, tuy không ảnh hưởng đến hoạt động nên nhân viên hỗ trợ sẽ có thời gian, ví dụ 2-3 ngày đối với cuộc gọi P3 thông thường và 1 tuần đối với cuộc gọi P4. Trong phần này, tôi đã chia sẻ cách chúng ta có thể sử dụng ML để tự động hóa các ưu tiên của bất kỳ phiếu hỗ trợ nào từ kho dữ liệu lịch sử trước đây và cũng giảm thời gian 15-30 phút (nếu sử dụng bất kỳ công cụ nào như Jira, v.v.) xuống còn 2-3

Phần 3

Xác định các vé tương tự từ kho văn bản. Có phải cùng một yêu cầu được huy động từ nhiều khách hàng với các thay đổi nhỏ không? . Trong phần này, tôi sẽ cho bạn biết cách chúng tôi có thể kiểm tra các yêu cầu giống nhất từ ​​kho dữ liệu lịch sử, điều này sẽ giúp cung cấp thời gian giải quyết nhanh nếu giải pháp đã tồn tại từ yêu cầu cũ hơn và sẽ không cần phải sao chép phân tích. Ngay cả khi các vé không giống nhau nhưng rất giống nhau, một kỹ sư sẽ nhanh chóng có được ý tưởng về cách tiến hành phân tích và tiết kiệm thời gian ở đó. Vì vậy, chúng ta hãy đi đến các chủ đề bây giờ

chủ đề 1. Ít báo cáo phân tích/thống kê hữu ích nhưng đơn giản

Tạo trung tâm cuộc gọi Python

Biểu đồ trên có thể được tạo bằng các lệnh python đơn giản nhưng rất hữu ích. Nó mô tả các tồn đọng hỗ trợ hiện tại (từ một tập hợp tất cả P3, chỉ P4) theo mức độ ưu tiên. Kế tiếp

Tạo trung tâm cuộc gọi Python

Cái này cho biết tất cả Ai được chỉ định các vấn đề và số lượng các vấn đề mở theo từng Kỹ sư. Tương tự như vậy, một số biểu đồ khác có thể được lấy ra (Issue_Resolution_category. {Lỗi phần mềm. (99),Lỗi người dùng. 20, Hiệu suất. 15,Không tái sản xuất. 4……. } , Sự cố phần mềm. {Máy chủ Java. (55),Môi trường (11), Tăng trưởng log. (3)…. } vân vân

chủ đề 2. Ưu tiên vé tự động

Ảnh chụp tập dữ liệu

data.columns

Đầu ra-

Index (['Summary', 'Issue key', 'Issue id', 'Issue Type', 'Status',
       'Project key', 'Project name', 'Project type', 'Project lead',
       'Project description',’Description’,’Priority’,
       ...
       'Comment1', 'Comment2', 'Comment3'], dtype='object', length=341)

Hiện tại, các cột tôi sẽ sử dụng cho bài viết này là các cột 'Tóm tắt', 'Mô tả' và 'Mức độ ưu tiên'. Trước tiên hãy kiểm tra sự phân phối của Tóm tắt và Mô tả

Tạo trung tâm cuộc gọi Python
Tạo trung tâm cuộc gọi Python

Từ những điều trên, có thể thấy hầu hết các Summary đều có độ dài từ 4-8 từ và Description có độ dài từ 50-65 từ

Tôi có một kho dữ liệu lịch sử trong quá khứ. Sử dụng điều này, chúng tôi sẽ giải quyết vấn đề phân loại nhiều lớp dự đoán mức độ ưu tiên, cho vé. Trong bài viết này, trọng tâm của blog cụ thể này là về ứng dụng hơn là bản thân các khái niệm thực tế. Tuy nhiên, tôi sẽ làm nổi bật tất cả các lĩnh vực chính và chạm vào các khái niệm xung quanh nó. Tôi sẽ trình diễn TfidfVectorizer nhưng đối với phiên bản có thể triển khai, chúng tôi cần làm cho mô hình mạnh mẽ hơn và cũng thử các mô hình được đào tạo trước khác nhau như W2Vec hoặc Glove

Data.shape

đầu ra

(1000, 341)
df = data[['Summary','Description','Priority']]

đầu ra

Các hàng mẫu từ khung dữ liệu

Tóm tắtMô tảƯu tiênOWD. phần mềm xyz. com –Chào Paul- \n\nOWD. phần mềm xyz. com, đã giảm một thời gian ngắn ngày hôm nay. Tất cả các dịch vụ đều đang chạy nên Magios không thông báo cho chúng tôi. Khi người dùng đăng nhập, sau khi nhập thông tin đăng nhập, người dùng sẽ quay lại màn hình đăng nhập mà không gặp lỗi. Tôi đã giải quyết vấn đề bằng cách khởi động lại dịch vụ. Chúng tôi đã không gặp sự cố này trong vài tuần tại OWD. \n\n \n\Bạn có thể xem liệu có …Sự cố báo cáo sản xuất của MediumK không. Bạn có thể kiểm tra hệ thống giám sát AWS để tìm bất kỳ lỗi nào và máy chủ Kate spade Production không? . Chúng tôi không thấy bất kỳ sự cố nào khi đăng nhập ở phía hỗ trợ. Đây chỉ là để kiểm tra đầy đủ và báo cáo lại cho Kate spade. bộ phận hỗ trợ cho rằng vấn đề nằm ở mạng của Kate Spade. \n \nNhận [Đầu ra…Trung bình

Tạo X, y cho Model

Khi chúng tôi đã hoàn thành tất cả các bước tiền xử lý (nghĩa là gán các giá trị bị thiếu nếu có và làm sạch dữ liệu bằng NLTK hoặc Spacy, chúng tôi sẽ có 2 cột bổ sung được tạo là Tóm tắt sạch và mô tả sạch. Bây giờ, hãy tạo một cột mới hơn trong Khung dữ liệu vì 'Vé' sẽ là sự kết hợp của Tóm tắt và mô tả như bên dưới

 df['Ticket'] = df['clean_Summary'] + ' ' + df ['clean Description']

Nhãn Mã hóa mục tiêu (Giá trị cột ưu tiên trong trường hợp này)

le = LabelEncoder()
df['Priority'] = le.fit_transform(df['Priority'].values)

Dưới đây là đoạn mã cho mô hình ML sử dụng TfidfVectorizer

from sklearn.preprocessing import LabelEncoder
from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizer
tf = TfidfVectorizer(min_df=5,max_df=0.9)  # remove terms that are less frequent or too frequent
tf.fit(df['Ticket'].values)
td_vec = tf.transform(df['Ticket'].values)

________số 8

Cuối cùng là mô hình

from sklearn import naive_bayes
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

 # Naive bayes model
model = naive_bayes.MultinomialNB()
model.fit(X_train,y_train)
nbp = model.predict(X_val)
accuracy_score(y_val,nbp)

0.556

model = LogisticRegression()
model.fit(X_train,y_train)
nbp = model.predict(X_val)
accuracy_score(y_val,nbp)

0.58

Bây giờ, làm thế nào để cải thiện điểm chính xác hơn nữa? . Tôi sẽ làm nổi bật cái đầu tiên trong bài viết này

  1. Dữ liệu văn bản Tăng cường
  2. Tạo một tính năng Trọng lượng mới. (Các vấn đề có mức độ ưu tiên cao sẽ có nhiều trọng số hơn vấn đề có mức độ ưu tiên trung bình, v.v.)
  3. Upsampling để cân bằng lớp mục tiêu

Tăng cường dữ liệu văn bản

Ở đây, chúng tôi chỉ đơn giản là xáo trộn ngẫu nhiên các mã thông báo trong mỗi câu để tạo một câu mới. Hãy nhớ rằng bối cảnh có thể thay đổi, vì vậy chúng tôi cần tìm một số giá trị tối ưu cho các bản ghi mới hơn được tạo. Vì trong trường hợp của tôi, độ dài mô tả vé trung bình nằm trong khoảng 50-65 mã thông báo, tôi đã tạo 5 số phát hành mới từ mỗi kho văn bản phát hành ban đầu. (1000 -> 5000). Đoạn mã dưới đây-

Index (['Summary', 'Issue key', 'Issue id', 'Issue Type', 'Status',
       'Project key', 'Project name', 'Project type', 'Project lead',
       'Project description',’Description’,’Priority’,
       ...
       'Comment1', 'Comment2', 'Comment3'], dtype='object', length=341)
0

Sau khi độ chính xác của mô hình tăng cường dữ liệu văn bản được cải thiện như bên dưới

Index (['Summary', 'Issue key', 'Issue id', 'Issue Type', 'Status',
       'Project key', 'Project name', 'Project type', 'Project lead',
       'Project description',’Description’,’Priority’,
       ...
       'Comment1', 'Comment2', 'Comment3'], dtype='object', length=341)
1

Cuối cùng, chúng ta có thể thử thêm một số mô hình như Random forest, XGBoost, LightGBM, v.v. và so sánh kết quả với các mô hình khác

Bây giờ đến phần cuối cùng của blog này

chủ đề 3. Xác định hầu hết các sự cố giống hệt nhau từ kho dữ liệu Ticket

Điều này giúp biết trước trước khi bắt đầu phân tích nguyên nhân gốc rễ của bất kỳ yêu cầu nào nếu có bất kỳ yêu cầu tương tự nào được báo cáo và nếu có thì giải pháp được cung cấp cho yêu cầu đó là gì. Xem xét hai mô tả vé dưới đây

Index (['Summary', 'Issue key', 'Issue id', 'Issue Type', 'Status',
       'Project key', 'Project name', 'Project type', 'Project lead',
       'Project description',’Description’,’Priority’,
       ...
       'Comment1', 'Comment2', 'Comment3'], dtype='object', length=341)
2

Cả hai bên trên trông khá giống nhau và độ phân giải có thể xảy ra nhất cho cả hai rất giống nhau

Hãy để chúng tôi xem cách chúng tôi có thể sử dụng NLP để phát hiện các loại điểm tương đồng này

Tôi sẽ trình bày với gensim Doc2Vec, về cơ bản là một phần mở rộng của W2Vec nhưng ở đây thay vì véc tơ hóa các mã thông báo, chúng ta có thể thực hiện nhúng đoạn văn. Nhưng tôi sẽ sử dụng điều này để so sánh câu. Trước tiên, chúng ta cần tạo một kho văn bản yêu cầu trước đây (tham khảo bài đăng trên blog trước đây của tôi về 'Hiện đại hóa nhật ký hỗ trợ bằng cách sử dụng các lệnh Python đơn giản'). Đoạn mã bên dưới

Index (['Summary', 'Issue key', 'Issue id', 'Issue Type', 'Status',
       'Project key', 'Project name', 'Project type', 'Project lead',
       'Project description',’Description’,’Priority’,
       ...
       'Comment1', 'Comment2', 'Comment3'], dtype='object', length=341)
3

Sau khi xác định yêu cầu tương tự nhất từ ​​lịch sử, nhân viên hỗ trợ có thể nhận được giải pháp được cung cấp cho yêu cầu đó từ từ điển nhật ký giải quyết một cách dễ dàng

Làm thế nào để tạo một trung tâm cuộc gọi?

Cách bắt đầu trung tâm cuộc gọi .
Xác định (các) mục tiêu
Quyết định ngân sách
Xác định loại trung tâm cuộc gọi của bạn
Xây dựng nhóm của bạn
Đào tạo nhân viên của bạn
Tìm phần mềm và công cụ phù hợp
Đầu tư vào văn hóa

Quy trình của trung tâm cuộc gọi là gì?

Việc xử lý cuộc gọi có thể được chia thành ba bước – đầu tiên là ACD trả lời cuộc gọi;

Làm cách nào tôi có thể bắt đầu một trung tâm cuộc gọi ở Ấn Độ?

Danh sách các bước về cách mở trung tâm cuộc gọi ở Ấn Độ .
Xác định (các) mục tiêu của bạn
Đặt ngân sách của bạn
Quyết định loại trung tâm cuộc gọi
Tạo nhóm của bạn
Được đào tạo đại lý và người giám sát của bạn
Nhận phần mềm và công cụ cần thiết
Đầu tư tiền vào văn hóa