Мазмуну[Жашыруу][Көрсөтүү]
Байланыш секторунда үн чалуулар тексттик жана визуалдык көрүнүштөрдүн пайдасына акырындык менен жоюлууда. Facebook сурамжылоосуна ылайык, сатып алуучулардын жарымынан көбү алар менен сүйлөшө ала турган компаниядан сатып алууну каалашат. Чат баарлашуунун жаңы коомдук алгылыктуу ыкмасы болуп калды.
Бул ишканаларга кардарлары менен каалаган убакта жана каалаган жерден байланышууга мүмкүнчүлүк берет. Чатботтор колдонуунун оңойлугунан жана күтүү убактысынын кыскарышынан улам компаниялардын жана кардарлардын арасында популярдуулукка ээ болууда.
Чатботтор же автоматташтырылган сүйлөшүү программалары кардарларга текстке негизделген интерфейс аркылуу кызматтарга жетүү үчүн көбүрөөк ылайыкташтырылган ыкма менен камсыз кылат. AI менен иштеген эң жаңы чатботтор белгилүү бир чөйрөдө адам (же башка бот, баштоо) тарабынан жасалган суроону (суроо, буйрук, буйрук ж.б.) таанып, тийиштүү түрдө жооп бере алат (жооп, аракет ж.б.).
Бул постто биз чатботтор деген эмне, алардын артыкчылыктары, колдонуу учурлары жана өзүңүздүн өзүңүздүн кантип жасоо керектиги жөнүндө сүйлөшөбүз. терең билим алуу башка нерселердин арасында Python chatbot.
Анда баштайлы.
Ошентип, чатботтор деген эмне?
Чатбот көбүнчө адам менен машинанын өз ара аракеттенүүсүнүн эң алдыңкы жана келечектүү формаларынын бири деп аталат. Бул санарип жардамчылары адамдардын жана кызматтардын ортосундагы өз ара аракеттенүүнү иретке келтирүү менен кардарлардын тажрыйбасын жакшыртат.
Ошол эле учурда, алар бизнести кардарлар менен байланыш процессин оптималдаштыруунун жаңы варианттары менен камсыздайт, бул кадимки колдоо чыгымдарын кыскартат.
Кыскача айтканда, бул AI негизиндеги программалык камсыздоо, ал адамдар менен алардын табигый тилдеринде баарлашууга арналган. Бул чатботтор көбүнчө аудио же жазуу ыкмалары аркылуу өз ара аракеттенишет жана алар адамдар менен адам сымал байланышта болуу үчүн адам тилдерин оңой эле туурай алышат.
Чатботтор убакыттын өтүшү менен реалдуураак жана эффективдүү болуп, колдонуучулар менен болгон мамилесинен үйрөнүшөт. Алар чыгымдарга уруксат берүү, онлайн керектөөчүлөр менен байланышуу жана лидерлерди түзүү сыяктуу бизнес иш-аракеттеринин кеңири спектрин аткара алышат.
Питон менен өзүңүздүн терең үйрөнүүчү чатботуңузду түзүү
чөйрөсүндө чатботтордун көптөгөн түрлөрү бар машина үйрөнүү жана AI. Кээ бир чатботтор виртуалдык жардамчылар, ал эми башкалары жөн гана баарлашуу үчүн ошол жерде, ал эми башкалары кардарларды тейлөө агенттери.
Сиз суроолорго жооп берүү үчүн ишканаларда иштегендердин айрымдарын көргөн чыгарсыз. Биз бул окуу куралында көп суралган суроолорго жооп берүү үчүн кичинекей чатбот жасайбыз.
1. Пакеттерди орнотуу
Биздин биринчи кадам төмөнкү пакеттерди орнотуу болуп саналат.
2. Тренинг маалыматтары
Эми чатботубузга кандай маалымат беришибиз керек экенин аныктоого убакыт келди. Бизге эч кандай чоң маалымат топтомун жүктөп алуунун кереги жок, анткени бул жөнөкөй чатбот.
Биз өзүбүз жараткан маалыматты гана колдонобуз. Сабакты натыйжалуу улантуу үчүн, төмөндө көрсөтүлгөн форматтагы .JSON файлын түзүшүңүз керек болот. Менин файлым "intents.json" деп аталды.
JSON файлы колдонуучу киргизе турган билдирүүлөрдүн топтомун түзүү үчүн колдонулат жана тиешелүү жооптордун жыйындысы менен тааныштырат. Файлдагы ар бир сөздүктө ар бир билдирүү кайсы топко таандык экенин аныктоочу теги бар.
Биз бул маалыматты а нейрон тармак биздин файлдагы тегдердин бири катары сөздөрдүн бир сөз айкашын категориялоо үчүн.
Андан кийин биз ошол топтордон жооп алып, аны колдонуучуга бере алабыз. Эгер сиз аны кошумча тегдер, жооптор жана үлгүлөр менен сунуштасаңыз, чатбот жакшыраак жана татаалыраак болот.
3. JSON берилиштерин жүктөө
Биз .json дайындарыбызды жүктөө жана кээ бир модулдарды импорттоо менен баштайбыз. your.json файлын сиздики менен бир каталогго чогултуңуз Python скрипти. Биздин .json дайындары эми берилиш өзгөрмөсүндө сакталат.
4. Маалыматтарды чыгаруу
Эми биздин JSON файлыбыздан керектүү маалыматты алып чыгууга убакыт келди. Бардык үлгүлөр, ошондой эле алар таандык болгон класс/тег талап кылынат.
Бизге үлгүлөрүбүздөгү бардык уникалдуу терминдердин тизмеси да керек болот (себептерди кийинчерээк түшүндүрөбүз), андыктан бул баалуулуктарга көз салуу үчүн бош тизмелерди түзөлү.
Эми биз JSON берилиштерибизди карап чыгып, керектүү маалыматты алып чыгабыз. Аларды сап катары эмес, биз ар бир үлгүнү сөздөрдүн тизмесине айландыруу үчүн nltk.word tokenizer колдонобуз.
Андан кийин, биздин docs_x тизмебизде, биз ар бир үлгүнү анын тиешелүү теги менен docs_y тизмесине кошобуз.
5. Сөздүн уңгусу
Сөздүн уңгусун табуу уңгу деп аталат. Мисалы, "бул" деген сөздүн уңгусу "ошол" болушу мүмкүн, ал эми "болуп жаткан" сөзүнүн уңгусу "болуп жаткан" болушу мүмкүн.
Моделибиздин лексикасын кыскартуу жана сүйлөмдөрдүн жалпысынан эмнени билдирерин аныктоо үчүн биз бул түптөө ыкмасын колдонобуз. Бул код жөн гана маалыматтарды даярдоонун кийинки этабында колдонула турган уникалдуу сөздөрдүн тизмесин түзөт.
6. Сөз баштыгы
Маалыматтарыбызды импорттоп, лексиканы түзүп алганыбыздан кийин, бир кап сөздөр жөнүндө айтууга убакыт келди. Нейрон тармактары жана машина үйрөнүү алгоритмдери, баарыбыз билгендей, сандык киргизүүнү талап кылат. Ошентип, биздин тизмекти кыскартууга болбойт. Бизге сүйлөмдөрүбүздө сандарды көрсөтүүчү механизм керек, бул жерде бир кап сөздөр кирет.
Ар бир фраза биздин моделдин лексикасындагы терминдердин санынын тизмеси менен көрсөтүлөт. Сөз байлыгыбыздагы ар бир сөз тизмедеги орун менен көрсөтүлөт. Тизмедеги позиция 1 болсо, бул сөз биздин билдирүүдө пайда болот; эгерде ал 0 болсо, бул сөз сүйлөмүбүздө болбойт.
Сөздөрдүн сөз айкашында кандай ырааттуулугун билбегендиктен аны сөз баштыгы дейбиз; Биз билебиз, алар биздин моделдин лексикасында бар.
Киргизүүнү структуралаштыруудан тышкары, биз нейротармак аны түшүнө тургандай кылып чыгаруубузду да форматташыбыз керек. Биз маалымат топтомубуздагы энбелгилердин/тегдердин санынын узундугуна барабар болгон чыгаруу тизмелерин түзөбүз. Тизмедеги ар бир жер уникалдуу энбелгиси/тегди билдирет, ал эми ошол жерлердеги 1 кайсы белги/тег көрсөтүлүп жатканын көрсөтөт.
Акыр-аягы, биз NumPy массивдерин окуу маалыматтарыбызды жана натыйжаларыбызды сактоо үчүн колдонобуз.
7. Моделди иштеп чыгуу
Биз бардык маалыматтарыбызды алдын ала иштетип бүткөндөн кийин, моделди түзүп, үйрөтүүгө даярбыз. Биз максаттарыбыз үчүн эки жашыруун катмары бар эң негизги алдыга багытталган нейрон тармагын колдонобуз.
Тармакыбыздын максаты – сөздөрдүн жыйнагын карап, аларды класска дайындоо (JSON файлындагы тегибиздин бири). Биз моделибиздин архитектурасын түзүү менен баштайбыз. Жакшыраак моделди табуу үчүн кээ бир сандар менен ойной аларыңызды унутпаңыз! машина үйрөнүү негизинен сыноо жана ката негизделген.
8. Үлгү окутуу жана сактоо
Биз аны орнотуп алгандан кийин, моделибизди дайындарыбызга үйрөтүүгө убакыт келди! Биз буга маалыматтарыбызды моделге тууралоо аркылуу жетишебиз. Биз берген доорлордун саны - бул моделдин окутуу учурунда бир эле маалыматтарга канча жолу туш болушу.
Моделди үйрөтүп бүткөндөн кийин биз аны файл моделине сактай алабыз. tflearn башка скрипттерде колдонулушу мүмкүн болгон скрипт.
9. Чатботту колдонуу
Эми сиз ботуңуз менен баарлаша баштасаңыз болот.
Чатботтун артыкчылыктары
- Боттор жылына 365 күн, суткасына 24 саат, акы төлөбөстөн иштеши күтүлгөндүктөн, жеткиликтүүлүктү жана реакциянын ылдамдыгын жогорулатат.
- Бул боттор чоң маалыматтардын үч негизги Vs менен күрөшүү үчүн идеалдуу куралдар: көлөм, ылдамдык жана ар түрдүүлүк.
- Чатботтор - бул компаниянын керектөөчүлөрүн билүү жана түшүнүү үчүн колдонула турган программа.
- Ал жогорку артыкчылыктарга ээ болгондон кийин арзан тейлөөгө кеткендиктен жогорку күчкө ээ.
- Chatbot Тиркемелери сакталып, аналитика жана болжолдоо үчүн колдонула турган маалыматтарды түзөт.
Usecase
- Кардардын суроо-талаптарын чечүү
- Көп берилүүчү суроолорго жооп берүү
- Кардарларды колдоо тобуна дайындоо
- Кардардын пикирлерин чогултуу
- Жаңы сунуштарды сунуштоо
- Сүйлөшүү соодасы менен соода кылыңыз
- IT жардам кызматы
- Турак жайларды брондоо
- Акча которуу
жыйынтыктоо
Чатботтор, башка AI технологиялары сыяктуу эле, адамдын көндүмдөрүн өркүндөтүү жана адамдарды тактикалык эмес, стратегиялык тапшырмаларга көбүрөөк убакыт бөлүүгө мүмкүнчүлүк берүү менен чыгармачылык жана элестетүүчүлүккө бошотуу үчүн колдонулат.
Ишкерлер, кызматкерлер жана керектөөчүлөр жакынкы келечекте, AI өнүктүрүү менен айкалышканда, тезирээк сунуштар жана божомолдор, ошондой эле сүйлөшүүнүн ичинде жогорку дааналыктагы видеоконференцияларга оңой жетүү сыяктуу жакшыртылган чатбот функцияларынан пайда көрүшү мүмкүн. 5G технологиясы.
Бул жана башка мүмкүнчүлүктөр дагы эле изилденип жатат, бирок интернет байланышы, AI, NLP жана машинаны үйрөнүү прогресси менен алар кеңири жайылат.
Chwoo
Салам,
Бул программа үчүн рахмат.
Менде бир суроо бар.
"сөздөрдүн_баштыгы" аныкталган эмес. Мен бул катаны түшүнө албай жатам.
Бул катаны кантип чечсем болот айтып бере аласызбы?
Бул программа үчүн рахмат!! Күнүңүз жакшы улансын
Jay
Чатбот бөлүмүн колдонуудан мурун функцияны кошуңуз:
////////////////////////////////////////////////////////// ////////////////////////////
деf_кап_сөздөр(лар, сөздөр):
баштык = [аралыктагы _ үчүн 0(len(сөздөр))]
s_words = nltk.word_tokenize(лер)
s_words = [s_words ичиндеги сөз үчүн stemmer.stem(word.lower())]
for se in s_words:
for i, w in enumerate(word):
эгерде 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[“teg”])
эгерде ниет[“тег”] энбелгилерде болбосо:
labels.append(inent[“teg”])
сөздөр = [stemmer.stem(w.lower()) w үчүн сөздөр менен, эгерде w != “?”]
сөздөр = иреттелген(тизме(топтом(сөздөр)))
энбелгилер = сорттолгон (энбелгилер)
тренинг = []
чыгаруу = []
out_empty = [аралыктагы _ үчүн 0(лен(энбелгилер))]
x үчүн, санактагы документ(docs_x):
сумка = []
wrds = [документтеги w үчүн stemmer.stem(w.lower())]
сөздөр менен w үчүн:
wrd менен болсо:
bag.append(1)
башка:
bag.append(0)
output_row = out_empty[:]
output_row[labels.index(docs_y[x])] = 1
окутуу.апенд(баштык)
output.append(output_row)
тренинг = 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(таза, 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")
деf_кап_сөздөр(лар, сөздөр):
баштык = [аралыктагы _ үчүн 0(len(сөздөр))]
s_words = nltk.word_tokenize(лер)
s_words = [s_words ичиндеги сөз үчүн stemmer.stem(word.lower())]
for se in s_words:
for i, w in enumerate(word):
эгерде w == se:
баштык[i] = 1
numpy.array(баштык) кайтаруу
def chat():
print("Бот менен сүйлөшө баштаңыз (токтоо үчүн чыгууну териңиз)!")
чын болсо:
inp = киргизүү("Сиз:")
if inp.lower() == “кет”:
тыныгуу
жыйынтыктар = model.predict([сөздөрдүн_баштыгы(киргизүү, сөздөр)])
results_index = numpy.argmax(натыйжалар)
тэг = энбелгилер[results_index]
tg in data["intents"] үчүн:
if tg['tag'] == тэг:
жооптор = tg['жооптор']
print(random.choice(жооптор))
чат()
////////////////////////////////////////////////////////// ///////////////
Рахмат сага,
Бактылуу коддоо!
Lu
Салам,
Питондо чатбот түзүүнү кааласаңыз, процесс жөнүндө түшүнүк бере аласызбы, бирок маалымат Excelде сурамжылоодон алынган. Рахмат!