Змест[Схаваць][Паказаць]
У камунікацыйным сектары галасавыя выклікі паступова адмяняюцца на карысць тэкставых і візуальных. Паводле апытання ў Facebook, больш за палову пакупнікоў аддаюць перавагу купляць у кампаніі, з якой яны могуць пагаварыць. Чат стаў новым сацыяльна прымальным спосабам зносін.
Гэта дазваляе прадпрыемствам мець зносіны са сваімі кліентамі ў любы час і з любога месца. Чат-боты ўсё больш набіраюць папулярнасць сярод кампаній і кліентаў дзякуючы прастаце выкарыстання і скарачэнню часу чакання.
Чат-боты або аўтаматызаваныя гутарковыя праграмы прадастаўляюць кліентам больш індывідуальны метад доступу да паслуг праз тэкставы інтэрфейс. Найноўшыя чат-боты на базе штучнага інтэлекту могуць распазнаваць запыт (пытанне, каманду, загад і г.д.), зроблены чалавекам (або іншым ботам, пачатак) у пэўным асяроддзі, і рэагаваць належным чынам (адказ, дзеянне і г.д.).
У гэтай публікацыі мы разгледзім, што такое чат-боты, іх перавагі, варыянты выкарыстання і як стварыць свой уласны глыбокае вывучэнне chatbot на Python, сярод іншага.
Давайце пачнем.
Такім чынам, што такое чат-боты?
Чат-бот часта называюць адной з самых перадавых і перспектыўных форм узаемадзеяння чалавека і машыны. Гэтыя лічбавыя памочнікі паляпшаюць узаемадзеянне з кліентамі, упарадкоўваючы ўзаемадзеянне паміж людзьмі і службамі.
Адначасова яны прадастаўляюць прадпрыемствам новыя магчымасці для аптымізацыі працэсу кантактаў з кліентамі для павышэння эфектыўнасці, што можа скараціць звычайныя выдаткі на падтрымку.
У двух словах, гэта праграмнае забеспячэнне на аснове штучнага інтэлекту, якое прызначана для зносін з людзьмі на іх натуральных мовах. Гэтыя чат-боты часта ўзаемадзейнічаюць з дапамогай аўдыё або пісьмовых метадаў, і яны могуць лёгка імітаваць чалавечыя мовы, каб звязвацца з людзьмі падобным чынам.
Чат-боты вучацца на сваім узаемадзеянні з карыстальнікамі, з часам становячыся больш рэалістычнымі і эфектыўнымі. Яны могуць апрацоўваць шырокі спектр бізнес-дзейнасці, напрыклад, санкцыянаванне выдаткаў, узаемадзеянне са спажыўцамі ў Інтэрнэце і прыцягненне патэнцыйных кліентаў.
Стварэнне ўласнага чат-бота глыбокага навучання з дапамогай python
Ёсць шмат розных відаў чат-ботаў у вобласці навучанне з дапамогай машыны і ІІ. Некаторыя чат-боты з'яўляюцца віртуальнымі памочнікамі, іншыя - проста для размовы, трэція - агентамі па абслугоўванні кліентаў.
Вы, напэўна, бачылі некаторых з тых, каго наймаюць прадпрыемствы, каб адказваць на запыты. У гэтым уроку мы створым невялікі чат-бот, каб адказваць на часта запытваныя запыты.
1. Устаноўка пакетаў
Наш першы крок - усталяваць наступныя пакеты.
2. Навучальныя даныя
Цяпер прыйшоў час высветліць, якую інфармацыю нам трэба будзе даць нашаму чат-боту. Нам не трэба спампоўваць вялікія наборы даных, таму што гэта просты чат-бот.
Мы будзем выкарыстоўваць толькі інфармацыю, якую стварылі самі. Каб эфектыўна прытрымлівацца ўрока, вам трэба стварыць файл .JSON у такім жа фармаце, як паказана ніжэй. Мой файл называецца «intents.json».
Файл JSON выкарыстоўваецца для стварэння набору паведамленняў, якія карыстальнік можа ўвесці і супаставіць з наборам адпаведных адказаў. Кожны слоўнік у файле мае тэг, які вызначае, да якой групы належыць кожнае паведамленне.
Мы будзем выкарыстоўваць гэтую інфармацыю для навучання a нейронных сеткі каб класіфікаваць фразу слоў у якасці аднаго з тэгаў у нашым файле.
Затым мы можам проста ўзяць адказ ад гэтых груп і даць яго карыстальніку. Чат-бот стане лепшым і больш складаным, калі вы прапануеце яму дадатковыя тэгі, адказы і шаблоны.
3. Загрузка дадзеных JSON
Мы пачнем з загрузкі нашых даных .json і імпарту некаторых модуляў. Збярыце файл your.json у тым жа каталогу, што і ваш Скрыпт python. Нашы даныя .json цяпер будуць захаваны ў зменнай data.
4. Выманне даных
Цяпер прыйшоў час атрымаць неабходную інфармацыю з нашага файла JSON. Патрабуюцца ўсе ўзоры, а таксама клас/тэг, да якога яны належаць.
Нам таксама спатрэбіцца спіс усіх унікальных тэрмінаў у нашых шаблонах (па прычынах, якія мы растлумачым пазней), таму давайце створым некалькі пустых спісаў, каб адсочваць гэтыя значэнні.
Зараз мы пракруцім нашы даныя JSON і атрымаем патрэбную інфармацыю. Замест таго, каб мець іх у выглядзе радкоў, мы будзем выкарыстоўваць токенизатор nltk.word для пераўтварэння кожнага шаблону ў спіс слоў.
Затым у нашым спісе docs_x мы дадамо кожны шаблон разам са звязаным з ім тэгам у спіс docs_y.
5. Стварэнне слоў
Пошук кораня слова называецца стымінгам. Напрыклад, аснова слова "гэта" можа быць "гэта", тады як аснова слова "адбываецца" можа быць "здарыцца".
Мы будзем выкарыстоўваць гэтую тэхніку выцякання, каб скараціць слоўнікавы запас нашай мадэлі і паспрабаваць высветліць, што азначаюць сказы ў цэлым. Гэты код проста згенеруе ўнікальны спіс слоў, якія будуць выкарыстоўвацца на наступным этапе падрыхтоўкі даных.
6. Мяшок са словамі
Цяпер, калі мы імпартавалі нашы даныя і стварылі слоўнікавы запас, прыйшоў час пагаварыць пра мяшок слоў. Нейронныя сеткі і алгарытмы машыннага навучання, як мы ўсе ведаем, патрабуюць лічбавага ўводу. Такім чынам, наш спіс радкоў не скарачае яго. Нам патрэбен механізм для прадстаўлення лічбаў у нашых сказах, і менавіта тут з'яўляецца мяшок слоў.
Кожная фраза будзе прадстаўлена спісам даўжыні колькасці тэрмінаў у слоўніку нашай мадэлі. Кожнае слова ў нашым слоўніку будзе прадстаўлена месцам у спісе. Калі пазіцыя ў спісе роўная 1, слова з'яўляецца ў нашай заяве; калі гэта 0, слова не сустракаецца ў нашым сказе.
Мы называем гэта сумкай слоў, таму што не ведаем паслядоўнасці, у якой словы з'яўляюцца ў фразе; усё, што мы ведаем, гэта тое, што яны ёсць у слоўніку нашай мадэлі.
У дадатак да структуравання нашых уваходных дадзеных, мы таксама павінны адфарматаваць наш выхад, каб нейронавая сетка разумела яго. Мы будзем ствараць выходныя спісы, даўжыня якіх роўна колькасці цэтлікаў/тэгаў у нашым наборы даных, падобна мяшку са словамі. Кожнае месца ў спісе ўяўляе сабой унікальную метку/цэтлік, а 1 у любым з гэтых месцаў паказвае, якая метка/тэг прадстаўлена.
Нарэшце, мы будзем выкарыстоўваць масівы NumPy для захоўвання нашых навучальных даных і вываду.
7. Распрацоўка мадэлі
Цяпер, пасля папярэдняй апрацоўкі ўсіх даных, мы гатовыя пачаць стварэнне і навучанне мадэлі. Для нашых мэтаў мы будзем выкарыстоўваць вельмі простую нейронавую сетку з прамой перадачай з двума схаванымі пластамі.
Мэтай нашай сеткі будзе прагляд калекцыі слоў і прызначэнне іх класу (адзін з нашых тэгаў з файла JSON). Мы пачнем з стварэння архітэктуры нашай мадэлі. Майце на ўвазе, што вы можаце пагуляць з некаторымі лічбамі, каб прыдумаць лепшую мадэль! навучанне з дапамогай машыны у асноўным заснавана на спробах і памылках.
8. Навучанне і захаванне мадэляў
Прыйшоў час навучыць нашу мадэль на нашых дадзеных цяпер, калі мы яе наладзілі! Мы дасягнем гэтага, падганяючы нашы дадзеныя да мадэлі. Колькасць эпох, якую мы прадстаўляем, - гэта колькасць разоў, калі мадэль будзе падвяргацца ўздзеянню адных і тых жа даных падчас навучання.
Мы можам захаваць мадэль у файл мадэлі пасля таго, як скончым яе навучанне. tflearn - гэта скрыпт, які можна выкарыстоўваць у іншых скрыптах.
9. Выкарыстанне чат-бота
Цяпер вы можаце пачаць размаўляць са сваім ботам.
Перавагі чат-бота
- Чакаецца, што боты будуць працаваць 365 дзён у годзе, 24 гадзіны ў суткі, без аплаты працы, павялічваючы даступнасць і хуткасць рэакцыі.
- Гэтыя боты з'яўляюцца ідэальнымі інструментамі для барацьбы з трыма ключавымі супрацьстаяннямі вялікіх даных: аб'ёмам, хуткасцю і разнастайнасцю.
- Чат-боты - гэта праграмнае забеспячэнне, якое можна выкарыстоўваць для вывучэння і разумення спажыўцоў кампаніі.
- Ён валодае найвышэйшай магутнасцю, таму што мае танныя выдаткі на абслугоўванне пасля таго, як мае галоўныя перавагі.
- Праграмы Chatbot ствараюць даныя, якія можна захоўваць і выкарыстоўваць для аналітыкі і прагнозаў.
Выкарыстанне
- Вырашэнне запытаў кліентаў
- Адказы на часта задаюць пытанні
- Прызначэнне кліентаў у службу падтрымкі
- Збор водгукаў кліентаў
- Рэкамендуем новыя прапановы
- Крама з размоўнай камерцыяй
- IT Helpdesk
- Браніраванне жылля
- Грашовы перавод
заключэнне
Чат-боты, як і іншыя тэхналогіі штучнага інтэлекту, будуць выкарыстоўвацца для павышэння чалавечых навыкаў і вызвалення людзей ад таго, каб быць больш творчымі і фантазійнымі, дазваляючы ім марнаваць больш часу на стратэгічныя, а не на тактычныя задачы.
Прадпрыемствы, супрацоўнікі і спажыўцы, верагодна, выйграюць ад пашыраных функцый чат-бота, такіх як больш хуткія рэкамендацыі і прагнозы, а таксама лёгкі доступ да відэаканферэнцый высокай выразнасці з размовы ў найбліжэйшай будучыні, калі штучны інтэлект будзе аб'яднаны з развіццём тэхналогіі 5G.
Гэтыя і іншыя магчымасці ўсё яшчэ даследуюцца, але па меры развіцця падключэння да Інтэрнэту, штучнага інтэлекту, НЛП і машыннага навучання яны стануць больш распаўсюджанымі.
Цху
Добры дзень,
Дзякуй за гэтую праграму.
У мяне ёсць пытанне.
“bag_of_words” не вызначаны. Я не магу зразумець гэтую памылку.
Не маглі б вы сказаць мне, як я магу вырашыць гэтую памылку??
Дзякуй за гэтую праграму!! Добрага дня
Сойка
Калі ласка, дадайце функцыю перад выкарыстаннем раздзела чат-бота:
/////////////////////////////////////////////////////////////////////////////
def bag_of_words(s, words):
сумка = [0 для _ у дыяпазоне (даўжыня (словы))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) для слова ў s_words]
для сябе ў s_words:
для i, w у пералічэнні (слоў):
калі w == se:
сумка[i] = 1
вярнуць numpy.array(мяшок)
// Гэта абавязкова вырашыць вашу праблему. //
///////////////////////////////////////////////////////////////////////////
Я дзялюся з вамі поўным кодам, так што вы атрымаеце яго дакладнае ўяўленне.
/////////////////////////////////////////////////// /////////
імпарт nltk
з nltk.stem.lancaster імпартаваць LancasterStemmer
stemmer = LancasterStemmer()
імпартаваць numpy
імпарт tflearn
імпарт tensorflow
імпарт выпадковы
імпартаваць JSON
імпартны расол
з адкрытым (“intents.json”) у выглядзе файла:
дадзеныя = json.load (файл)
паспрабуйце:
з open(“data.pickle”, “rb”) як f:
словы, этыкеткі, навучанне, выхад = pickle.load(f)
акрамя:
словы = []
этыкеткі = []
дакументы_x = []
дакументы_y = []
для намераў у дадзеных [“намеры”]:
для шаблону ў намеры [«шаблоны»]:
wrds = nltk.word_tokenize(шаблон)
words.extend(wrds)
docs_x.append(wrds)
docs_y.append(намер[“тэг”])
калі intent[“тэг”] не ў цэтліках:
labels.append(намер[“тэг”])
words = [stemmer.stem(w.lower()) для w у словах, калі w != “?”]
словы = адсартаваныя(спіс(набор(слоў)))
этыкеткі = адсартаваныя (этыкеткі)
навучанне = []
выхад = []
out_empty = [0 для _ у дыяпазоне (len(этыкеткі))]
для x, дакумент у пералічэнні (docs_x):
сумка = []
wrds = [stemmer.stem(w.lower()) для w у дакуменце]
для w словамі:
калі w у словах:
bag.append(1)
яшчэ:
bag.append(0)
выхадны радок = пусты_вывад [:]
output_row[labels.index(docs_y[x])] = 1
training.append(сумка)
output.append(вывадны_радок)
навучанне = numpy.array(навучанне)
выхад = numpy.array(выхад)
з open(“data.pickle”, “wb”) як f:
pickle.dump((словы, этыкеткі, навучанне, вывад), f)
tensorflow.reset_default_graph()
net = tflearn.input_data(форма=[Няма, даўжыня(навучанне[0])])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, len(output[0]), activation=”softmax”)
net = tflearn.regression(net)
мадэль = tflearn.DNN(net)
паспрабуйце:
model.load(“model.tflearn”)
акрамя:
model.fit(навучанне, выхад, n_epoch=1500, batch_size=8, show_metric=True)
model.save(“model.tflearn”)
def bag_of_words(s, words):
сумка = [0 для _ у дыяпазоне (даўжыня (словы))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) для слова ў s_words]
для сябе ў s_words:
для i, w у пералічэнні (слоў):
калі w == se:
сумка[i] = 1
вярнуць numpy.array(мяшок)
дэф чат():
print(“Пачаць размову з ботам (увядзіце quit, каб спыніць)!”)
праўда:
inp = input(“Вы: “)
калі inp.lower() == «выйсці»:
перапынак
вынікі = model.predict([bag_of_words(inp, words)])
вынікі_індэкс = numpy.argmax (вынікі)
тэг = этыкеткі [індэкс_вынікаў]
для tg у даных[“намеры”]:
if tg['tag'] == тэг:
адказы = tg['адказы']
друк(выпадковы.выбар(адказы))
чат()
/////////////////////////////////////////////////// ////////////////
Дзякуй,
Шчаслівага кадавання!
Lu
Добры дзень,
Не маглі б вы даць мне ўяўленне аб працэсе, які трэба выканаць у выпадку, калі вы хочаце стварыць чат-бота ў Python, але інфармацыя атрымана з апытання ў Excel. Дзякуй!