Efnisyfirlit[Fela][Sýna]
Símtöl eru lögð niður í áföngum í þágu texta og myndefnis í samskiptageiranum. Samkvæmt könnun Facebook vill meira en helmingur kaupenda frekar kaupa af fyrirtæki sem þeir geta talað við. Spjall er orðinn hinn nýi félagslega viðunandi samskiptamáti.
Það gerir fyrirtækjum kleift að eiga samskipti við viðskiptavini sína hvenær sem er og hvar sem er. Spjallbotar njóta vaxandi vinsælda meðal fyrirtækja og viðskiptavina vegna auðveldrar notkunar þeirra og styttri biðtíma.
Chatbots, eða sjálfvirk samtalsforrit, veita viðskiptavinum sérsniðnari aðferð til að fá aðgang að þjónustu í gegnum textaviðmót. Nýjustu gervigreindarspjallforritin geta þekkt fyrirspurn (spurningu, skipun, pöntun o.s.frv.) sem gerð er af einstaklingi (eða annar vélmenni, upphaf) í ákveðnu umhverfi og svarað á viðeigandi hátt (svar, aðgerð osfrv.).
Í þessari færslu munum við fara yfir hvað spjallbotar eru, kostir þeirra, notkunartilvik og hvernig á að búa til þína eigin djúpt nám chatbot í Python meðal annars.
Byrjum.
Svo, hvað eru chatbots?
Oft er talað um að spjallbotni sé ein fullkomnasta og efnilegasta form mann-véla samskipta. Þessir stafrænu aðstoðarmenn bæta upplifun viðskiptavina með því að hagræða samskiptum fólks og þjónustu.
Samtímis veita þeir fyrirtækjum nýja möguleika til að hámarka sambandsferlið viðskiptavina til skilvirkni, sem getur dregið úr hefðbundnum stuðningskostnaði.
Í hnotskurn, það er gervigreindarhugbúnaður sem er ætlaður til að eiga samskipti við menn á þeirra náttúrulegu tungumálum. Þessir spjallþræðir hafa oft samskipti í gegnum hljóð eða ritaða tækni og þeir geta auðveldlega líkt eftir mannamáli til að tengjast mönnum á mannlegan hátt.
Spjallbotar læra af samskiptum sínum við notendur og verða raunsærri og skilvirkari með tímanum. Þeir geta séð um margs konar viðskiptastarfsemi, svo sem að heimila útgjöld, eiga samskipti við neytendur á netinu og búa til sölumáta.
Búðu til þinn eigin djúpnámsspjallbotn með python
Það eru til margar mismunandi tegundir af spjallvítum á sviði vél nám og gervigreind. Sumir spjallbotar eru sýndaraðstoðarmenn, á meðan aðrir eru bara þarna til að spjalla við, á meðan aðrir eru þjónustufulltrúar.
Þú hefur sennilega séð suma þeirra sem starfa hjá fyrirtækjum til að svara fyrirspurnum. Við munum búa til lítið spjallbot í þessari kennslu til að svara algengum fyrirspurnum.
1. Uppsetning pakka
Fyrsta skrefið okkar er að setja upp eftirfarandi pakka.
2. Þjálfunargögn
Nú er kominn tími til að reikna út hvers konar upplýsingar við þurfum til að gefa spjallbotni okkar. Við þurfum ekki að hlaða niður neinum stórum gagnasöfnum því þetta er einfalt spjallbot.
Við munum aðeins nýta þær upplýsingar sem við höfum búið til sjálf. Til að fylgja kennslustundinni á áhrifaríkan hátt þarftu að búa til .JSON skrá með sama sniði og hér að neðan. Skráin mín heitir "intents.json."
JSON skráin er notuð til að búa til mengi skilaboða sem notandinn er líklegur til að setja inn og varpa til mengi viðeigandi svara. Hver orðabók í skránni hefur merki sem auðkennir hvaða hópi hvert skeyti tilheyrir.
Við munum nota þessar upplýsingar til að þjálfa a tauga net til að flokka orðasambönd sem eitt af merkjunum í skránni okkar.
Við getum þá bara tekið svar frá þessum hópum og veitt notandanum það. Spjallbotninn verður betri og flóknari ef þú býður það með viðbótarmerkjum, svörum og mynstrum.
3. JSON gagnahleðsla
Við byrjum á því að hlaða inn .json gögnunum okkar og flytja inn nokkrar einingar. Settu saman your.json skrána í sömu möppu og þinn Python handrit. .json gögnin okkar verða nú vistuð í gagnabreytunni.
4. Gagnaútdráttur
Nú er kominn tími til að draga upplýsingarnar sem við þurfum úr JSON skránni okkar. Öll mynstrin, sem og flokkurinn/merkið sem þau tilheyra, eru nauðsynleg.
Við þurfum líka lista yfir öll einstök hugtök í mynstrum okkar (af ástæðum sem við munum útskýra síðar), svo við skulum búa til nokkra auða lista til að halda utan um þessi gildi.
Nú munum við fara í gegnum JSON gögnin okkar og sækja þær upplýsingar sem við þurfum. Frekar en að hafa þá sem strengi, munum við nota nltk.word auðkenni til að umbreyta hverju mynstri í lista yfir orð.
Síðan, í docs_x listanum okkar, munum við bæta hverju mynstri, ásamt tilheyrandi merki, við docs_y listann.
5. Orðastafur
Að finna rót orðs er þekkt sem stemming. Til dæmis gæti stofn orðsins „þess“ stofn verið „það“ en stofn orðsins „að gerast“ gæti verið „gerast“.
Við munum nota þessa stemmingartækni til að klippa niður orðaforða líkansins okkar og reyna að komast að því hvað setningar gefa til kynna almennt. Þessi kóði mun einfaldlega búa til einstakan lista yfir stofnorð sem verða notuð í næsta áfanga gagnagerðar okkar.
6. Poki af orðum
Það er kominn tími til að tala um poka af orðum núna þegar við höfum flutt inn gögnin okkar og búið til staðlaðan orðaforða. Taugakerfi og reiknirit vélanáms, eins og við vitum öll, krefjast tölulegs inntaks. Svo strengjalistinn okkar er ekki að fara að skera það. Við þurfum kerfi til að tákna tölur í setningum okkar, það er þar sem poki af orðum kemur inn.
Hver setning verður táknuð með lista yfir lengd fjölda hugtaka í orðaforða líkansins okkar. Hvert orð í orðaforða okkar verður táknað með stað á listanum. Ef staðan á listanum er 1 kemur orðið fyrir í yfirlýsingu okkar; ef það er 0 kemur orðið ekki fyrir í setningunni okkar.
Við köllum það poka af orðum vegna þess að við þekkjum ekki röðina sem orðin koma fyrir í orðasambandinu; það eina sem við vitum er að þau eru til í orðaforða líkansins okkar.
Auk þess að skipuleggja inntak okkar verðum við líka að forsníða úttakið okkar þannig að tauganetið skilji það. Við munum búa til úttakslista sem eru á lengd fjölda merkimiða/merkja í gagnasafninu okkar, svipað og poka af orðum. Hver staður á listanum táknar einstakt merki/merki og 1 á einhverjum af þessum stöðum gefur til kynna hvaða merki/merki er verið að tákna.
Að lokum munum við nota NumPy fylki til að geyma þjálfunargögn okkar og úttak.
7. Módelþróun
Við erum tilbúin að byrja að smíða og þjálfa líkan núna þegar við höfum forunnið öll gögnin okkar. Við munum nota mjög einfalt straum-forward taugakerfi með tveimur falnum lögum fyrir markmið okkar.
Tilgangur netsins okkar verður að skoða safn orða og úthluta þeim í bekk (eitt af merkjum okkar úr JSON skránni). Við byrjum á því að koma á fót arkitektúr líkansins okkar. Hafðu í huga að þú getur spilað með sumum tölunum til að koma með betri fyrirmynd! vél nám byggir að mestu á tilraunum og mistökum.
8. Módelþjálfun og sparnaður
Það er kominn tími til að þjálfa líkanið okkar á gögnunum okkar núna þegar við höfum sett það upp! Við náum þessu með því að aðlaga gögnin okkar að líkaninu. Fjöldi tímabila sem við veitum er fjöldi skipta sem líkanið verður fyrir sömu gögnum meðan á þjálfun stendur.
Við getum vistað líkanið í skráarlíkanið þegar við höfum lokið þjálfun þess. tflearn er handrit sem hægt er að nota í öðrum forskriftum.
9. Notkun spjallbotna
Nú geturðu byrjað að spjalla við botninn þinn.
Kostir Chatbot
- Þar sem gert er ráð fyrir að vélmenni starfi 365 daga á ári, 24 tíma á dag, án launa, auka framboð og viðbragðshraða.
- Þessir vélmenni eru fullkomin verkfæri til að takast á við þrjú lykilvs stór gagna: hljóðstyrk, hraði og fjölbreytni.
- Spjallbotar eru hugbúnaður sem hægt er að nota til að fræðast um og skilja neytendur fyrirtækis.
- Það hefur yfirburða kraft að það hefur ódýran viðhaldskostnað eftir að hafa haft topp ávinning.
- Chatbot forrit búa til gögn sem kunna að vera varðveitt og notuð fyrir greiningar og spár.
Notkunartilfelli
- Að leysa fyrirspurnir viðskiptavina
- Að svara algengum spurningum
- Úthluta viðskiptavinum í stuðningsteymi
- Að safna athugasemdum viðskiptavina
- Mæli með nýjum tilboðum
- Versla með samtalsverslun
- Þjónustudeild upplýsingatækni
- Bókun gistingu
- Millifærsla
Niðurstaða
Chatbots, eins og önnur gervigreind tækni, verða notuð til að auka mannlega færni og frelsa menn til að vera skapandi og hugmyndaríkari með því að leyfa þeim að eyða meiri tíma í stefnumótandi frekar en taktísk verkefni.
Fyrirtæki, starfsmenn og neytendur munu að öllum líkindum njóta góðs af auknum eiginleikum spjallbotna eins og hraðari ráðleggingum og spám, sem og greiðan aðgang að háskerpu myndbandsráðstefnu innan samtals, í náinni framtíð, þegar gervigreind er sameinuð þróun 5G tækni.
Þessir og aðrir möguleikar eru enn í rannsókn, en eftir því sem nettengingar, gervigreind, NLP og vélanám þróast verða þeir algengari.
Chwoo
Halló,
Þakka þér fyrir þetta forrit.
Ég er með spurningu.
„bag_of_words“ er ekki skilgreint. Ég get ekki skilið þessa villu.
Gætirðu sagt mér hvernig ég get leyst þessa villu??
Þakka þér fyrir þetta forrit!! Eigðu góðan dag
Jay
Vinsamlegast bættu við aðgerð áður en þú notar chatbot hlutann:
///////////////////////////////////////////// ////////////////////////////
def bag_of_words(s, words):
poki = [0 fyrir _ innan sviðs(len(orð))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) fyrir orð í s_words]
fyrir se í s_words:
fyrir i, w í enumerate(orð):
ef w == se:
poki[i] = 1
skila numpy.array(poki)
// Það mun örugglega leysa vandamál þitt. //
///////////////////////////////////////////// // /////////////////////////
Ég er að deila öllum kóðanum með þér, svo þú munt fá skýra mynd af honum.
///////////////////////////////////////////// /////////
flytja inn nltk
frá nltk.stem.lancaster import LancasterStemmer
stemmer = LancasterStemmer()
flytja inn numpy
flytja inn tflearn
innflutning tensorflow
flytja inn af handahófi
flytja inn json
innflutningur súrum gúrkum
með open(“intents.json”) sem skrá:
gögn = json.load(skrá)
reyna:
með open(“data.pickle”, “rb”) sem f:
orð, merki, þjálfun, úttak = pickle.load(f)
nema:
orð = []
merki = []
skjöl_x = []
docs_y = []
fyrir ásetning í gögnum [„fyrirætlanir“]:
fyrir mynstur í ásetningi [„mynstur“]:
wrds = nltk.word_tokenize(mynstur)
words.extend(wrds)
docs_x.append(wrds)
docs_y.append(intent[„tag“])
ef ásetning[„tag“] ekki í merkimiðum:
labels.append(intent[„tag“])
orð = [stemmer.stem(w.lower()) fyrir w í orðum ef w != “?”]
orð = raðað(listi(sett(orð)))
merki = flokkað(merki)
þjálfun = []
úttak = []
out_empty = [0 fyrir _ innan sviðs(len(merki))]
fyrir x, doc í enumerate(docs_x):
poki = []
wrds = [stemmer.stem(w.lower()) fyrir w í skjal]
fyrir w í orðum:
ef w í wrds:
bag.append(1)
Annar:
bag.append(0)
output_row = út_tóm[:]
output_row[labels.index(docs_y[x])] = 1
training.append(poki)
output.append(output_row)
þjálfun = numpy.array(þjálfun)
output = numpy.array(output)
með open(“data.pickle”, “wb”) sem f:
pickle.dump((orð, merki, þjálfun, framleiðsla), f)
tensorflow.reset_default_graph()
net = tflearn.input_data(shape=[Engin, len(þjálfun[0])])
net = tflearn.full_connected(net, 8)
net = tflearn.full_connected(net, 8)
net = tflearn.full_connected(net, len(úttak[0]), virkjun=“softmax”)
net = tflearn.regression(net)
módel = tflearn.DNN(net)
reyna:
model.load(„model.tflearn“)
nema:
model.fit(þjálfun, framleiðsla, n_epoch=1500, batch_size=8, show_metric=True)
model.save(„model.tflearn“)
def bag_of_words(s, words):
poki = [0 fyrir _ innan sviðs(len(orð))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) fyrir orð í s_words]
fyrir se í s_words:
fyrir i, w í enumerate(orð):
ef w == se:
poki[i] = 1
skila numpy.array(poki)
def spjall():
print(“Byrjaðu að tala við vélmenni (sláðu inn hætta til að hætta)!”)
meðan satt:
inp = input(“Þú:“)
if inp.lower() == „hætta“:
brjóta
niðurstöður = model.predict([bag_of_words(inp, words)])
results_index = numpy.argmax(niðurstöður)
tag = merki[niðurstöðuvísitala]
fyrir tg í gögnum [„fyrirætlanir“]:
if tg['tag'] == tag:
svör = tg['viðbrögð']
print(random.choice(svör))
spjall()
///////////////////////////////////////////// ///////////////
Þakka þér,
Gleðilega kóðun!
Lu
Halló,
Gætirðu gefið mér hugmynd um ferlið sem á að framkvæma ef þú vilt búa til spjallbot í python, en upplýsingarnar eru fengnar úr könnun í excel. Þakka þér fyrir!