Tartalomjegyzék[Elrejt][Előadás]
A kommunikációs szektorban fokozatosan megszüntetik a hanghívásokat a szöveg és a látvány javára. Egy Facebook közvélemény-kutatás szerint a vásárlók több mint fele szívesebben vásárol olyan cégtől, akivel tud beszélni. A csevegés a kommunikáció új, társadalmilag elfogadható módja lett.
Lehetővé teszi a vállalkozások számára, hogy bármikor és bárhonnan kommunikáljanak ügyfeleikkel. A chatbotok egyre nagyobb népszerűségre tesznek szert a cégek és az ügyfelek körében a könnyű használat és a rövidebb várakozási idő miatt.
A chatbotok vagy automatizált társalgási programok személyre szabottabb módszert biztosítanak az ügyfeleknek a szolgáltatásokhoz szöveges felületen keresztül történő eléréséhez. A legújabb mesterséges intelligencia alapú chatbotok képesek felismerni egy személy (vagy egy másik bot, kezdet) által adott lekérdezést (kérdést, parancsot, parancsot stb.) egy adott környezetben, és megfelelően reagálnak (válasz, cselekvés stb.).
Ebben a bejegyzésben áttekintjük, mik azok a chatbotok, előnyeik, használati eseteik, és hogyan készítsd el a sajátodat. mély tanulás chatbot többek között Pythonban.
Lássunk neki.
Szóval mik azok a chatbotok?
A chatbotot gyakran az ember-gép interakció egyik legfejlettebb és legígéretesebb formájának tartják. Ezek a digitális asszisztensek az emberek és a szolgáltatások közötti interakciók egyszerűsítésével javítják az ügyfélélményt.
Ezzel egyidejűleg új lehetőségeket kínálnak a vállalkozásoknak az ügyfélkapcsolati folyamat hatékonyságának optimalizálására, ami csökkentheti a hagyományos támogatási kiadásokat.
Dióhéjban ez egy mesterséges intelligencia-alapú szoftver, amely arra szolgál, hogy az emberekkel a természetes nyelvükön kommunikáljon. Ezek a chatbotok gyakran hang- vagy írásos technikákon keresztül lépnek kapcsolatba, és könnyen utánozhatják az emberi nyelveket, hogy emberhez hasonló módon kapcsolódjanak az emberekhez.
A chatbotok tanulnak a felhasználókkal folytatott interakcióikból, és idővel valósághűbbé és hatékonyabbá válnak. Az üzleti tevékenységek széles skáláját képesek kezelni, például kiadások engedélyezését, a fogyasztókkal való online kapcsolatfelvételt és potenciális ügyfelek generálását.
Saját mély tanulási chatbot létrehozása python segítségével
Számos különböző típusú chatbot létezik a területen gépi tanulás és AI. Egyes chatbotok virtuális asszisztensek, míg mások csak beszélgetni, míg mások ügyfélszolgálati ügynökök.
Valószínűleg Ön is látott már olyanokat, akiket a vállalkozások alkalmaznak a kérdések megválaszolására. Ebben az oktatóanyagban egy kis chatbotot készítünk a gyakran feltett kérdések megválaszolásához.
1. Csomagok telepítése
Első lépésünk a következő csomagok telepítése.
2. Képzési adatok
Itt az ideje, hogy kitaláljuk, milyen típusú információkat kell megadnunk a chatbotunknak. Nincs szükség nagy adatkészletek letöltésére, mert ez egy egyszerű chatbot.
Csak azokat az információkat használjuk fel, amelyeket magunk hoztunk létre. A lecke hatékony követéséhez létre kell hoznia egy .JSON-fájlt az alábbiakban látható formátummal. A fájl neve „intents.json”.
A JSON-fájl a felhasználó által valószínűleg bevitt üzenetek készletének létrehozására szolgál, és megfelelő válaszok csoportjához rendelhető. A fájlban lévő minden szótárhoz tartozik egy címke, amely azonosítja, hogy az egyes üzenetek melyik csoporthoz tartoznak.
Ezt az információt fogjuk használni a képzéshez a neurális hálózat hogy egy szókifejezést a fájlunk egyik címkéjeként kategorizáljon.
Ezután csak választ kaphatunk ezektől a csoportoktól, és eljuttathatjuk a felhasználóhoz. A chatbot jobb és bonyolultabb lesz, ha további címkékkel, válaszokkal és mintákkal kínálja fel.
3. JSON adatok betöltése
Kezdjük azzal, hogy betöltjük a .json-adatainkat, és importálunk néhány modult. Állítsa össze a.json fájlját ugyanabba a könyvtárba, mint a saját Python szkript. A .json-adataink mostantól az adatváltozóban lesznek elmentve.
4. Adatkinyerés
Itt az ideje, hogy kivonjuk a szükséges információkat a JSON-fájlunkból. Az összes minta, valamint az osztály/címke, amelyhez tartoznak, kötelező.
Szükségünk lesz egy listára a mintáinkban szereplő összes egyedi kifejezésről (később kifejtendő okokból), ezért hozzunk létre néhány üres listát, hogy nyomon követhessük ezeket az értékeket.
Most végigfutjuk a JSON-adatainkat, és lekérjük a szükséges információkat. Ahelyett, hogy karakterláncként használnánk őket, az nltk.word tokenizer-t használjuk, hogy minden mintát szólistává alakítsunk.
Ezután a docs_x listánkban minden mintát a hozzájuk tartozó címkékkel együtt hozzáadunk a docs_y listához.
5. Szótömeg
A szó tövének megtalálását tőképzőnek nevezzük. Például az „az” szó törzse lehet „az”, míg a „történik” szó törzse „megtörténik”.
Ezt a szótő technikát használjuk modellünk szókincsének levágására, és megpróbáljuk kitalálni, hogy a mondatok általában mit jelentenek. Ez a kód egyszerűen létrehoz egy egyedi listát a törzsből álló szavakból, amelyeket az adat-előkészítés következő szakaszában használunk fel.
6. Szavak zsákja
Itt az ideje, hogy egy zsáknyi szóról beszéljünk, most, hogy importáltuk adatainkat, és létrehoztunk egy törzsű szókészletet. Neurális hálózatok és a gépi tanulási algoritmusok, mint tudjuk, numerikus bevitelt igényelnek. Tehát a sztringlistánk nem fogja megvágni. Szükségünk van egy mechanizmusra, amely a számokat ábrázolja a mondatainkban, és ez az, ahol egy zsáknyi szó jön be.
Minden kifejezést a modellünk szókincsében található kifejezések számának hosszának listája képvisel. Szókincsünkben minden szót egy hely képvisel a listában. Ha a lista pozíciója 1, akkor a szó megjelenik az utasításunkban; ha 0, akkor a szó nem jelenik meg a mondatunkban.
Azért hívjuk szózsáknak, mert nem ismerjük a szavak sorrendjét a kifejezésben; csak annyit tudunk, hogy léteznek modellünk szókincsében.
A bemenetünk strukturálása mellett a kimenetünket is úgy kell formáznunk, hogy a neurális hálózat megértse azt. Olyan kimeneti listákat készítünk, amelyek az adatkészletünkben lévő címkék/címkék számának megfelelő hosszúságúak, hasonlóan egy zsáknyi szóhoz. A listában minden hely egy egyedi címkét/címkét jelöl, és az 1-es bármelyik helyen azt jelzi, hogy melyik címkét/címkét ábrázolja.
Végül NumPy tömböket használunk a képzési adatok és a kimenetek tárolására.
7. Modellfejlesztés
Készen állunk egy modell felépítésének és betanításának megkezdésére, miután minden adatunkat előfeldolgoztuk. Céljaink eléréséhez egy nagyon egyszerű előrecsatolt neurális hálózatot fogunk használni két rejtett réteggel.
Hálózatunk célja az lesz, hogy megvizsgáljon egy szógyűjteményt, és hozzárendelje őket egy osztályhoz (az egyik címkénk a JSON-fájlból). Kezdjük modellünk architektúrájának létrehozásával. Ne feledje, hogy néhány számmal játszva jobb modellt találhat ki! Gépi tanulás többnyire próbálkozáson és hibán alapul.
8. Modellképzés és mentés
Itt az ideje, hogy a modellünket az adatainkra tanítsuk, most, hogy beállítottuk! Ezt úgy érjük el, hogy adatainkat a modellhez illesztjük. Az általunk megadott korszakok száma annyi, hogy a modell hányszor lesz kitéve ugyanazoknak az adatoknak a képzés során.
A modellt elmenthetjük a fájlmodellbe, ha befejeztük a betanítást. A tflearn egy szkript, amely más szkriptekben is használható.
9. Chatbot használata
Most elkezdhet csevegni a botjával.
A Chatbot előnyei
- Mivel a robotok várhatóan az év 365 napján, a nap 24 órájában, fizetés nélkül működnek, növeli a rendelkezésre állást és a reakciósebességet.
- Ezek a robotok tökéletes eszközök a nagy adathalmaz három kulcsfontosságú V-jének leküzdésére: a mennyiség, a sebesség és a változatosság.
- A chatbotok olyan szoftverek, amelyek segítségével megismerhetők és megérthetők a vállalat fogyasztói.
- Kiemelkedő teljesítménye, hogy olcsó karbantartási költsége van a legnagyobb előnyök után.
- A Chatbot alkalmazások olyan adatokat hoznak létre, amelyek megőrizhetők és felhasználhatók elemzésekhez és előrejelzésekhez.
Usecase
- Ügyfélkérdések megoldása
- A gyakran ismételt kérdések megválaszolása
- Ügyfelek hozzárendelése a támogató csapathoz
- Vásárlói visszajelzések gyűjtése
- Új ajánlatok ajánlása
- Vásároljon beszélgetős kereskedelemmel
- IT Helpdesk
- Szállásfoglalás
- Pénzátutalás
Következtetés
A chatbotokat – más mesterséges intelligencia-technológiákhoz hasonlóan – az emberi képességek fejlesztésére, valamint az emberek kreatívabbá és fantáziadúsabbá tételére fogják használni, mivel lehetővé teszik számukra, hogy több időt töltsenek stratégiai, nem pedig taktikai feladatokkal.
A vállalkozások, az alkalmazottak és a fogyasztók a közeljövőben valószínűleg profitálni fognak a továbbfejlesztett chatbot-funkciókból, mint például a gyorsabb ajánlások és előrejelzések, valamint a nagyfelbontású videokonferenciákhoz való könnyű hozzáférés egy beszélgetésen belül, amikor a mesterséges intelligencia kombinálódik a 5G technológia.
Ezeket és más lehetőségeket még vizsgálják, de az internetkapcsolat, az AI, az NLP és a gépi tanulás előrehaladtával egyre elterjedtebbek lesznek.
Chwoo
Helló,
Köszönjük ezt a programot.
Kérdésem van.
A „bag_of_words” nincs definiálva. Nem értem ezt a hibát.
Meg tudnád mondani, hogy tudom megoldani ezt a hibát??
Köszönöm ezt a programot!! Szép napot
hülye
Kérjük, adjon hozzá egy funkciót a chatbot szakasz használata előtt:
////////////////////////////////////////////////// /////////////////////////////
def bag_of_words(s, words):
táska = [0 for _ in range(len(words))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) az s_words szóhoz]
for se in s_words:
i, w esetén felsorolásban(szavakban):
ha w == se:
zacskó[i] = 1
return numpy.array(bag)
// Biztosan megoldja a problémát. //
////////////////////////////////////////////////// //////////////////////////
A teljes kódot megosztom veled, így tiszta képet kapsz róla.
////////////////////////////////////////////////// /////////
Import nltk
innen: nltk.stem.lancaster import LancasterStemmer
stemmer = LancasterStemmer()
import numpy
import tflearn
import tensorflow
import véletlenszerűen
json importálása
import savanyúság
open(“intents.json”) fájllal:
adatok = json.load(file)
próbálja ki:
open("data.pickle", "rb") mint f:
szavak, címkék, képzés, kimenet = pác.load(f)
kivéve:
szavak = []
címkék = []
docs_x = []
docs_y = []
adatban lévő szándék ["intents"]:
minta az intentben [„minták”]:
wrds = nltk.word_tokenize(minta)
words.extend(wrds)
docs_x.append(wrds)
docs_y.append(intent["címke"])
ha az intent["tag"] nincs a címkékben:
labels.append(intent["címke"])
szavak = [stemmer.stem(w.lower()) for w szavakban, ha w != "?"]
szavak = rendezve(list(set(szavak)))
címkék = rendezve(címkék)
képzés = []
kimenet = []
out_empty = [0 for _ in range(len(labels))]
x esetén doc in enumerate(docs_x):
táska = []
wrds = [stemmer.stem(w.lower()) a w számára a doc-ban]
w szavakkal:
ha w wrd-ben:
bag.append(1)
más:
bag.append(0)
output_row = out_empty[:]
output_row[labels.index(docs_y[x])] = 1
edzés.append(táska)
output.append(kimeneti_sor)
edzés = numpy.array(képzés)
output = numpy.array(output)
open("data.pickle", "wb") mint f:
pickle.dump((szavak, címkék, képzés, kimenet), f)
tensorflow.reset_default_graph()
net = tflearn.input_data(shape=[Nincs, len(képzés[0])])
net = tflearn.teljesen_kapcsolva(net, 8)
net = tflearn.teljesen_kapcsolva(net, 8)
net = tflearn.full_connected(net, len(output[0]), activation=”softmax”)
net = tflearn.regression(net)
modell = tflearn.DNN(net)
próbálja ki:
model.load("model.tflearn")
kivéve:
model.fit(képzés, kimenet, n_epoch=1500, batch_size=8, show_metric=igaz)
model.save("model.tflearn")
def bag_of_words(s, words):
táska = [0 for _ in range(len(words))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) az s_words szóhoz]
for se in s_words:
i, w esetén felsorolásban(szavakban):
ha w == se:
zacskó[i] = 1
return numpy.array(bag)
def chat():
print ("Kezdj el beszélni a bottal (a leállításhoz írja be a quit parancsot)!")
míg True:
inp = input ("Te: ")
if inp.lower() == "quit":
szünet
eredmények = model.predict([szavak_zsákja(inp, szavak)])
eredmények_index = numpy.argmax(eredmények)
tag = címkék[results_index]
tg in data ["intents"] esetén:
if tg['tag'] == címke:
válaszok = tg['válaszok']
nyomtatás (random.choice(válaszok))
csevegés()
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Köszönöm,
Boldog kódolást!
Lu
Helló,
Tudna adni egy ötletet a folyamatról, amelyet akkor kell végrehajtani, ha chatbotot akarunk létrehozni pythonban, de az információkat egy excel felmérésből nyerjük. Köszönöm!