İçindekiler[Saklamak][Göstermek]
İletişim sektöründe sesli aramalar aşamalı olarak metin ve görseller lehine kaldırılıyor. Bir Facebook anketine göre, alıcıların yarısından fazlası konuşabilecekleri bir şirketten satın almayı tercih ediyor. Sohbet, sosyal olarak kabul edilebilir yeni iletişim modu haline geldi.
İşletmelerin müşterileriyle her zaman ve her yerden iletişim kurmasını sağlar. Chatbot'lar, kullanım kolaylıkları ve daha kısa bekleme süreleri nedeniyle şirketler ve müşteriler arasında giderek daha popüler hale geliyor.
Sohbet robotları veya otomatik konuşma programları, müşterilere metin tabanlı bir arabirim aracılığıyla hizmetlere erişmek için daha özelleştirilmiş bir yöntem sağlar. En yeni AI destekli sohbet robotları, belirli bir ortamda bir kişi (veya başka bir bot, başlangıç) tarafından yapılan bir sorguyu (soru, komut, emir vb.) tanıyabilir ve uygun şekilde yanıt verebilir (cevap, eylem vb.).
Bu gönderide, sohbet robotlarının ne olduğunu, yararlarını, kullanım örneklerini ve kendi sohbet robotunuzu nasıl yapacağınızı gözden geçireceğiz. derin öğrenme Python'da sohbet robotu, diğer şeylerin yanı sıra.
Başlayalım.
Peki, sohbet robotları nedir?
Bir sohbet robotu, sıklıkla insan-makine etkileşiminin en gelişmiş ve gelecek vaat eden biçimlerinden biri olarak anılır. Bu dijital asistanlar, insanlar ve hizmetler arasındaki etkileşimleri düzene sokarak müşteri deneyimini iyileştiriyor.
Eşzamanlı olarak, işletmelere, geleneksel destek giderlerini azaltabilecek verimlilik için müşteri iletişim sürecini optimize etmek için yeni seçenekler sunarlar.
Özetle, insanlarla doğal dillerinde iletişim kurmayı amaçlayan AI tabanlı bir yazılımdır. Bu sohbet robotları genellikle sesli veya yazılı tekniklerle etkileşime girer ve insanlarla insan benzeri bir şekilde bağlantı kurmak için insan dillerini kolayca taklit edebilirler.
Chatbotlar, kullanıcılarla olan etkileşimlerinden öğrenir, zamanla daha gerçekçi ve verimli hale gelir. Harcamalara izin verme, çevrimiçi tüketicilerle etkileşim kurma ve olası satışlar oluşturma gibi çok çeşitli ticari faaliyetleri gerçekleştirebilirler.
Python ile kendi derin öğrenme sohbet robotunuzu oluşturma
Alanında birçok farklı türde sohbet robotu vardır. makine öğrenme ve AI. Bazı sohbet robotları sanal asistanlardır, bazıları ise sadece sohbet etmek için oradayken diğerleri müşteri hizmetleri aracılarıdır.
Muhtemelen işletmeler tarafından soruları yanıtlamak için istihdam edilenlerden bazılarını görmüşsünüzdür. Bu eğitimde sık sorulan soruları yanıtlamak için küçük bir sohbet robotu yapacağız.
1. Paketleri yükleme
İlk adımımız aşağıdaki paketleri kurmak.
2. Eğitim Verileri
Şimdi sohbet robotumuza ne tür bilgiler vermemiz gerektiğini bulmanın zamanı geldi. Bu basit bir sohbet robotu olduğu için büyük veri kümeleri indirmemize gerek yok.
Yalnızca kendi oluşturduğumuz bilgileri kullanacağız. Dersi etkili bir şekilde takip etmek için aşağıda görülenle aynı formatta bir .JSON dosyası oluşturmanız gerekir. Dosyamın adı “intents.json”.
JSON dosyası, kullanıcının girmesi ve bir dizi ilgili yanıtla eşleştirmesi muhtemel bir dizi mesaj oluşturmak için kullanılır. Dosyadaki her sözlük, her mesajın hangi gruba ait olduğunu tanımlayan bir etikete sahiptir.
Bu bilgileri bir eğitim vermek için kullanacağız. sinir ağı bir kelime öbeğini dosyamızdaki etiketlerden biri olarak kategorize etmek.
Daha sonra sadece bu gruplardan bir yanıt alabilir ve bunu kullanıcıya sağlayabiliriz. Ek etiketler, yanıtlar ve kalıplarla birlikte sunarsanız, sohbet robotu daha iyi ve daha karmaşık olacaktır.
3. JSON veri yükleme
.json verilerimizi yükleyip bazı modülleri içe aktararak başlayacağız. .json dosyanızı, dosyanızla aynı dizinde birleştirin Python komut dosyası. .json verilerimiz artık data değişkenine kaydedilecek.
4. Veri Çıkarma
Şimdi ihtiyacımız olan bilgiyi JSON dosyamızdan çıkarma zamanı. Tüm kalıplar ve ait oldukları sınıf/etiket gereklidir.
Ayrıca kalıplarımızdaki tüm benzersiz terimlerin bir listesine ihtiyacımız olacak (nedenleri daha sonra açıklayacağız), bu yüzden bu değerleri takip etmek için bazı boş listeler oluşturalım.
Şimdi JSON verilerimiz arasında dolaşacağız ve ihtiyacımız olan bilgiyi alacağız. Bunları dize olarak kullanmak yerine, her bir kalıbı bir kelime listesine dönüştürmek için nltk.word tokenizer kullanacağız.
Ardından, docs_x listemizde, her bir kalıbı ilişkili etiketiyle birlikte docs_y listesine ekleyeceğiz.
5. Kelime Köklendirme
Bir kelimenin kökünü bulmaya, kök çıkarma denir. Örneğin, "o" kelimesinin kökü "o" olabilirken, "oluyor" kelimesinin kökü "oluyor" olabilir.
Bu kök çıkarma tekniğini, modelimizin kelime dağarcığını kısaltmak ve cümlelerin genel olarak ne anlama geldiğini anlamaya çalışmak için kullanacağız. Bu kod, veri hazırlamamızın bir sonraki aşamasında kullanılacak benzersiz bir kök sözcük listesi oluşturacaktır.
6. Kelime Torbası
Verilerimizi içe aktardığımıza ve köklü bir kelime dağarcığı oluşturduğumuza göre, artık bir sürü kelime hakkında konuşmanın zamanı geldi. Nöral ağlar ve makine öğrenimi algoritmaları, hepimizin bildiği gibi sayısal girdi gerektirir. Yani dizi listemiz onu kesmeyecek. Cümlelerimizde sayıları temsil edecek bir mekanizmaya ihtiyacımız var, burada bir torba kelime devreye giriyor.
Her bir ifade, modelimizin kelime dağarcığındaki terim sayısının uzunluğunun bir listesi ile temsil edilecektir. Kelime dağarcığımızdaki her kelime, listede bir yer ile temsil edilecektir. Listedeki pozisyon 1 ise, kelime bizim ifademizde görünür; 0 ise kelime cümlemizde görünmez.
Buna kelime çuvalı diyoruz çünkü kelimelerin cümlede nasıl göründüğünü bilmiyoruz; tek bildiğimiz, modelimizin sözlüğünde var oldukları.
Girdimizi yapılandırmaya ek olarak, çıktımızı da sinir ağının anlaması için biçimlendirmeliyiz. Bir kelime torbasına benzer şekilde, veri kümemizdeki etiket/etiket sayısının uzunluğu olan çıktı listeleri oluşturacağız. Listedeki her yer benzersiz bir etiketi/etiketi temsil eder ve bu konumlardan herhangi birinde 1, hangi etiketin/etiketin temsil edildiğini gösterir.
Son olarak, eğitim verilerimizi ve çıktılarımızı depolamak için NumPy dizilerini kullanacağız.
7. Model Geliştirme
Tüm verilerimizi önceden işlediğimize göre artık bir model oluşturmaya ve eğitmeye hazırız. Hedeflerimiz için iki gizli katmana sahip çok basit bir ileri beslemeli sinir ağı kullanacağız.
Ağımızın amacı, bir kelime koleksiyonuna bakmak ve onları bir sınıfa (JSON dosyasındaki etiketlerimizden biri) atamak olacaktır. Modelimizin mimarisini oluşturarak başlayacağız. Daha iyi bir model bulmak için bazı rakamlarla oynayabileceğinizi unutmayın! Makine öğrenme çoğunlukla deneme yanılmaya dayanır.
8. Model Eğitimi ve Tasarrufu
Kurduğumuza göre, modelimizi verilerimiz üzerinde eğitme zamanı geldi! Bunu, verilerimizi modele uydurarak başaracağız. Sağladığımız dönem sayısı, modelin eğitim sırasında aynı verilere maruz kalma sayısıdır.
Modeli eğitmeyi bitirdikten sonra modeli dosya modeline kaydedebiliriz. tflearn, diğer komut dosyalarında kullanılabilen bir komut dosyasıdır.
9. Bir sohbet robotu kullanma
Artık botunuzla sohbet etmeye başlayabilirsiniz.
Chatbot'un Faydaları
- Botların yılda 365 gün, günde 24 saat ücretsiz çalışması beklendiğinden, kullanılabilirliği ve tepki hızını artırır.
- Bu botlar, büyük verinin üç temel V'siyle (hacim, hız ve çeşitlilik) mücadele etmek için mükemmel araçlardır.
- Chatbot'lar, bir şirketin tüketicilerini öğrenmek ve anlamak için kullanılabilecek yazılımlardır.
- Üstün faydalara sahip olduktan sonra ucuz bir bakım maliyetine sahip olması üstün bir güce sahiptir.
- Chatbot Uygulamaları, analiz ve tahminler için korunabilecek ve kullanılabilecek veriler oluşturur.
kullanım durumu
- Müşteri sorgularını çözme
- Sık sorulan soruları yanıtlama
- Müşterileri destek ekibine atama
- Müşteri geri bildirimi toplama
- Yeni teklifler önermek
- Karşılıklı ticaret ile alışveriş yapın
- BT Yardım Masası
- Konaklama rezervasyonu
- Para transferi
Sonuç
Chatbotlar, diğer AI teknolojileri gibi, insan becerilerini artırmak ve taktiksel görevlerden ziyade stratejik görevlere daha fazla zaman ayırmalarına izin vererek insanları daha yaratıcı ve yaratıcı olmaları için özgür kılmak için kullanılacak.
İşletmeler, çalışanlar ve tüketiciler, AI'nın geliştirilmesiyle birleştiğinde, yakın gelecekte, daha hızlı öneriler ve tahminler gibi gelişmiş sohbet robotu özelliklerinden ve ayrıca bir konuşma içinden yüksek çözünürlüklü video konferansa kolay erişimden faydalanacaklardır. 5G teknolojisi.
Bu ve diğer olasılıklar hala araştırılıyor, ancak internet bağlantısı, AI, NLP ve makine öğrenimi ilerledikçe daha yaygın hale gelecekler.
chwoo
Merhaba,
Bu program için teşekkür ederiz.
Bir sorum var.
"bag_of_words" tanımlı değil. Bu hatayı anlayamıyorum.
Bu hatayı nasıl çözebilirim söyler misiniz??
Bu program için teşekkürler!! İyi günler
alakarga
Lütfen chatbot bölümünü kullanmadan önce bir fonksiyon ekleyin:
///////////////////////////////////////////// //////////////////////////
def bag_of_words(s,words):
çanta = [aralıktaki _ için 0(len(kelimeler))]
s_words = nltk.word_tokenize(ler)
s_words = [s_words içindeki kelime için kök.stem(word.lower())]
s_words'de se için:
i için, w enumerate(words):
eğer w == se:
torba[i] = 1
dönüş numpy.array(çanta)
// Sorununuzu kesinlikle çözecektir. //
////////////////////////////////////////////////// //////////////////////////
Kodun tamamını sizinle paylaşıyorum, böylece net bir resim elde edeceksiniz.
///////////////////////////////////////////// /////////
içe aktarma nltk
nltk.stem.lancaster'dan LancasterStemmer'i içe aktarın
kökçü = LancasterStemmer()
numpy'yi içe aktar
ithalat tflearn
tensorflow'u içe aktar
rastgele içe aktar
ithalat json
ithal turşu
dosya olarak open(“intents.json”) ile:
veri = json.load(dosya)
deneyin:
f olarak open(“data.pickle”, “rb”) ile:
kelimeler, etiketler, eğitim, çıktı = pickle.load(f)
dışında:
kelimeler = []
etiketler = []
belgeler_x = []
belgeler_y = []
data'daki niyet için["intents"]:
niyetteki desen için[“patterns”]:
wrds = nltk.word_tokenize(desen)
word.extend(wrds)
docs_x.append(wrds)
docs_y.append(intent["etiket"])
eğer amaç[“etiket”] etiketlerde değilse:
labels.append(intent["etiket"])
word = [stemmer.stem(w.lower()) w için w != “?”]
kelimeler = sıralı(list(set(kelime)))
etiketler = sıralı(etiketler)
eğitim = []
çıktı = []
out_empty = [aralıktaki _ için 0(len(labels))]
x için, numaralandırmada doc(docs_x):
çanta = []
wrds = [stemmer.stem(w.lower()) dokümandaki w için]
kelimelerde w için:
wrds ise:
çanta.ekle(1)
Başka:
çanta.ekle(0)
çıktı_satır = boş_boş[:]
output_row[etiketler.index(docs_y[x])] = 1
training.append(çanta)
çıktı.append(çıktı_satır)
eğitim = numpy.array(eğitim)
çıktı = numpy.array(çıktı)
f olarak open(“data.pickle”, “wb”) ile:
pickle.dump((kelimeler, etiketler, eğitim, çıktı), f)
tensorflow.reset_default_graph()
net = tflearn.input_data(shape=[Yok, len(eğitim[0])])
net = tflearn.full_connected(net, 8)
net = tflearn.full_connected(net, 8)
net = tflearn.fill_connected(net, len(output[0]), aktivasyon=”softmax”)
net = tflearn.regresyon(net)
model = tflearn.DNN(net)
deneyin:
model.load(“model.tflearn”)
dışında:
model.fit(eğitim, çıktı, n_epoch=1500, batch_size=8, show_metric=True)
model.save("model.tflearn")
def bag_of_words(s,words):
çanta = [aralıktaki _ için 0(len(kelimeler))]
s_words = nltk.word_tokenize(ler)
s_words = [s_words içindeki kelime için kök.stem(word.lower())]
s_words'de se için:
i için, w enumerate(words):
eğer w == se:
torba[i] = 1
dönüş numpy.array(çanta)
tanımlı sohbet():
print(“Bot ile konuşmaya başlayın (durdurmak için çıkın yazın)!”)
True iken:
inp = input(“Siz: “)
if inp.lower() == “çık”:
kırılma
sonuçlar = model.predict([bag_of_words(inp, word)])
sonuç_dizini = numpy.argmax(sonuçlar)
etiket = etiketler[results_index]
tg in data[“intents”] için:
if tg['tag'] == etiket:
yanıtlar = tg['cevaplar']
print(random.choice(yanıtlar))
sohbet()
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Teşekkür ederim,
Mutlu kodlama!
Lu
Merhaba,
Python'da bir chatbot oluşturmak istenmesi durumunda yapılacak işlem hakkında bana bir fikir verebilir misiniz, ancak bilgiler excel'deki bir anketten elde ediliyor. Teşekkür ederim!