Гарчиг[Нуух][Үзүүлэх]
Харилцаа холбооны салбарт дуут дуудлагаас татгалзаж, текст болон дүрслэлийг илүүд үзэж байна. Facebook-ийн санал асуулгаар худалдан авагчдын талаас илүү хувь нь тэдэнтэй ярилцаж болох компаниас худалдан авахыг илүүд үздэг. Чат нь нийгэмд хүлээн зөвшөөрөгдсөн харилцааны шинэ хэлбэр болжээ.
Энэ нь бизнес эрхлэгчдэд хүссэн үедээ, хаана ч байсан үйлчлүүлэгчидтэйгээ харилцах боломжийг олгодог. Ашиглахад хялбар, хүлээх хугацаа багассан тул чатботууд компаниуд болон үйлчлүүлэгчдийн дунд улам бүр түгээмэл болж байна.
Чатботууд буюу автоматжуулсан харилцан ярианы программууд нь үйлчлүүлэгчдэд текстэд суурилсан интерфэйсээр дамжуулан үйлчилгээнд хандах илүү тохируулсан аргыг санал болгодог. Хамгийн сүүлийн үеийн хиймэл оюун ухаанаар ажилладаг чатботууд нь тодорхой орчинд (эсвэл өөр робот, эхлэл) хийсэн асуулгыг (асуулт, тушаал, захиалга гэх мэт) таньж, зохих ёсоор хариулах (хариулт, үйлдэл гэх мэт) боломжтой.
Энэ нийтлэлд бид чатбот гэж юу болох, тэдгээрийн ашиг тус, хэрэглээний тохиолдол, өөрөө хэрхэн бүтээх талаар авч үзэх болно. гүн гүнзгий суралцах Python дахь chatbot, бусад зүйлсийн дотор.
Эхэлцгээе.
Тэгэхээр чатбот гэж юу вэ?
Чатбот нь хүн, машин хоорондын харилцааны хамгийн дэвшилтэт, ирээдүйтэй хэлбэрүүдийн нэг гэж ихэвчлэн нэрлэгддэг. Эдгээр дижитал туслахууд нь хүмүүс болон үйлчилгээний хоорондын харилцааг оновчтой болгох замаар хэрэглэгчийн туршлагыг сайжруулдаг.
Үүний зэрэгцээ тэд бизнес эрхлэгчдэд үйлчлүүлэгчтэй харилцах үйл явцыг оновчтой болгох шинэ сонголтуудыг санал болгодог бөгөөд энэ нь уламжлалт дэмжлэгийн зардлыг бууруулах боломжтой юм.
Товчхондоо энэ нь хүмүүстэй төрөлх хэлээрээ харилцах зорилготой хиймэл оюун ухаанд суурилсан программ хангамж юм. Эдгээр чатботууд нь ихэвчлэн аудио эсвэл бичгийн техникээр харилцдаг бөгөөд хүмүүстэй хүн шиг холбогдохын тулд хүний хэлийг амархан дуурайдаг.
Чатботууд хэрэглэгчидтэй харилцах харилцаанаас суралцаж, цаг хугацаа өнгөрөх тусам илүү бодитой, үр дүнтэй болдог. Тэд зарцуулалтыг зөвшөөрөх, хэрэглэгчидтэй онлайнаар харилцах, урам зоригийг бий болгох гэх мэт өргөн хүрээний бизнесийн үйл ажиллагааг зохицуулж чадна.
Питон ашиглан гүн гүнзгий суралцах чатбот бүтээх
Энэ чиглэлээр олон төрлийн чатботууд байдаг машин суралцах болон 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. Чатбот ашиглах
Одоо та өөрийн роботтой чатлаж эхлэх боломжтой.
Chatbot-ийн ашиг тус
- Ботууд жилийн 365 өдөр, 24 цаг, ямар ч төлбөргүйгээр ажиллах төлөвтэй байгаа тул хүртээмж, хариу урвалын хурдыг нэмэгдүүлнэ.
- Эдгээр роботууд нь том өгөгдлийн эзэлхүүн, хурд, олон янз байдал гэсэн гурван гол Vs-тэй тэмцэх төгс хэрэгсэл юм.
- Чатбот нь компанийн хэрэглэгчдийн талаар мэдээлэл авах, ойлгоход хэрэглэгдэх программ хангамж юм.
- Энэ нь дээд зэргийн давуу талыг олж авсны дараа засвар үйлчилгээний хямд өртөгтэй тул өндөр хүч чадалтай.
- Чатбот програмууд нь хадгалагдаж, аналитик болон таамаглалд ашиглаж болох өгөгдлийг үүсгэдэг.
Хэрэглэх тохиолдол
- Хэрэглэгчийн хүсэлтийг шийдвэрлэх
- Байнга асуудаг асуултуудад хариулж байна
- Үйлчлүүлэгчдийг дэмжих багт томилох
- Хэрэглэгчийн санал хүсэлтийг цуглуулах
- Шинэ саналыг санал болгож байна
- Харилцааны худалдаагаар дэлгүүр хэсээрэй
- Мэдээллийн технологийн тусламжийн ширээ
- Байр захиалах
- Мөнгө шилжүүлэх
Дүгнэлт
Чатбот нь бусад хиймэл оюун ухааны технологийн нэгэн адил хүний ур чадварыг дээшлүүлэх, хүмүүсийг тактикийн бус стратегийн даалгаварт илүү их цаг зарцуулах боломжийг олгох замаар илүү бүтээлч, уран сэтгэмжтэй болгоход ашиглагдах болно.
Ойрын ирээдүйд хиймэл оюун ухааныг хөгжүүлэлттэй хослуулснаар бизнесүүд, ажилчид болон хэрэглэгчид илүү хурдан зөвлөмж, таамаглал дэвшүүлэх, түүнчлэн харилцан яриа дотроос өндөр нарийвчлалтай видео хурал хийх зэрэг сайжруулсан чатбот функцуудаас ашиг хүртэх магадлалтай. 5G технологи.
Эдгээр болон бусад боломжуудыг судалж байгаа боловч интернет холболт, AI, NLP болон машин сургалтын дэвшлийн хувьд тэдгээр нь илүү өргөн тархах болно.
Чвуу
Сайн уу,
Энэ хөтөлбөрт баярлалаа.
Надад асуулт байна.
“Үгийн_баг” тодорхойлогдоогүй байна. Би энэ алдааг ойлгохгүй байна.
Энэ алдааг яаж шийдэж чадахыг хэлж өгөөч?
Энэ хөтөлбөрт баярлалаа!! Өдрийг сайхан өнгөрүүлээрэй
Jay
Чатбот хэсгийг ашиглахаасаа өмнө функц нэмнэ үү:
///////////////////////////////////////////////////////// ////////////////////////////
def_баг_үг(үүд, үгс):
цүнх = [муж дахь _ хувьд 0(len(үг))]
s_words = nltk.word_tokenize(s)
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.pikle”, “rb”)-тай f:
үг, шошго, сургалт, гаралт = даршилсан ногоо.ачаа(f)
бусад:
үгс = []
шошго = []
docs_x = []
docs_y = []
өгөгдлийн зорилгоор[“intents”]:
intent дахь загварын хувьд[“хэв маяг”]:
wrds = nltk.word_tokenize(загвар)
үгс.extend(wrds)
docs_x.append(wrds)
docs_y.append(зорилт[“tag”])
хэрэв зорилго[“tag”] шошгонд байхгүй бол:
labels.append(зорилт[“tag”])
үг = [stemmer.stem(w.lower()) нь w бол үгээр хэлбэл w != “?”]
үгс = эрэмбэлэгдсэн(жагсаалт(тогтоосон(үг))))
шошго = эрэмбэлсэн (шошго)
сургалт = []
гаралт = []
гадагш_хоосон = [муж дахь _ хувьд 0(len(шошго))]
x-ийн хувьд, тоолох доторх doc(docs_x):
цүнх = []
wrds = [doc дахь w-д stemmer.stem(w.lower())]
w-ийн хувьд үгээр:
wrd-д байвал:
bag.append(1)
өөр:
bag.append(0)
гаралтын_мөр = гадагш_хоосон[:]
гаралтын_мөр[labels.index(docs_y[x])] = 1
сургалт.хавсдах(цүнх)
гаралт.append(гаралтын_мөр)
сургалт = numpy.array(сургалт)
гаралт = numpy.array(гаралт)
open(“data.pikle”, “wb”)-тай f:
даршилсан ногоо.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”)
цэвэр = tflearn.regression(цэвэр)
загвар = tflearn.DNN(цэвэр)
үзээрэй:
model.load("model.tflearn")
бусад:
model.fit(сургалт, гаралт, n_epoch=1500, багцын_хэмжээ=8, show_metric=Үнэн)
model.save("model.tflearn")
def_баг_үг(үүд, үгс):
цүнх = [муж дахь _ хувьд 0(len(үг))]
s_words = nltk.word_tokenize(s)
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():
хэвлэх("Боттой ярьж эхлээрэй (зогсохын тулд гарах гэж бичнэ үү)!")
харин үнэн:
inp = оролт("Та:")
inp.lower() == “гарсан” бол:
завсарлагаа
үр дүн = загвар.урьдчилан таамаглах([үгийн_баг (оролт, үг)])
үр дүнгийн_индекс = numpy.argmax(үр дүн)
шошго = шошго[үр дүнгийн_индекс]
өгөгдлийн tg-ийн хувьд[“intents”]:
if tg['tag'] == tag:
хариултууд = tg['хариултууд']
хэвлэх(санамсаргүй.сонголт(хариулт))
чат()
///////////////////////////////////////////////////////// ///////////////
Баярлалаа,
Кодлоход баяртай байна!
Lu
Сайн уу,
Та надад python дээр чатбот үүсгэхийг хүсч байгаа тохиолдолд хэрэгжүүлэх үйл явцын талаар санаа өгч болох уу, гэхдээ мэдээллийг excel дээр хийсэн судалгаанаас авсан болно. Баярлалаа!