Kaundan[Itago][Ipakita]
Ang mga tawag sa tingog giwagtang pabor sa teksto ug biswal sa sektor sa komunikasyon. Sumala sa usa ka poll sa Facebook, labaw sa katunga sa mga pumapalit mas gusto nga mopalit gikan sa usa ka kompanya nga mahimo nilang makigsulti. Ang pag-chat nahimong bag-ong paagi sa komunikasyon nga madawat sa katilingban.
Gitugotan niini ang mga negosyo nga makigkomunikar sa ilang mga kliyente bisan unsang orasa ug gikan sa bisan unsang lokasyon. Ang mga chatbots nagkadako nga pagkapopular sa mga kompanya ug kustomer tungod sa ilang kasayon sa paggamit ug pagkunhod sa mga oras sa paghulat.
Ang mga chatbot, o automated nga mga programa sa panag-istoryahanay, naghatag sa mga kliyente og mas customized nga pamaagi sa pag-access sa mga serbisyo pinaagi sa text-based interface. Ang pinakabag-o nga AI-powered chatbots makaila sa usa ka pangutana (pangutana, sugo, order, ug uban pa) nga gihimo sa usa ka tawo (o laing bot, pagsugod) sa usa ka piho nga palibot ug motubag sa tukma (tubag, aksyon, ug uban pa).
Niini nga post, atong hisgotan kung unsa ang mga chatbot, ang mga benepisyo niini, mga kaso sa paggamit, ug kung giunsa paghimo ang imong kaugalingon lawom nga pagkat-on chatbot sa Python, ug uban pang mga butang.
Magsugod ta.
Busa, unsa ang chatbots?
Ang usa ka chatbot kanunay nga gipunting nga usa sa labing abante ug gisaad nga mga porma sa interaksyon sa tawo-machine. Kini nga mga digital nga katabang nagpauswag sa kasinatian sa kustomer pinaagi sa pagpahapsay sa mga interaksyon tali sa mga tawo ug serbisyo.
Dungan, naghatag sila sa mga negosyo og bag-ong mga kapilian aron ma-optimize ang proseso sa pagkontak sa kostumer para sa pagkaepisyente, nga makaputol sa naandan nga gasto sa suporta.
Sa laktod nga pagkasulti, kini usa ka software nga nakabase sa AI nga gituyo aron makigsulti sa mga tawo sa ilang natural nga mga sinultihan. Kini nga mga chatbots kasagarang makig-interact pinaagi sa audio o sinulat nga mga teknik, ug dali nilang masundog ang mga pinulongan sa tawo aron makakonektar sa mga tawo sa paagi nga sama sa tawo.
Ang mga chatbot nakakat-on gikan sa ilang mga interaksyon sa mga tiggamit, nahimong mas realistiko ug episyente sa paglabay sa panahon. Makadumala sila sa usa ka halapad nga mga kalihokan sa negosyo, sama sa pagtugot sa paggasto, pag-apil sa mga konsumedor online, ug paghimo og mga lead.
Paghimo sa imong kaugalingon nga lawom nga pagkat-on nga chatbot gamit ang python
Adunay daghang lahi nga mga klase sa chatbots sa natad sa pagkat-on sa makina ug AI. Ang ubang mga chatbots mga virtual nga katabang, samtang ang uban naa ra aron makigsulti, samtang ang uban mga ahente sa serbisyo sa kostumer.
Tingali nakakita ka sa pipila nga gigamit sa mga negosyo aron pagtubag sa mga pangutana. Maghimo kami ug gamay nga chatbot sa kini nga panudlo aron matubag ang kanunay nga gihangyo nga mga pangutana.
1. Pag-instalar sa mga pakete
Ang among unang lakang mao ang pag-instalar sa mosunod nga mga pakete.
2. Data sa Pagbansay
Karon na ang panahon aron mahibal-an kung unsang klase sa kasayuran ang kinahanglan namon ihatag sa among chatbot. Dili namo kinahanglan nga mag-download ug bisan unsang dagkong mga dataset tungod kay kini usa ka yano nga chatbot.
Gamiton ra namo ang impormasyon nga among gibuhat sa among kaugalingon. Aron epektibong makasunod sa leksyon, kinahanglan ka nga maghimo ug .JSON file nga parehas ang format sa makita sa ubos. Ang akong file ginganlan og "intents.json."
Ang JSON file gigamit sa paghimo og usa ka hugpong sa mga mensahe nga lagmit i-input ug mapa sa user ngadto sa usa ka hugpong sa may kalabutan nga mga tubag. Ang matag diksyonaryo sa file adunay tag nga nagpaila kung asa nga grupo ang matag mensahe nahisakop.
Atong gamiton kini nga impormasyon sa pagbansay sa usa ka neural network aron ma-categorize ang usa ka hugpong sa mga pulong ingon usa sa mga tag sa among file.
Makakuha lang kami og tubag gikan sa mga grupo ug ihatag kini sa tiggamit. Ang chatbot mahimong mas maayo ug mas komplikado kung imong itanyag kini uban ang dugang nga mga tag, mga tubag, ug mga sumbanan.
3. JSON data loading
Magsugod kami pinaagi sa pagkarga sa among .json data ug pag-import sa pipila ka mga module. Tiguma ang imong.json file sa parehas nga direktoryo sa imong script sa Python. Ang among .json nga datos ma-save na sa data variable.
4. Data Extraction
Karon na ang panahon sa pagkuha sa kasayuran nga among gikinahanglan gikan sa among JSON file. Ang tanan nga mga sumbanan, ingon man ang klase/tag diin sila nahisakop, gikinahanglan.
Kinahanglan usab namon ang usa ka lista sa tanan nga talagsaon nga mga termino sa among mga sumbanan (alang sa mga hinungdan nga among ipasabut sa ulahi), busa maghimo kami mga blangko nga lista aron masubay kini nga mga kantidad.
Karon atong i-loop ang atong JSON data ug bawion ang impormasyon nga atong gikinahanglan. Imbes nga himoon kini nga mga kuwerdas, atong gamiton ang nltk.word tokenizer aron mabag-o ang matag pattern ngadto sa lista sa mga pulong.
Unya, sa among docs_x nga lista, among idugang ang matag pattern, kauban ang kauban nga tag niini, sa docs_y list.
5. Pulong Stemming
Ang pagpangita sa gamot sa usa ka pulong nailhan nga stemming. Pananglitan, ang punoan sa pulong nga "kana" nga punoan mahimong "kana," samtang ang punoan sa pulong nga "nanghitabo" mahimong "mahitabo."
Gamiton namo kini nga teknik sa stemming aron maputol ang bokabularyo sa among modelo ug maningkamot nga mahibal-an kung unsa ang gipasabut sa mga sentence sa kinatibuk-an. Kini nga kodigo yanong makamugna og usa ka talagsaon nga lista sa mga pulong nga adunay stem nga gamiton sa sunod nga hugna sa among pag-andam sa datos.
6. Bag sa mga Pulong
Panahon na nga maghisgot bahin sa usa ka bag sa mga pulong karon nga na-import na namon ang among datos ug nakamugna og usa ka stemmed nga bokabularyo. Neural networks ug ang mga algorithm sa pagkat-on sa makina, sama sa nahibal-an namong tanan, nanginahanglan input sa numero. Mao nga ang among lista sa string dili maputol kini. Kinahanglan namon ang usa ka mekanismo nga magrepresentar sa mga numero sa among mga tudling-pulong, diin ang usa ka bag sa mga pulong moabut.
Ang matag hugpong sa pulong irepresentar sa usa ka lista sa gitas-on sa gidaghanon sa mga termino sa bokabularyo sa among modelo. Ang matag pulong sa among bokabularyo irepresentar sa usa ka lugar sa lista. Kung ang posisyon sa lista usa ka 1, ang pulong makita sa among pahayag; kung kini usa ka 0, ang pulong dili makita sa among sentence.
Gitawag namo kini nga usa ka bag sa mga pulong tungod kay wala kami kahibalo sa han-ay diin ang mga pulong makita sa hugpong sa mga pulong; ang nahibal-an lang namon nga kini anaa sa bokabularyo sa among modelo.
Dugang pa sa pag-istruktura sa atong input, kinahanglan usab natong i-format ang atong output aron masabtan kini sa neural network. Maghimo kami og mga listahan sa output nga ang gitas-on sa gidaghanon sa mga label/tag sa among dataset, susama sa usa ka bag sa mga pulong. Ang matag lugar sa lista nagrepresentar sa usa ka talagsaon nga label/tag, ug ang 1 sa bisan asa nga mga lokasyon nagpaila kung unsang label/tag ang girepresentar.
Sa katapusan, among gamiton ang NumPy arrays aron tipigan ang among training data ug output.
7. Pagpalambo sa Modelo
Andam na kami nga magsugod sa paghimo ug pagbansay sa usa ka modelo karon nga naproseso na namo ang tanan namong datos. Magamit namon ang usa ka sukaranan nga feed-forward neural network nga adunay duha ka tinago nga mga layer para sa among mga katuyoan.
Ang katuyoan sa among network mao ang pagtan-aw sa usa ka koleksyon sa mga pulong ug i-assign kini sa usa ka klase (usa sa among mga tag gikan sa JSON file). Magsugod kita pinaagi sa pag-establisar sa arkitektura sa atong modelo. Hinumdumi nga mahimo nimong magdula ang pipila nga mga numero aron makahimo usa ka labi ka maayo nga modelo! Pagtuon sa makina kasagaran gibase sa trial and error.
8. Model Training & Saving
Panahon na aron mabansay ang among modelo sa among datos karon nga among na-set up kini! Atong makab-ot kini pinaagi sa pagpahaom sa atong data sa modelo. Ang gidaghanon sa mga epoch nga among gihatag mao ang gidaghanon sa mga higayon nga ang modelo ma-expose sa parehas nga datos sa panahon sa pagbansay.
Mahimo natong i-save ang modelo sa file model kung nahuman na nato ang pagbansay niini. Ang tflearn usa ka script nga magamit sa ubang mga script.
9. Paggamit ug chatbot
Karon mahimo ka magsugod sa pag-chat sa imong bot.
Mga Benepisyo sa Chatbot
- Ingon nga ang mga bot gilauman nga mag-operate 365 ka adlaw sa usa ka tuig, 24 ka oras sa usa ka adlaw, nga wala’y bayad, pagdugang sa pagkaanaa ug katulin sa reaksyon.
- Kini nga mga bot hingpit nga himan alang sa pag-atubang sa tulo ka yawe sa dagkong datos nga Vs: volume, tulin, ug lainlain.
- Ang mga chatbot kay software nga magamit sa pagkat-on ug pagsabot sa mga konsumidor sa usa ka kompanya.
- Kini adunay labaw nga gahum nga kini adunay usa ka barato nga gasto sa pagmentinar pagkahuman adunay labing kaayo nga mga benepisyo.
- Ang mga Aplikasyon sa Chatbot nagmugna ug datos nga mahimong mapreserbar ug magamit alang sa pagtuki ug mga panagna.
Usecase
- Pagsulbad sa mga pangutana sa kustomer
- Pagtubag sa kanunay nga gipangutana nga mga pangutana
- Pag-assign sa mga kustomer sa pagsuporta sa team
- Pagkolekta sa feedback sa kustomer
- Pagrekomenda sa bag-ong mga tanyag
- Pagpamalit nga adunay panag-istoryahanay nga komersyo
- IT Helpdesk
- Pag-book og mga akomodasyon
- Pagbalhin sa kwarta
Panapos
Ang mga chatbot, sama sa ubang mga teknolohiya sa AI, gamiton aron madugangan ang mga kahanas sa tawo ug mapahigawas ang mga tawo nga mahimong labi ka mamugnaon ug mahanduraw pinaagi sa pagtugot kanila nga mogahin og daghang oras sa estratehiko kaysa sa mga taktikal nga buluhaton.
Ang mga negosyo, empleyado, ug mga konsumidor lagmit nga makabenepisyo gikan sa gipaayo nga mga bahin sa chatbot sama sa mas paspas nga mga rekomendasyon ug mga panagna, ingon man dali nga pag-access sa high-definition nga video conferencing gikan sa sulod sa usa ka panag-istoryahanay, sa umaabot nga umaabot, kung ang AI gihiusa sa pag-uswag sa 5G nga teknolohiya.
Kini ug uban pang mga posibilidad giimbestigahan pa, apan samtang ang koneksyon sa internet, AI, NLP, ug pag-uswag sa pagkat-on sa makina, kini mahimong labi ka kaylap.
Chwoo
Hello,
Salamat niini nga programa.
Naa ko'y pangutana.
Ang "bag_of_words" wala gihubit. Dili nako masabtan kini nga sayup.
Mahimo ba nimo isulti kanako kung giunsa nako masulbad kini nga sayup??
Salamat sa kini nga programa!! Maayong adlaw
Jay
Palihug pagdugang usa ka function sa dili pa gamiton ang seksyon sa chatbot:
///////////////////////////////////////////// //////////////////////////
def bag_of_words(s, words):
bag = [0 para sa _ sa range(len(mga pulong))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) para sa pulong sa s_words]
kay sa s_words:
kay ako, w sa enumerate(mga pulong):
kung w == se:
bag [i] = 1
ibalik ang numpy.array(bag)
// Kini siguradong masulbad ang imong isyu. //
// ///. // // ///.
Gipaambit ko kanimo ang kompleto nga code, aron makakuha ka usa ka tin-aw nga litrato niini.
//////////////////////////////////////////// /////////
import nltk
gikan sa nltk.stem.lancaster import LancasterStemmer
stemmer = LancasterStemmer()
import numpy
import tflearn
import nga tensorflow
import nga random
import json
import nga adobo
uban ang open("intents.json") isip file:
data = json.load(file)
sulayi:
nga adunay bukas ("data.pickle", "rb") ingon f:
mga pulong, label, pagbansay, output = pickle.load(f)
gawas:
pulong = []
mga etiketa = []
docs_x = []
docs_y = []
alang sa katuyoan sa datos ["mga katuyoan"]:
alang sa sumbanan sa tuyo [“mga sumbanan”]:
wrd = nltk.word_tokenize(pattern)
words.extend(wrds)
docs_x.append(wrds)
docs_y.append(intent[“tag”])
kung ang tuyo ["tag"] wala sa mga label:
labels.append(intent[“tag”])
pulong = [stemmer.stem(w.lower()) para sa w sa mga pulong kon w != “?”]
pulong = sorted(lista(set(pulong)))
labels = sorted(labels)
pagbansay = []
output = []
out_empty = [0 para sa _ sa range(len(labels))]
para sa x, doc sa enumerate(docs_x):
bag = []
wrd = [stemmer.stem(w.lower()) para sa w sa doc]
para sa w sa mga pulong:
kung w sa wrd:
bag.dugang(1)
uban pa:
bag.dugang(0)
output_row = out_empty [:]
output_row[labels.index(docs_y[x])] = 1
training.append(bag)
output.apend(output_row)
pagbansay = numpy.array(pagbansay)
output = numpy.array(output)
nga adunay bukas ("data.pickle", "wb") ingon f:
pickle.dump((mga pulong, label, pagbansay, output), f)
tensorflow.reset_default_graph()
net = tflearn.input_data(porma=[Wala, len(pagbansay[0])])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, len(output[0]), activation=”softmax”)
net = tflearn.regression(net)
modelo = tflearn.DNN(net)
sulayi:
model.load("model.tflearn")
gawas:
model.fit(training, output, n_epoch=1500, batch_size=8, show_metric=Tinuod)
model.save("model.tflearn")
def bag_of_words(s, words):
bag = [0 para sa _ sa range(len(mga pulong))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) para sa pulong sa s_words]
kay sa s_words:
kay ako, w sa enumerate(mga pulong):
kung w == se:
bag [i] = 1
ibalik ang numpy.array(bag)
def chat():
print("Sugdi ang pagpakigsulti sa bot (i-type ang paghunong aron mohunong)!")
samtang Tinuod:
inp = input("Ikaw:")
kung inp.lower() == “quit”:
pahugno
resulta = model.predict([bag_of_words(inp, pulong)])
resulta_index = numpy.argmax(mga resulta)
tag = mga label[results_index]
para sa tg sa datos ["mga tuyo"]:
kung tg['tag'] == tag:
mga tubag = tg['mga tubag']
print(random.choice(mga tubag))
chat()
//////////////////////////////////////////// ///////////////
Salamat,
Malipayon nga coding!
Lu
Hello,
Mahimo ba nimo akong hatagan usa ka ideya sa proseso nga himuon kung gusto nimo maghimo usa ka chatbot sa python, apan ang kasayuran nakuha gikan sa usa ka survey sa excel. Salamat!