Tabl Cynnwys[Cuddio][Dangos]
Mae galwadau llais yn cael eu dirwyn i ben yn raddol o blaid testun a gweledol yn y sector cyfathrebu. Yn ôl arolwg Facebook, mae'n well gan fwy na hanner y prynwyr brynu gan gwmni y gallant siarad ag ef. Mae sgwrsio wedi dod yn ddull cyfathrebu newydd sy'n dderbyniol yn gymdeithasol.
Mae'n galluogi busnesau i gyfathrebu â'u cleientiaid ar unrhyw adeg ac o unrhyw leoliad. Mae Chatbots yn dod yn fwyfwy poblogaidd ymhlith cwmnïau a chwsmeriaid oherwydd eu bod yn hawdd i'w defnyddio ac amseroedd aros llai.
Mae Chatbots, neu raglenni sgwrsio awtomataidd, yn darparu dull mwy pwrpasol i gleientiaid gael mynediad at wasanaethau trwy ryngwyneb testun. Gall y chatbots mwyaf newydd sy'n cael eu pweru gan AI adnabod ymholiad (cwestiwn, gorchymyn, gorchymyn, ac ati) a wneir gan berson (neu bot arall, cychwyniad) mewn amgylchedd penodol ac ymateb yn briodol (ateb, gweithred, ac ati).
Yn y swydd hon, byddwn yn mynd dros beth yw chatbots, eu buddion, achosion defnydd, a sut i wneud rhai eich hun dysgu dwfn chatbot yn Python, ymhlith pethau eraill.
Dewch inni ddechrau.
Felly, beth yw chatbots?
Cyfeirir yn aml at chatbot fel un o'r ffurfiau mwyaf datblygedig ac addawol o ryngweithio rhwng dyn a pheiriant. Mae'r cynorthwywyr digidol hyn yn gwella profiad cwsmeriaid trwy symleiddio'r rhyngweithio rhwng pobl a gwasanaethau.
Ar yr un pryd, maent yn darparu opsiynau newydd i fusnesau i wneud y gorau o'r broses cyswllt cwsmeriaid ar gyfer effeithlonrwydd, a all dorri costau cymorth confensiynol.
Yn y bôn, meddalwedd sy'n seiliedig ar AI yw hwn sydd i fod i gyfathrebu â bodau dynol yn eu hieithoedd naturiol. Mae'r chatbots hyn yn aml yn rhyngweithio trwy dechnegau sain neu ysgrifenedig, a gallant ddynwared ieithoedd dynol yn hawdd er mwyn cysylltu â bodau dynol mewn modd tebyg i ddyn.
Mae Chatbots yn dysgu o'u rhyngweithio â defnyddwyr, gan ddod yn fwy realistig ac effeithlon dros amser. Gallant ymdrin ag ystod eang o weithgareddau busnes, megis awdurdodi gwariant, ymgysylltu â defnyddwyr ar-lein, a chynhyrchu arweinwyr.
Creu eich chatbot dysgu dwfn eich hun gyda python
Mae yna lawer o wahanol fathau o chatbots yn y maes dysgu peiriant ac AI. Mae rhai chatbots yn gynorthwywyr rhithwir, tra bod eraill yno i sgwrsio â nhw, tra bod eraill yn asiantau gwasanaeth cwsmeriaid.
Mae'n debyg eich bod wedi gweld rhai o'r rhai a gyflogir gan fusnesau i ateb ymholiadau. Byddwn yn gwneud chatbot bach yn y tiwtorial hwn i ateb ymholiadau cyffredin.
1. gosod pecynnau
Ein cam cyntaf yw gosod y pecynnau canlynol.
2. Data Hyfforddiant
Nawr mae'n bryd darganfod pa fath o wybodaeth y bydd angen i ni ei rhoi i'n chatbot. Nid oes angen i ni lawrlwytho unrhyw setiau data mawr oherwydd mae hwn yn chatbot syml.
Dim ond y wybodaeth rydyn ni wedi'i chreu ein hunain y byddwn ni'n ei defnyddio. Er mwyn dilyn yn effeithiol ynghyd â'r wers, bydd angen i chi gynhyrchu ffeil .JSON gyda'r un fformat â'r un a welir isod. Enw fy ffeil yw “intents.json.”
Defnyddir y ffeil JSON i greu set o negeseuon y mae'r defnyddiwr yn debygol o'u mewnbynnu a'u mapio i set o atebion perthnasol. Mae gan bob geiriadur yn y ffeil dag sy'n nodi i ba grŵp y mae pob neges yn perthyn.
Byddwn yn defnyddio'r wybodaeth hon i hyfforddi a rhwydwaith nefol i gategoreiddio ymadrodd o eiriau fel un o'r tagiau yn ein ffeil.
Yna gallwn gymryd ymateb gan y grwpiau hynny a'i roi i'r defnyddiwr. Bydd y chatbot yn well ac yn fwy cymhleth os byddwch chi'n ei gynnig gyda thagiau, atebion a phatrymau ychwanegol.
3. Llwytho data JSON
Byddwn yn dechrau trwy lwytho ein data .json i mewn a mewnforio rhai modiwlau. Cydosod eich ffeil.json yn yr un cyfeiriadur â'ch Sgript Python. Bydd ein data .json nawr yn cael eu cadw yn y newidyn data.
4. Echdynnu Data
Nawr mae'n bryd tynnu'r wybodaeth sydd ei hangen arnom o'n ffeil JSON. Mae angen yr holl batrymau, yn ogystal â'r dosbarth/tag y maent yn perthyn iddo.
Bydd arnom hefyd angen rhestr o'r holl dermau unigryw yn ein patrymau (am resymau y byddwn yn eu hesbonio yn nes ymlaen), felly gadewch i ni greu rhai rhestrau gwag i gadw golwg ar y gwerthoedd hyn.
Nawr byddwn yn dolennu trwy ein data JSON ac yn adfer y wybodaeth sydd ei hangen arnom. Yn hytrach na'u cael fel llinynnau, byddwn yn defnyddio tokenizer nltk.word i drawsnewid pob patrwm yn rhestr o eiriau.
Yna, yn ein rhestr docs_x, byddwn yn ychwanegu pob patrwm, ynghyd â'i dag cysylltiedig, at y rhestr docs_y.
5. Coesiad Geiriau
Mae dod o hyd i wraidd gair yn cael ei adnabod fel stemio. Er enghraifft, gall coesyn y gair “thats” fod yn “hynny,” tra gallai bôn y gair “digwydd” fod yn “digwydd.”
Byddwn yn defnyddio'r dechneg atal hon i docio geirfa ein model a cheisio darganfod beth mae brawddegau'n ei awgrymu'n gyffredinol. Yn syml, bydd y cod hwn yn cynhyrchu rhestr unigryw o eiriau bôn a fydd yn cael eu defnyddio yn ystod cam nesaf ein gwaith paratoi data.
6. Bag o Eiriau
Mae'n bryd siarad am fag o eiriau nawr ein bod ni wedi mewnforio ein data ac wedi cynhyrchu geirfa goesog. Rhwydweithiau niwral ac mae algorithmau dysgu peirianyddol, fel y gwyddom oll, yn gofyn am fewnbwn rhifiadol. Felly nid yw ein rhestr llinynnol yn mynd i'w dorri. Mae angen mecanwaith i gynrychioli rhifau yn ein brawddegau, a dyna lle mae bag o eiriau yn dod i mewn.
Bydd pob ymadrodd yn cael ei gynrychioli gan restr o hyd nifer y termau yng ngeirfa ein model. Bydd pob gair yn ein geirfa yn cael ei gynrychioli gan le yn y rhestr. Os 1 yw y sefyllfa yn y rhestr, ymddengys y gair yn ein gosodiad ; os 0 ydyw, nid yw y gair yn ymddangos yn ein brawddeg.
Rydyn ni'n ei alw'n fag o eiriau oherwydd ni wyddom ym mha drefn y mae'r geiriau yn ymddangos yn yr ymadrodd; y cyfan a wyddom yw eu bod yn bodoli yng ngeirfa ein model.
Yn ogystal â strwythuro ein mewnbwn, rhaid i ni hefyd fformatio ein hallbwn fel bod y rhwydwaith niwral yn ei ddeall. Byddwn yn adeiladu rhestrau allbwn sy'n cyfateb i hyd nifer y labeli/tagiau yn ein set ddata, yn debyg i fag o eiriau. Mae pob lle yn y rhestr yn cynrychioli label/tag unigryw, ac mae 1 yn unrhyw un o’r lleoliadau hynny yn nodi pa label/tag sy’n cael ei gynrychioli.
Yn olaf, byddwn yn defnyddio araeau NumPy i storio ein data hyfforddi a'n hallbwn.
7. Datblygu Model
Rydym yn barod i ddechrau adeiladu a hyfforddi model nawr ein bod wedi rhagbrosesu ein holl ddata. Byddwn yn defnyddio rhwydwaith niwral bwydo ymlaen sylfaenol iawn gyda dwy haen gudd ar gyfer ein hamcanion.
Pwrpas ein rhwydwaith fydd edrych ar gasgliad o eiriau a'u neilltuo i ddosbarth (un o'n tagiau o ffeil JSON). Byddwn yn dechrau trwy sefydlu pensaernïaeth ein model. Cofiwch y gallwch chi chwarae gyda rhai o'r niferoedd i ddod o hyd i fodel gwell! Dysgu peiriant yn seiliedig yn bennaf ar brofi a methu.
8. Hyfforddiant Model ac Arbed
Mae'n bryd hyfforddi ein model ar ein data nawr ein bod wedi ei sefydlu! Byddwn yn cyflawni hyn drwy ffitio ein data i'r model. Y nifer o gyfnodau a ddarparwn yw'r nifer o weithiau y bydd y model yn cael ei amlygu i'r un data yn ystod hyfforddiant.
Gallwn gadw'r model i'r model ffeil unwaith y byddwn wedi gorffen ei hyfforddi. Mae tflearn yn sgript y gellir ei defnyddio mewn sgriptiau eraill.
9. Defnyddio chatbot
Nawr gallwch chi ddechrau sgwrsio â'ch bot.
Manteision Chatbot
- Gan fod disgwyl i bots weithredu 365 diwrnod y flwyddyn, 24 awr y dydd, heb dâl, cynyddu argaeledd a chyflymder ymateb.
- Mae'r botiau hyn yn offer perffaith ar gyfer mynd i'r afael â thri V allweddol data mawr: cyfaint, cyflymder ac amrywiaeth.
- Meddalwedd yw Chatbots y gellir ei defnyddio i ddysgu am ddefnyddwyr cwmni a'u deall.
- Mae ganddo bŵer uwch, sef bod ganddo gost cynnal a chadw rhad ar ôl cael y buddion gorau.
- Mae Chatbot Applications yn creu data y gellir ei gadw a'i ddefnyddio ar gyfer dadansoddeg a rhagolygon.
Achos defnydd
- Datrys ymholiadau cwsmeriaid
- Ateb cwestiynau cyffredin
- Neilltuo cwsmeriaid i gefnogi tîm
- Casglu adborth cwsmeriaid
- Argymell cynigion newydd
- Siop gyda masnach sgyrsiol
- Desg Gymorth TG
- Archebu llety
- Trosglwyddo arian
Casgliad
Bydd Chatbots, fel technolegau AI eraill, yn cael eu defnyddio i ychwanegu at sgiliau dynol a rhyddhau bodau dynol i fod yn fwy creadigol a dychmygus trwy ganiatáu iddynt dreulio mwy o amser ar dasgau strategol yn hytrach na thactegol.
Mae busnesau, gweithwyr a defnyddwyr yn debygol o elwa o nodweddion chatbot gwell fel argymhellion a rhagfynegiadau cyflymach, yn ogystal â mynediad hawdd at gynadledda fideo manylder uwch o fewn sgwrs, yn y dyfodol agos, pan fydd AI yn cael ei gyfuno â datblygiad AI. Technoleg 5G.
Mae'r rhain a phosibiliadau eraill yn dal i gael eu hymchwilio, ond wrth i gysylltedd rhyngrwyd, AI, NLP, a dysgu peiriannau ddatblygu, byddant yn dod yn fwy cyffredin.
Chwoo
Helo,
Diolch am y rhaglen hon.
Mae gen i cwestiwn.
Nid yw “bag_of_words” wedi'i ddiffinio. Ni allaf ddeall y gwall hwn.
A allech ddweud wrthyf sut y gallaf ddatrys y gwall hwn ??
Diolch am y rhaglen yma!! Cael diwrnod da
Jay
Ychwanegwch swyddogaeth cyn defnyddio'r adran chatbot:
/////////////////////////////////////////////////// ///////////////////////////
def bag_of_words(s, words):
bag = [0 am _ mewn amrediad(len(geiriau))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) am air mewn s_words]
ar gyfer se mewn s_words:
ar gyfer i, w mewn rhifo(geiriau):
os w == se:
bag[i] = 1
dychwelyd numpy.array(bag)
// Bydd yn bendant yn datrys eich mater. //
//////////////////////////////////////////////////////// // //////////////////////////////////
Rwy'n rhannu'r cod cyflawn gyda chi, felly fe gewch chi ddarlun clir ohono.
/////////////////////////////////////////////////// ////////
mewnforio nltk
o nltk.stem.lancaster mewnforio LancasterStemmer
stemiwr = LancasterStemmer()
mewnforio numpy
mewnforio tflearn
tensorlif mewnforio
mewnforio ar hap
mewnforio json
piclo mewnforio
gydag agored (“intents.json”) fel ffeil:
data = json.load(ffeil)
ceisiwch:
gydag agored ("data.pickle", "rb") fel f:
geiriau, labeli, hyfforddiant, allbwn = pickle.load(f)
ac eithrio:
geiriau = []
labeli = []
docs_x = []
docs_y = []
am fwriad mewn data[“bwriadau”]:
ar gyfer patrwm mewn bwriad[“patrymau”]:
wrds = nltk.word_tokenize(patrwm)
geiriau.extend(wrds)
docs_x.append(wrds)
docs_y.append(bwriad["tag"])
os nad yw bwriad[“tag”] mewn labeli:
labels.append(bwriad[“tag”])
geiriau = [stemmer.stem(w.lower()) am w mewn geiriau os w != “?”]
geiriau = didoli (rhestr (set (geiriau)))
labeli = didoli (labeli)
hyfforddiant = []
allbwn = []
out_empty = [0 am _ mewn amrediad(len(labeli))]
ar gyfer x, doc mewn rhif(docs_x):
bag = []
wrds = [stemmer.stem(w.lower()) ar gyfer w yn y doc]
am w mewn geiriau:
os w mewn geiriau:
bag.atodiad(1)
arall:
bag.atodiad(0)
output_row = allan_gwag[:]
output_row[labels.index(docs_y[x])] = 1
hyfforddiant.atodiad(bag)
allbwn.append(allbwn_rhes)
hyfforddiant = numpy.array(hyfforddiant)
allbwn = numpy.array(allbwn)
gydag agored(“data.pickle”, “wb”) fel f:
pickle.dump((geiriau, labeli, hyfforddiant, allbwn), f)
tensorflow.reset_default_graph()
net = tflearn.input_data(siâp=[Dim, len(hyfforddiant[0])])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, len(allbwn[0]), activation="softmax")
net = tflearn.regression(net)
model = tflearn.DNN(net)
ceisiwch:
model.load("model.tflearn")
ac eithrio:
model.fit(hyfforddiant, allbwn, n_epoch=1500, batch_size=8, show_metric=Gwir)
model.save("model.tflearn")
def bag_of_words(s, words):
bag = [0 am _ mewn amrediad(len(geiriau))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) am air mewn s_words]
ar gyfer se mewn s_words:
ar gyfer i, w mewn rhifo(geiriau):
os w == se:
bag[i] = 1
dychwelyd numpy.array(bag)
sgwrs def():
print ("Dechrau siarad gyda'r bot (teipiwch roi'r gorau iddi i stopio)!")
tra Gwir:
inp = mewnbwn("Chi:")
os inp.lower() == "rhoi'r gorau iddi":
torri
canlyniadau = model.predict([bag_of_words(inp, words)])
results_index = numpy.argmax(canlyniadau)
tag = labeli[results_index]
ar gyfer tg mewn data[“bwriadau”]:
os tg['tag'] == tag:
ymatebion = tg['ymatebion']
print( hap.choice(ymatebion))
sgwrs ()
/////////////////////////////////////////////////// //////////////
Diolch yn fawr,
Codio hapus!
Lu
Helo,
A allech chi roi syniad i mi o'r broses i'w chynnal yn achos eisiau creu chatbot yn python, ond mae'r wybodaeth yn dod o arolwg yn excel. Diolch!