Obsah[Skrýt][Ukázat]
Hlasové hovory jsou v komunikačním sektoru vyřazovány ve prospěch textových a vizuálních. Podle průzkumu na Facebooku více než polovina kupujících dává přednost nákupu od společnosti, se kterou mohou mluvit. Chatování se stalo novým společensky přijatelným způsobem komunikace.
Umožňuje firmám komunikovat se svými klienty kdykoli a odkudkoli. Chatboti si stále více získávají na oblibě mezi společnostmi a zákazníky díky jejich snadnému použití a zkrácené čekací době.
Chatboti nebo automatizované konverzační programy poskytují klientům více přizpůsobenou metodu přístupu ke službám prostřednictvím textového rozhraní. Nejnovější chatboti s umělou inteligencí dokážou rozpoznat dotaz (otázku, příkaz, příkaz atd.) zadaný osobou (nebo jiným robotem, počátkem) v konkrétním prostředí a vhodně reagovat (odpověď, akce atd.).
V tomto příspěvku si projdeme, co jsou chatboti, jejich výhody, případy použití a jak si vytvořit vlastní hluboké učení chatbot v Pythonu, mimo jiné.
Začněme.
Co jsou tedy chatboti?
Chatbot je často označován za jednu z nejpokročilejších a nejslibnějších forem interakce člověk-stroj. Tito digitální asistenti zlepšují zákaznickou zkušenost zefektivněním interakcí mezi lidmi a službami.
Současně poskytují podnikům nové možnosti, jak optimalizovat proces kontaktování zákazníků s ohledem na efektivitu, což může snížit náklady na konvenční podporu.
Stručně řečeno, je to software založený na AI, který má komunikovat s lidmi v jejich přirozených jazycích. Tito chatboti často komunikují prostřednictvím zvukových nebo písemných technik a mohou snadno napodobovat lidské jazyky, aby se s lidmi spojili způsobem podobným lidem.
Chatboti se učí ze svých interakcí s uživateli a postupem času se stávají realističtějšími a efektivnějšími. Mohou zvládnout širokou škálu obchodních aktivit, jako je autorizace výdajů, online kontakt se spotřebiteli a generování potenciálních zákazníků.
Vytvoření vlastního chatbota pro hluboké učení s pythonem
V této oblasti existuje mnoho různých druhů chatbotů strojové učení a AI. Někteří chatboti jsou virtuální asistenti, zatímco jiní jsou tam jen proto, aby si s nimi mohli povídat, zatímco jiní jsou zástupci zákaznických služeb.
Pravděpodobně jste viděli některé z těch, které zaměstnávají podniky, aby odpovídali na dotazy. V tomto tutoriálu vytvoříme malého chatbota, který bude odpovídat na často požadované dotazy.
1. Instalace balíčků
Naším prvním krokem je instalace následujících balíčků.
2. Údaje o školení
Nyní je čas zjistit, jaký typ informací budeme muset našemu chatbotovi poskytnout. Nepotřebujeme stahovat žádné velké datové sady, protože se jedná o jednoduchého chatbota.
Použijeme pouze informace, které jsme sami vytvořili. Chcete-li efektivně pokračovat v lekci, budete muset vygenerovat soubor .JSON se stejným formátem, jaký je uveden níže. Můj soubor se jmenuje „intents.json“.
Soubor JSON se používá k vytvoření sady zpráv, které uživatel pravděpodobně zadá a namapuje na sadu relevantních odpovědí. Každý slovník v souboru má značku, která identifikuje, do které skupiny každá zpráva patří.
Tyto informace použijeme ke školení a nervová síť kategorizovat frázi slov jako jednu ze značek v našem souboru.
Poté můžeme pouze přijmout odpověď z těchto skupin a poskytnout ji uživateli. Chatbot bude lepší a komplikovanější, když mu nabídnete další značky, odpovědi a vzory.
3. Načítání dat JSON
Začneme načtením našich dat .json a importem některých modulů. Sestavte soubor your.json ve stejném adresáři jako váš Python skript. Naše data .json se nyní uloží do proměnné data.
4. Extrakce dat
Nyní je čas extrahovat informace, které potřebujeme, z našeho souboru JSON. Všechny vzory a také třída/značka, ke které patří, jsou povinné.
Budeme také potřebovat seznam všech jedinečných pojmů v našich vzorech (z důvodů, které vysvětlíme později), takže vytvoříme nějaké prázdné seznamy, abychom měli přehled o těchto hodnotách.
Nyní projdeme naše data JSON a získáme informace, které potřebujeme. Místo toho, abychom je měli jako řetězce, použijeme nltk.word tokenizer k transformaci každého vzoru na seznam slov.
Poté v našem seznamu docs_x přidáme každý vzor spolu s přidruženou značkou do seznamu docs_y.
5. Odvozování slov
Hledání kořene slova je známé jako stemming. Například kmen slova „to“ může být „to“, zatímco kmen slova „děje se“ může být „stal se“.
Tuto techniku odvozování použijeme k oříznutí slovní zásoby našeho modelu a pokusíme se zjistit, co věty obecně znamenají. Tento kód jednoduše vygeneruje jedinečný seznam odvozených slov, který bude použit v další fázi přípravy našich dat.
6. Pytel slov
Je čas mluvit o pytli slov, když jsme importovali naše data a vytvořili odvozený slovník. Neuronové sítě a algoritmy strojového učení, jak všichni víme, vyžadují numerický vstup. Takže náš seznam řetězců to nezkrátí. Potřebujeme mechanismus, který by reprezentoval čísla v našich větách, což je místo, kde přichází pytel slov.
Každá fráze bude reprezentována seznamem délky počtu termínů ve slovníku našeho modelu. Každé slovo v našem slovníku bude reprezentováno místem v seznamu. Pokud je pozice v seznamu 1, slovo se objeví v našem prohlášení; pokud je 0, slovo se v naší větě nevyskytuje.
Říkáme tomu pytlík slov, protože neznáme pořadí, ve kterém se slova ve frázi vyskytují; vše, co víme, je, že existují ve slovníku našeho modelu.
Kromě strukturování našeho vstupu musíme také formátovat náš výstup tak, aby mu neuronová síť rozuměla. Vytvoříme výstupní seznamy, které mají délku počtu štítků/tagů v naší datové sadě, podobně jako pytlík slov. Každé místo v seznamu představuje jedinečný štítek/štítek a 1 v kterémkoli z těchto míst označuje, který štítek/štítek je zastoupen.
Nakonec použijeme pole NumPy k uložení našich tréninkových dat a výstupu.
7. Vývoj modelu
Nyní, když jsme předem zpracovali všechna naše data, jsme připraveni začít budovat a trénovat model. Pro naše cíle použijeme velmi základní dopřednou neuronovou síť se dvěma skrytými vrstvami.
Účelem naší sítě bude podívat se na sbírku slov a přiřadit je ke třídě (jedna z našich značek ze souboru JSON). Začneme vytvořením architektury našeho modelu. Mějte na paměti, že si můžete pohrát s některými čísly a přijít s lepším modelem! Strojové učení je většinou založeno na pokusech a omylech.
8. Školení a ukládání modelů
Je čas trénovat náš model na našich datech, když už jsme ho nastavili! Toho dosáhneme přizpůsobením našich dat modelu. Počet epoch, které poskytujeme, je počet, kolikrát bude model vystaven stejným datům během školení.
Jakmile dokončíme trénování, můžeme model uložit do modelu souboru. tflearn je skript, který lze použít v jiných skriptech.
9. Použití chatbota
Nyní můžete začít chatovat se svým robotem.
Výhody Chatbota
- Protože se očekává, že roboti budou fungovat 365 dní v roce, 24 hodin denně, bez placení, zvýší se dostupnost a rychlost reakce.
- Tyto roboty jsou dokonalými nástroji pro řešení tří klíčových Vs velkých dat: objem, rychlost a rozmanitost.
- Chatboti jsou software, který lze použít k poznávání a pochopení zákazníků společnosti.
- Má vynikající výkon, že má nízké náklady na údržbu poté, co má nejvyšší výhody.
- Aplikace Chatbot vytvářejí data, která mohou být uchována a použita pro analýzy a prognózy.
Případ použití
- Řešení dotazů zákazníků
- Odpovídání na často kladené otázky
- Přidělování zákazníků týmu podpory
- Shromažďování zpětné vazby od zákazníků
- Doporučení nových nabídek
- Obchod s konverzačním obchodem
- IT Helpdesk
- Rezervace ubytování
- Převod peněz
Proč investovat do čističky vzduchu?
Chatboti, stejně jako další technologie umělé inteligence, budou využíváni k rozšíření lidských dovedností a osvobození lidí, aby byli kreativnější a nápaditější, protože jim umožní trávit více času strategickými spíše než taktickými úkoly.
Firmy, zaměstnanci a spotřebitelé budou pravděpodobně v blízké budoucnosti těžit z vylepšených funkcí chatbotů, jako jsou rychlejší doporučení a předpovědi, stejně jako snadný přístup k videokonferencím ve vysokém rozlišení přímo z konverzace, až se AI zkombinuje s vývojem technologie 5G.
Tyto a další možnosti se stále zkoumají, ale s pokrokem v oblasti připojení k internetu, umělé inteligence, NLP a strojového učení budou stále více převládat.
Chwoo
Ahoj,
Děkuji za tento program.
Mám otázku.
„bag_of_words“ není definován. Nechápu tuto chybu.
Můžete mi říct, jak mohu vyřešit tuto chybu??
Děkujeme za tento program!! Měj hezký den
sojka
Před použitím sekce chatbota přidejte funkci:
////////////////////////////////////////////////// /////////////////////////
def bag_of_words(s, words):
taška = [0 pro _ v rozsahu(len(slova))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) pro slovo v s_words]
pro se v s_words:
pro i, w ve výčtu (slov):
pokud w == se:
taška[i] = 1
return numpy.array(bag)
// Určitě to vyřeší váš problém. //
////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////
Sdílím s vámi kompletní kód, takže o něm budete mít jasnou představu.
////////////////////////////////////////////////// / /////////
importovat nltk
z nltk.stem.lancaster import LancasterStemmer
stemmer = LancasterStemmer()
import numpy
importovat tflearn
import tensorflow
importovat náhodně
importovat JSON
importovat nálev
se souborem open(“intents.json”):
data = json.load(soubor)
vyzkoušejte následující postup:
s open("data.pickle", "rb") jako f:
slova, popisky, školení, výstup = pickle.load(f)
až na:
slova = []
štítky = []
docs_x = []
docs_y = []
pro intent in data[“intents”]:
pro vzor v záměru["vzory"]:
wrds = nltk.word_tokenize(vzor)
slova.prodloužit (slova)
docs_x.append(wrds)
docs_y.append(intent[“tag”])
pokud záměr[“tag“] není ve štítcích:
labels.append(intent[“tag”])
slova = [stemmer.stem(w.lower()) pro w ve slovech, pokud w != „?“]
slova = seřazeno(seznam(množina(slov)))
štítky = seřazeno (štítky)
trénink = []
výstup = []
out_empty = [0 pro _ in range(len(labels))]
pro x, doc v enumerate(docs_x):
taška = []
wrds = [stemmer.stem(w.lower()) pro w v dokumentu]
pro w slovy:
if w ve slovech:
bag.append(1)
jiný:
bag.append(0)
output_row = out_empty[:]
output_row[labels.index(docs_y[x])] = 1
trénink.připojit (pytel)
output.append(výstupní_řádek)
trénink = numpy.array(trénink)
výstup = numpy.array(výstup)
s open("data.pickle", "wb") jako f:
pickle.dump((slova, štítky, školení, výstup), f)
tensorflow.reset_default_graph()
net = tflearn.input_data(shape=[None, len(trénink[0])])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, len(výstup[0]), aktivace=”softmax”)
net = tflearn.regression(net)
model = tflearn.DNN(net)
vyzkoušejte následující postup:
model.load("model.tflearn")
až na:
model.fit(trénink, výstup, n_epoch=1500, velikost_dávky=8, show_metric=True)
model.save("model.tflearn")
def bag_of_words(s, words):
taška = [0 pro _ v rozsahu(len(slova))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) pro slovo v s_words]
pro se v s_words:
pro i, w ve výčtu (slov):
pokud w == se:
taška[i] = 1
return numpy.array(bag)
def chat():
print („Začněte mluvit s robotem (zastavte zadáním quit)!“)
zatímco True:
inp = input("Vy:")
if inp.lower() == „ukončit“:
rozbít
výsledky = model.predict([bag_of_words(inp, words)])
results_index = numpy.argmax(results)
tag = labels[results_index]
pro tg v datech[“intents”]:
if tg['tag'] == tag:
odpovědi = tg['responses']
print(random.choice(responses))
povídat si()
////////////////////////////////////////////////// ///////////////
Děkuji,
Šťastné programování!
Lu
Ahoj,
Mohl byste mi dát představu o procesu, který je třeba provést v případě, že chcete vytvořit chatbota v pythonu, ale informace jsou získány z průzkumu v excelu. Děkuji!