Мазмұны[Жасыру][Көрсету]
Байланыс секторында мәтіндік және көрнекі бейнелердің пайдасына дауыстық қоңыраулар біртіндеп жойылуда. Facebook сауалнамасына сәйкес, сатып алушылардың жартысынан көбі сөйлесе алатын компаниядан сатып алуды қалайды. Чат жаңа әлеуметтік қолайлы қарым-қатынас әдісіне айналды.
Бұл бизнеске өз клиенттерімен кез келген уақытта және кез келген жерден байланысуға мүмкіндік береді. Чатботтар қолданудың қарапайымдылығы мен күту уақытының қысқаруына байланысты компаниялар мен тұтынушылар арасында танымалдылыққа ие болуда.
Чат-боттар немесе автоматтандырылған сөйлесу бағдарламалары клиенттерге мәтіндік интерфейс арқылы қызметтерге қол жеткізудің неғұрлым теңшелген әдісін ұсынады. Ең жаңа AI-мен жұмыс істейтін чат-боттар белгілі бір ортада адам (немесе басқа бот, бастама) жасаған сұрауды (сұрақ, пәрмен, тапсырыс және т.б.) тани алады және сәйкес жауап бере алады (жауап, әрекет және т.б.).
Бұл постта біз чат-боттардың не екенін, олардың артықшылықтарын, пайдалану жағдайларын және өзіңізді қалай жасауға болатынын қарастырамыз. терең білім алу Python-дағы чатбот, басқалармен қатар.
Бастайық.
Сонымен, чат-боттар дегеніміз не?
Чат-бот жиі адам мен машина әрекетінің ең озық және перспективалы нысандарының бірі болып табылады. Бұл цифрлық көмекшілер адамдар мен қызметтер арасындағы өзара әрекеттесуді оңтайландыру арқылы тұтынушылар тәжірибесін жақсартады.
Бір мезгілде олар кәдімгі қолдау шығындарын қысқартатын тиімділік үшін тұтынушылармен байланысу процесін оңтайландыру үшін бизнеске жаңа опцияларды ұсынады.
Бір сөзбен айтқанда, бұл адамдармен табиғи тілдерінде сөйлесуге арналған AI негізіндегі бағдарламалық жасақтама. Бұл чат-боттар жиі дыбыстық немесе жазбаша әдістер арқылы өзара әрекеттеседі және олар адамдармен адам сияқты байланысу үшін адам тілдеріне оңай еліктей алады.
Чатботтар пайдаланушылармен өзара әрекеттесулерінен үйренеді, уақыт өте келе шынайырақ және тиімдірек болады. Олар шығыстарды рұқсат ету, тұтынушылармен желіде араласу және ықтимал тұтынушыларды құру сияқты кең ауқымды іскерлік әрекеттерді басқара алады.
Python көмегімен өзіңіздің терең оқыту чат-ботыңызды жасау
Бұл салада чатботтардың көптеген түрлері бар машина оқыту және AI. Кейбір чат-боттар виртуалды көмекшілер, ал басқалары тек сөйлесу үшін, ал басқалары тұтынушыларға қызмет көрсету агенттері.
Сұрауларға жауап беру үшін бизнесте жұмыс істейтіндердің кейбірін көрген боларсыз. Жиі сұралатын сұрауларға жауап беру үшін осы оқулықта шағын чат бот жасаймыз.
1. Бумаларды орнату
Біздің бірінші қадамымыз келесі пакеттерді орнату болып табылады.
2. Тренинг деректері
Енді чат-ботқа қандай ақпарат беру керек екенін анықтайтын кез келді. Бізге үлкен деректер жиынын жүктеп алудың қажеті жоқ, себебі бұл қарапайым чатбот.
Біз өзіміз жасаған ақпаратты ғана қолданамыз. Сабақты тиімді жалғастыру үшін төменде көрсетілген пішіммен бірдей .JSON файлын жасау керек. Менің файлым "intents.json" деп аталады.
JSON файлы пайдаланушы енгізетін және сәйкес жауаптар жинағына салыстыратын хабарлар жинағын жасау үшін пайдаланылады. Файлдағы әрбір сөздікте әрбір хабарлама қай топқа жататынын анықтайтын тег бар.
Біз бұл ақпаратты a нейрондық желі сөз тіркесін файлдағы тегтердің бірі ретінде санаттау үшін.
Содан кейін біз сол топтардан жауап алып, оны пайдаланушыға бере аламыз. Егер сіз оны қосымша тегтермен, жауаптармен және үлгілермен ұсынсаңыз, чатбот жақсырақ және күрделірек болады.
3. JSON деректерін жүктеу
Біз .json деректерін жүктеп, кейбір модульдерді импорттаудан бастаймыз. your.json файлын өзіңізбен бірдей каталогта жинаңыз Python сценарийі. Біздің .json деректеріміз енді деректер айнымалысында сақталады.
4. Деректерді шығару
Енді JSON файлымыздан қажетті ақпаратты алу уақыты келді. Барлық үлгілер, сондай-ақ олар тиесілі сынып/тег қажет.
Сондай-ақ бізге үлгілеріміздегі барлық бірегей терминдердің тізімі қажет болады (себептермен кейінірек түсіндіреміз), сондықтан осы мәндерді қадағалау үшін бос тізімдер жасайық.
Енді біз JSON деректерін айналдырып, қажетті ақпаратты аламыз. Оларды жолдар ретінде алудың орнына, біз әрбір үлгіні сөздер тізіміне түрлендіру үшін nltk.word токенизаторын қолданамыз.
Содан кейін, біздің docs_x тізімінде біз әрбір үлгіні байланыстырылған тегімен бірге docs_y тізіміне қосамыз.
5. Сөз түбірі
Сөздің түбірін табу түбірлік деп аталады. Мысалы, «бұл» сөзінің түбірі «бұл» болуы мүмкін, ал «болып жатқан» сөзінің түбірі «болып жатқан» болуы мүмкін.
Модельдің сөздік қорын қысқарту үшін және сөйлемдердің жалпы нені білдіретінін анықтау үшін біз осы тірек техникасын қолданамыз. Бұл код деректерді дайындаудың келесі кезеңінде қолданылатын сөздердің бірегей тізімін жасайды.
6. Сөздер қапшығы
Деректерімізді импорттап, сөздік қорын жасағаннан кейін сөз қапшығы туралы айтатын кез келді. Нейрондық желілер және машиналық оқыту алгоритмдері, бәріміз білетіндей, сандық енгізуді қажет етеді. Сондықтан біздің жолдар тізімі оны қысқартпайды. Бізге сөйлемдердегі сандарды білдіретін механизм қажет, бұл жерде сөздер қапшығы кіреді.
Әрбір сөз тіркесі біздің үлгінің сөздік қорындағы терминдер санының ұзындығының тізімімен ұсынылатын болады. Сөздік қорымыздағы әрбір сөз тізімдегі орынмен көрсетіледі. Тізімдегі позиция 1 болса, бұл сөз біздің мәлімдемеде пайда болады; егер ол 0 болса, бұл сөз сөйлемімізде кездеспейді.
Сөз тіркесіндегі сөздердің қай реттілігін білмегендіктен, оны сөз қапшығы дейміз; Біз білетініміз - олардың біздің модельдің сөздік қорында бар екендігі.
Енгізуді құрылымдаумен қатар, нейрондық желі оны түсінетіндей етіп шығаруды да пішімдеуіміз керек. Деректер жиынындағы белгілер/тегтер санының ұзындығы сөздер қаптамасына ұқсас шығыс тізімдерін жасаймыз. Тізімдегі әрбір орын бірегей белгіні/тегті білдіреді және сол орындардың кез келгеніндегі 1 қай белгіні/тегті көрсететінін көрсетеді.
Соңында біз NumPy массивтерін жаттығу деректері мен шығыстарын сақтау үшін қолданамыз.
7. Модельді әзірлеу
Біз барлық деректерімізді алдын ала өңдегеннен кейін үлгіні құруға және оқытуды бастауға дайынбыз. Біз өз мақсаттарымыз үшін екі жасырын қабаты бар өте қарапайым алға бағытталған нейрондық желіні қолданамыз.
Біздің желіміздің мақсаты сөздер жинағын қарау және оларды сыныпқа тағайындау болады (JSON файлындағы тегтеріміздің бірі). Біз үлгінің архитектурасын орнатудан бастаймыз. Жақсырақ модельді табу үшін кейбір сандармен ойнауға болатынын есте сақтаңыз! Машина оқыту негізінен сынақ пен қателікке негізделген.
8. Үлгіні оқыту және сақтау
Біз оны орнатқаннан кейін, біздің деректерімізге үлгіні үйрететін уақыт келді! Біз бұған деректерімізді үлгіге сәйкестендіру арқылы қол жеткіземіз. Біз ұсынатын дәуірлер саны - бұл модельдің жаттығу кезінде бірдей деректерге ұшырау саны.
Модельді үйретуді аяқтағаннан кейін оны файл үлгісіне сақтай аламыз. tflearn — басқа сценарийлерде пайдалануға болатын сценарий.
9. Чат-ботты пайдалану
Енді сіз ботыңызбен сөйлесуді бастай аласыз.
Чатботтың артықшылықтары
- Боттар жылына 365 күн, тәулігіне 24 сағат, ақысыз жұмыс істейді деп күтілуде, қолжетімділік пен реакция жылдамдығын арттырады.
- Бұл боттар үлкен деректердің үш негізгі V-мен күресу үшін тамаша құрал: көлем, жылдамдық және әртүрлілік.
- Чатботтар - бұл компанияның тұтынушылары туралы білу және түсіну үшін пайдалануға болатын бағдарламалық құрал.
- Ол жоғары артықшылықтарға ие болғаннан кейін арзан техникалық қызмет көрсету құнына ие болатын жоғары қуатқа ие.
- Chatbot қолданбалары аналитика мен болжамдар үшін сақталуы және пайдаланылуы мүмкін деректерді жасайды.
Қолдану жағдайы
- Тұтынушылардың сұрауларын шешу
- Жиі қойылатын сұрақтарға жауап беру
- Клиенттерді қолдау тобына тағайындау
- Тұтынушының пікірлерін жинау
- Жаңа ұсыныстарды ұсыну
- Әңгімелесу арқылы сауда жасаңыз
- IT анықтамалық қызметі
- Тұрғын үйлерді брондау
- Ақша аударымы
қорытынды
Чатботтар, басқа AI технологиялары сияқты, адамның дағдыларын арттыру және адамдарға тактикалық емес, стратегиялық тапсырмаларға көбірек уақыт бөлуге мүмкіндік беру арқылы олардың шығармашылық және қиялды болуына мүмкіндік береді.
Таяу болашақта AI дамуымен біріктірілген кезде, бизнестер, қызметкерлер және тұтынушылар тезірек ұсыныстар мен болжамдар, сондай-ақ сөйлесу барысында жоғары ажыратымдылықтағы бейне конференцияларға оңай қол жеткізу сияқты жетілдірілген чатбот мүмкіндіктерінің пайдасын көруі мүмкін. 5G технологиясы.
Осы және басқа мүмкіндіктер әлі де зерттелуде, бірақ интернетке қосылу, AI, NLP және машиналық оқыту прогрессі ретінде олар көбірек таралады.
Чву
Сәлеметсіз бе,
Бұл бағдарлама үшін рахмет.
Менде сұрақ бар.
"сөздер_қаптасы" анықталмаған. Мен бұл қатені түсіне алмаймын.
Бұл қатені қалай шешуге болатынын айта аласыз ба?
Бұл бағдарлама үшін рахмет!! Күніңіз жақсы өтсін
Jay
Чатбот бөлімін пайдаланбас бұрын функцияны қосыңыз:
/////////////////////////////////////////////// ////////////////////////////
деф_сөздер_бағыты(лар, сөздер):
қап = [ауқымдағы _ үшін 0(лен(сөздер))]
s_words = nltk.word_tokenize(лар)
s_words = [s_words ішіндегі сөз үшін stemmer.stem(word.lower())]
for se in s_words:
i, w үшін санау(сөздер):
егер w == se:
қап[i] = 1
қайтару numpy.array(сөмке)
// Бұл сіздің мәселеңізді міндетті түрде шешеді. //
/////////////////////////////////////////////////////////// ///////////////////////////
Мен сізбен толық кодты бөлісемін, сондықтан сіз оның нақты бейнесін аласыз.
/////////////////////////////////////////////// /////////
импорт nltk
nltk.stem.lancaster импорттауынан LancasterStemmer
stemmer = LancasterStemmer()
numpy импорттау
импорттау tflearn
импорттық тензор ағыны
кездейсоқ импорттау
импорт json
қиярды импорттау
файл ретінде open («intents.json») арқылы:
деректер = json.load(файл)
тырысу:
open(“data.pickle”, “rb”) f ретінде:
сөздер, жапсырмалар, оқыту, шығыс = pickle.load(f)
қоспағанда:
сөздер = []
белгілер = []
docs_x = []
docs_y = []
деректердегі ниет үшін[“intents”]:
ниеттегі үлгі үшін[“үлгілер”]:
wrds = nltk.word_tokenize(үлгі)
сөздер.extend(wrds)
docs_x.append(wrds)
docs_y.append(inent[“тег”])
егер ниет[“тег”] белгілерде болмаса:
labels.append(inent[“teg”])
сөздер = [stemmer.stem(w.lower()) w үшін сөздерде w != “?”]
сөздер = сұрыпталған(тізім(жиын(сөздер)))
белгілер = сұрыпталған (белгілер)
жаттығу = []
шығыс = []
out_empty = [ауқымдағы _ үшін 0(лен(белгілер))]
x үшін, enumerate (docs_x) ішіндегі құжат:
сөмке = []
wrds = [құжаттағы w үшін stemmer.stem(w.lower())]
w үшін сөзбен:
wrd болса:
bag.append(1)
басқа:
bag.append(0)
шығыс_жолы = бос_шығыс[:]
шығыс_жолы[labels.index(docs_y[x])] = 1
жаттығу.қосу (сөмке)
output.append(шығыс_жолы)
тренинг = numpy.array(тренинг)
шығыс = numpy.array (шығыс)
open("data.pickle", "wb") f ретінде:
pickle.dump((сөздер, белгілер, оқыту, шығыс), f)
tensorflow.reset_default_graph()
net = tflearn.input_data(пішін=[Жоқ, len(тренинг[0])])
net = tflearn.fully_connected(таза, 8)
net = tflearn.fully_connected(таза, 8)
net = tflearn.fully_connected(net, len(шығару[0]), белсендіру=”softmax”)
net = tflearn.regression(таза)
үлгі = tflearn.DNN(таза)
тырысу:
model.load («model.tflearn»)
қоспағанда:
model.fit(жаттығу, шығару, n_epoch=1500, batch_size=8, show_metric=True)
model.save («model.tflearn»)
деф_сөздер_бағыты(лар, сөздер):
қап = [ауқымдағы _ үшін 0(лен(сөздер))]
s_words = nltk.word_tokenize(лар)
s_words = [s_words ішіндегі сөз үшін stemmer.stem(word.lower())]
for se in s_words:
i, w үшін санау(сөздер):
егер w == se:
қап[i] = 1
қайтару numpy.array(сөмке)
def chat():
print («Ботпен сөйлесуді бастаңыз (тоқтату үшін quit деп теріңіз)!»)
ал шын:
inp = кіріс («Сіз: «)
егер inp.lower() == «шығу»:
Үзіліс
нәтижелер = model.predict([сөздер_қаптары(кіріс, сөздер)])
нәтижелер_индекс = numpy.argmax (нәтижелер)
тег = белгілер[нәтижелер_индекс]
деректердегі tg үшін[“intents”]:
if tg['tag'] == тег:
жауаптар = tg['жауаптар']
басып шығару(кездейсоқ.таңдау(жауаптар))
чат()
//////////////////////////////////////////////////////////////// // ////////////////
Рақмет сізге,
Кодтау құтты болсын!
Lu
Сәлеметсіз бе,
Сіз маған python-да чат-бот жасағыңыз келген жағдайда орындалатын процесс туралы түсінік бере аласыз ба, бірақ ақпарат Excel-дегі сауалнамадан алынған. Рақмет сізге!