Các cuộc gọi thoại đang được loại bỏ dần để ủng hộ văn bản và hình ảnh trong lĩnh vực truyền thông. Theo một cuộc thăm dò của Facebook, hơn một nửa số người mua thích mua hàng từ một công ty mà họ có thể nói chuyện cùng. Trò chuyện đã trở thành một phương thức giao tiếp mới được xã hội chấp nhận.
Nó cho phép các doanh nghiệp giao tiếp với khách hàng của họ bất kỳ lúc nào và từ bất kỳ vị trí nào. Chatbots đang ngày càng trở nên phổ biến trong các công ty và khách hàng do tính dễ sử dụng và giảm thời gian chờ đợi.
Chatbots, hoặc các chương trình trò chuyện tự động, cung cấp cho khách hàng một phương pháp tùy chỉnh hơn để truy cập các dịch vụ thông qua giao diện dựa trên văn bản. Các chatbot mới nhất được hỗ trợ bởi AI có thể nhận ra một truy vấn (câu hỏi, lệnh, đơn đặt hàng, v.v.) được thực hiện bởi một người (hoặc một bot khác, khởi đầu) trong một môi trường cụ thể và phản hồi một cách thích hợp (câu trả lời, hành động, v.v.).
Trong bài đăng này, chúng ta sẽ xem xét chatbot là gì, lợi ích của chúng, các trường hợp sử dụng và cách tạo học kĩ càng chatbot bằng Python, trong số những thứ khác.
Băt đâu nao.
Vậy, chatbots là gì?
Chatbot thường được coi là một trong những hình thức tương tác giữa người và máy tiên tiến và hứa hẹn nhất. Các trợ lý kỹ thuật số này cải thiện trải nghiệm của khách hàng bằng cách hợp lý hóa các tương tác giữa con người và dịch vụ.
Đồng thời, chúng cung cấp cho các doanh nghiệp những lựa chọn mới để tối ưu hóa quy trình tiếp xúc với khách hàng một cách hiệu quả, có thể cắt giảm chi phí hỗ trợ thông thường.
Tóm lại, nó là phần mềm dựa trên AI nhằm giao tiếp với con người bằng ngôn ngữ tự nhiên của họ. Những chatbot này thường tương tác thông qua âm thanh hoặc kỹ thuật viết, và chúng có thể dễ dàng bắt chước ngôn ngữ của con người để kết nối với con người theo cách giống như con người.
Chatbots học hỏi từ các tương tác của họ với người dùng, trở nên thực tế và hiệu quả hơn theo thời gian. Họ có thể xử lý một loạt các hoạt động kinh doanh, chẳng hạn như ủy quyền chi tiêu, tương tác với người tiêu dùng trực tuyến và tạo khách hàng tiềm năng.
Tạo chatbot học sâu của riêng bạn với python
Có nhiều loại chatbot khác nhau trong lĩnh vực học máy và AI. Một số chatbot là trợ lý ảo, trong khi những người khác chỉ ở đó để trò chuyện, trong khi những người khác là đại lý dịch vụ khách hàng.
Bạn có thể đã thấy một số người trong số những người được các doanh nghiệp tuyển dụng để trả lời các câu hỏi. Chúng tôi sẽ tạo một chatbot nhỏ trong hướng dẫn này để trả lời các câu hỏi thường gặp.
1. Cài đặt các gói
Bước đầu tiên của chúng tôi là cài đặt các gói sau.
2. Dữ liệu đào tạo
Bây giờ đã đến lúc tìm ra loại thông tin nào chúng ta cần cung cấp cho chatbot của mình. Chúng tôi không cần tải xuống bất kỳ bộ dữ liệu lớn nào vì đây là một chatbot đơn giản.
Chúng tôi sẽ chỉ sử dụng thông tin mà chúng tôi đã tự tạo ra. Để theo dõi bài học một cách hiệu quả, bạn sẽ cần tạo tệp .JSON có định dạng giống như định dạng được thấy bên dưới. Tệp của tôi có tên là “intents.json.”
Tệp JSON được sử dụng để tạo một tập hợp các thông báo mà người dùng có thể nhập và ánh xạ tới một tập hợp các câu trả lời có liên quan. Mỗi từ điển trong tệp có một thẻ xác định mỗi thư thuộc về nhóm nào.
Chúng tôi sẽ sử dụng thông tin này để đào tạo mạng lưới thần kinh để phân loại một cụm từ là một trong các thẻ trong tệp của chúng tôi.
Sau đó, chúng tôi chỉ có thể nhận phản hồi từ các nhóm đó và cung cấp cho người dùng. Chatbot sẽ tốt hơn và phức tạp hơn nếu bạn cung cấp nó với các thẻ, câu trả lời và mẫu bổ sung.
3. Tải dữ liệu JSON
Chúng ta sẽ bắt đầu bằng cách tải dữ liệu .json của mình và nhập một số mô-đun. Tập hợp tệp your.json vào cùng thư mục với tệp của bạn Tập lệnh Python. Dữ liệu .json của chúng ta bây giờ sẽ được lưu trong biến dữ liệu.
4. Trích xuất dữ liệu
Bây giờ đã đến lúc trích xuất thông tin chúng tôi cần từ tệp JSON của chúng tôi. Tất cả các mẫu, cũng như lớp / thẻ mà chúng thuộc về, là bắt buộc.
Chúng tôi cũng sẽ cần một danh sách tất cả các thuật ngữ duy nhất trong các mẫu của chúng tôi (vì lý do mà chúng tôi sẽ giải thích sau), vì vậy hãy tạo một số danh sách trống để theo dõi các giá trị này.
Bây giờ chúng ta sẽ lặp lại dữ liệu JSON của mình và truy xuất thông tin chúng ta cần. Thay vì đặt chúng dưới dạng chuỗi, chúng tôi sẽ sử dụng nltk.word tokenizer để chuyển đổi từng mẫu thành danh sách các từ.
Sau đó, trong danh sách docs_x của chúng tôi, chúng tôi sẽ thêm từng mẫu, cùng với thẻ được liên kết, vào danh sách docs_y.
5. Bắt nguồn từ
Tìm gốc của một từ được gọi là tìm gốc. Ví dụ: gốc của từ “thats” có thể là “điều đó”, trong khi gốc của từ “xảy ra” có thể là “xảy ra”.
Chúng tôi sẽ sử dụng kỹ thuật gốc này để cắt bớt vốn từ vựng của mô hình của chúng tôi và cố gắng tìm ra những câu nói chung có hàm ý gì. Mã này sẽ chỉ tạo một danh sách duy nhất các từ gốc sẽ được sử dụng trong giai đoạn tiếp theo của quá trình chuẩn bị dữ liệu của chúng tôi.
6. Túi từ
Đã đến lúc nói về một loạt các từ khi chúng tôi đã nhập dữ liệu của mình và tạo ra một từ vựng gốc. Mạng lưới thần kinh và các thuật toán học máy, như chúng ta đều biết, yêu cầu đầu vào là số. Vì vậy, danh sách chuỗi của chúng tôi sẽ không cắt nó. Chúng ta cần một cơ chế để biểu diễn các con số trong câu của chúng ta, đó là nơi có một túi từ xuất hiện.
Mỗi cụm từ sẽ được thể hiện bằng danh sách độ dài của số thuật ngữ trong từ vựng của mô hình của chúng tôi. Mỗi từ trong từ vựng của chúng ta sẽ được đại diện bởi một vị trí trong danh sách. Nếu vị trí trong danh sách là 1, từ đó sẽ xuất hiện trong câu lệnh của chúng tôi; nếu nó là 0, từ đó không xuất hiện trong câu của chúng ta.
Chúng ta gọi nó là một túi từ vì chúng ta không biết trình tự mà các từ xuất hiện trong cụm từ; tất cả những gì chúng tôi biết là chúng tồn tại trong từ vựng của mô hình của chúng tôi.
Ngoài việc cấu trúc đầu vào, chúng ta cũng phải định dạng đầu ra của mình để mạng nơ-ron hiểu nó. Chúng tôi sẽ xây dựng danh sách đầu ra có độ dài của số nhãn / thẻ trong tập dữ liệu của chúng tôi, tương tự như một túi từ. Mỗi vị trí trong danh sách đại diện cho một nhãn / thẻ duy nhất và điểm 1 trong bất kỳ vị trí nào trong số đó cho biết nhãn / thẻ nào đang được đại diện.
Cuối cùng, chúng tôi sẽ sử dụng mảng NumPy để lưu trữ dữ liệu đào tạo và đầu ra của chúng tôi.
7. Phát triển mô hình
Bây giờ chúng tôi đã sẵn sàng bắt đầu xây dựng và đào tạo một mô hình mà chúng tôi đã xử lý trước tất cả dữ liệu của mình. Chúng tôi sẽ sử dụng một mạng nơ-ron chuyển tiếp rất cơ bản với hai lớp ẩn cho các mục tiêu của chúng tôi.
Mục đích của mạng của chúng tôi là xem xét một tập hợp các từ và gán chúng cho một lớp (một trong các thẻ của chúng tôi từ tệp JSON). Chúng ta sẽ bắt đầu bằng cách thiết lập cấu trúc của mô hình. Hãy nhớ rằng bạn có thể chơi với một số con số để tìm ra một mô hình tốt hơn! học máy chủ yếu dựa trên thử và sai.
8. Đào tạo & Tiết kiệm Mô hình
Đã đến lúc đào tạo mô hình của chúng tôi trên dữ liệu của chúng tôi bây giờ khi chúng tôi đã thiết lập nó! Chúng tôi sẽ đạt được điều này bằng cách điều chỉnh dữ liệu của chúng tôi với mô hình. Số kỷ nguyên mà chúng tôi cung cấp là số lần mô hình sẽ được tiếp xúc với cùng một dữ liệu trong quá trình đào tạo.
Chúng tôi có thể lưu mô hình vào mô hình tệp khi chúng tôi đã đào tạo xong. tflearn là một tập lệnh có thể được sử dụng trong các tập lệnh khác.
9. Sử dụng một chatbot
Bây giờ bạn có thể bắt đầu trò chuyện với bot của mình.
Lợi ích của Chatbot
- Vì các bot dự kiến sẽ hoạt động 365 ngày một năm, 24 giờ một ngày mà không phải trả tiền, tăng tính khả dụng và tốc độ phản ứng.
- Các bot này là công cụ hoàn hảo để giải quyết ba chữ V quan trọng của dữ liệu lớn: khối lượng, tốc độ và sự đa dạng.
- Chatbots là phần mềm có thể được sử dụng để tìm hiểu và hiểu về người tiêu dùng của một công ty.
- Nó có sức mạnh vượt trội mà nó có chi phí bảo trì rẻ sau khi có những lợi ích hàng đầu.
- Ứng dụng Chatbot tạo ra dữ liệu có thể được lưu giữ và sử dụng để phân tích và dự báo.
ca sử dụng
- Giải quyết các thắc mắc của khách hàng
- Trả lời các câu hỏi thường gặp
- Chỉ định khách hàng hỗ trợ nhóm
- Thu thập phản hồi của khách hàng
- Đề xuất các ưu đãi mới
- Mua sắm với thương mại đối thoại
- bàn hướng dẫn công nghệ thông tin
- Đặt phòng
- Chuyển tiền
Kết luận
Chatbots, giống như các công nghệ AI khác, sẽ được sử dụng để nâng cao kỹ năng của con người và giải phóng con người trở nên sáng tạo và giàu trí tưởng tượng hơn bằng cách cho phép họ dành nhiều thời gian hơn cho các nhiệm vụ chiến lược thay vì chiến thuật.
Các doanh nghiệp, nhân viên và người tiêu dùng có khả năng được hưởng lợi từ các tính năng chatbot nâng cao như các đề xuất và dự đoán nhanh hơn, cũng như dễ dàng truy cập vào hội nghị truyền hình độ nét cao ngay trong một cuộc trò chuyện, trong tương lai gần, khi AI được kết hợp với sự phát triển của Công nghệ 5G.
Những khả năng này và các khả năng khác vẫn đang được nghiên cứu, nhưng khi kết nối internet, AI, NLP và học máy tiến bộ, chúng sẽ trở nên phổ biến hơn.
Châu
Chào bạn,
Cảm ơn bạn vì chương trình này.
Tôi có một câu hỏi.
“Bag_of_words” không được xác định. Tôi không thể hiểu lỗi này.
Bạn có thể cho tôi biết làm thế nào tôi có thể giải quyết lỗi này ??
Cảm ơn bạn vì chương trình này !! Chúc bạn ngày mới tốt lành
Jay
Vui lòng thêm một chức năng trước khi sử dụng phần chatbot:
//////////////////////////////////////////////////////// ///////////////////////////////
def bag_of_words (s, words):
bag = [0 for _ in range (len (words))]
s_words = nltk.word_tokenize (s)
s_words = [stemmer.stem (word.lower ()) cho từ trong s_words]
cho se trong s_words:
for i, w in enumerate (words):
nếu w == se:
túi [i] = 1
return numpy.array (túi)
// Nó chắc chắn sẽ giải quyết vấn đề của bạn. //
//////////////////////////////////////////////////////// ////////////////////////////
Tôi đang chia sẻ mã hoàn chỉnh với bạn, vì vậy bạn sẽ có được hình ảnh rõ ràng về nó.
//////////////////////////////////////////////////////// /////////
nhập nltk
từ nltk.stem.lancaster nhập khẩu LancasterStemmer
stemmer = LancasterStemmer ()
nhập khẩu
nhập tflearn
nhập khẩu tensorflow
nhập ngẫu nhiên
nhập khẩu json
nhập khẩu dưa chua
với open (“intents.json”) dưới dạng tệp:
data = json.load (tệp)
thử:
với open (“data.pickle”, “rb”) là f:
từ, nhãn, đào tạo, đầu ra = pickle.load (f)
ngoại trừ:
từ = []
nhãn = []
tài liệu_x = []
tài liệu_y = []
cho ý định trong dữ liệu [“intents”]:
cho mẫu trong ý định [“mẫu”]:
wrds = nltk.word_tokenize (mẫu)
words.extend (wrds)
docs_x.append (wrds)
docs_y.append (ý định [“thẻ”])
nếu ý định [“tag”] không có trong nhãn:
nhãn.append (ý định [“thẻ”])
words = [stemmer.stem (w.lower ()) cho w trong các từ if w! = “?”]
words = đã sắp xếp (danh sách (tập hợp (từ)))
nhãn = đã sắp xếp (nhãn)
đào tạo = []
đầu ra = []
out_empty = [0 cho _ trong phạm vi (len (nhãn))]
cho x, doc trong enumerate (docs_x):
túi = []
wrds = [stemmer.stem (w.lower ()) cho w trong doc]
cho w trong các từ:
nếu w trong wrds:
bag.append (1)
khác:
bag.append (0)
output_row = out_empty [:]
output_row [label.index (docs_y [x])] = 1
training.append (bag)
output.append (output_row)
training = numpy.array (đào tạo)
output = numpy.array (đầu ra)
với open (“data.pickle”, “wb”) là f:
pickle.dump ((từ, nhãn, đào tạo, đầu ra), f)
tensorflow.reset_default_graph ()
net = tflearn.input_data (shape = [None, len (training [0])])
net = tflearn.ly_connected (net, 8)
net = tflearn.ly_connected (net, 8)
net = tflearn.ly_connected (net, len (output [0]), activation = ”softmax”)
net = tflearn.regression (net)
model = tflearn.DNN (net)
thử:
model.load (“model.tflearn”)
ngoại trừ:
model.fit (đào tạo, đầu ra, n_epoch = 1500, batch_size = 8, show_metric = True)
model.save (“model.tflearn”)
def bag_of_words (s, words):
bag = [0 for _ in range (len (words))]
s_words = nltk.word_tokenize (s)
s_words = [stemmer.stem (word.lower ()) cho từ trong s_words]
cho se trong s_words:
for i, w in enumerate (words):
nếu w == se:
túi [i] = 1
return numpy.array (túi)
trò chuyện def ():
print (“Bắt đầu nói chuyện với bot (gõ thoát để dừng)!”)
trong khi Đúng:
inp = input (“Bạn:“)
if inp.lower () == "bỏ":
phá vỡ
results = model.p Dự đoán ([bag_of_words (inp, words)])
results_index = numpy.argmax (kết quả)
tag = nhãn [results_index]
cho tg trong dữ liệu [“ý định”]:
if tg ['tag'] == thẻ:
phản hồi = tg ['phản hồi']
print (random.choice (câu trả lời))
trò chuyện()
////////////////////////////////////////////////// ///////////////
Cảm ơn bạn,
Chúc bạn viết mã vui vẻ!
Lu
Chào bạn,
Anh có thể cho em biết quy trình thực hiện trong trường hợp muốn tạo chatbot bằng python nhưng thông tin lấy từ khảo sát bằng excel. Cảm ơn!