පටුන[සඟවන්න][පෙන්වන්න]
සන්නිවේදන අංශයේ පෙළ සහ දෘශ්ය සඳහා හඬ ඇමතුම් ක්රමානුකූලව ඉවත් කෙරේ. Facebook මත විමසුමකට අනුව, ගැනුම්කරුවන්ගෙන් අඩකට වඩා වැඩි කැමැත්තක් දක්වන්නේ ඔවුන්ට කතා කළ හැකි සමාගමකින් මිලදී ගැනීමටයි. කතාබස් කිරීම සමාජීය වශයෙන් පිළිගත හැකි නව සන්නිවේදන මාධ්යයක් බවට පත්ව ඇත.
එමඟින් ඕනෑම වේලාවක සහ ඕනෑම ස්ථානයක සිට තම සේවාදායකයින් සමඟ සන්නිවේදනය කිරීමට ව්යාපාරවලට හැකියාව ලැබේ. භාවිතයේ පහසුව සහ පොරොත්තු කාලය අඩු වීම හේතුවෙන් Chatbots සමාගම් සහ පාරිභෝගිකයින් අතර වැඩි වැඩියෙන් ජනප්රිය වෙමින් පවතී.
Chatbots, හෝ ස්වයංක්රීය සංවාද වැඩසටහන්, පාඨ-පාදක අතුරු මුහුණතක් හරහා සේවා වෙත ප්රවේශ වීමට වඩාත් අභිරුචි කළ ක්රමයක් සේවාදායකයින්ට සපයයි. නවතම AI බලයෙන් ක්රියාත්මක වන චැට්බොට් හට නිශ්චිත පරිසරයක් තුළ පුද්ගලයෙකු (හෝ වෙනත් බොට්, ආරම්භයක්) විසින් කරන ලද විමසුමක් (ප්රශ්නය, විධානය, ඇණවුම, ආදිය) හඳුනාගෙන සුදුසු ලෙස ප්රතිචාර දැක්විය හැක (පිළිතුර, ක්රියාව, ආදිය).
මෙම ලිපියෙන්, අපි චැට්බෝට් යනු කුමක්ද, ඒවායේ ප්රතිලාභ, භාවිත අවස්ථා සහ ඔබම සාදා ගන්නේ කෙසේද යන්න පිළිබඳව යන්නෙමු. ගැඹුරු ඉගෙනුම වෙනත් දේ අතර පයිතන් හි chatbot.
ආරම්භ කරමු.
ඉතින්, chatbots යනු කුමක්ද?
චැට්බෝට් යනු මානව-යන්ත්ර අන්තර්ක්රියාවේ වඩාත්ම දියුණු සහ පොරොන්දු වූ ආකාරයක් ලෙස නිතර සඳහන් වේ. මෙම ඩිජිටල් සහායකයින් පුද්ගලයන් සහ සේවා අතර අන්තර්ක්රියා විධිමත් කිරීම මගින් පාරිභෝගික අත්දැකීම් වැඩිදියුණු කරයි.
ඊට සමගාමීව, සාම්ප්රදායික ආධාරක වියදම් කපා හැරිය හැකි කාර්යක්ෂමතාව සඳහා පාරිභෝගික සම්බන්ධතා ක්රියාවලිය ප්රශස්ත කිරීම සඳහා ඔවුන් ව්යාපාරවලට නව විකල්ප සපයයි.
කෙටියෙන් කිවහොත්, එය මිනිසුන් සමඟ ඔවුන්ගේ ස්වභාවික භාෂාවලින් සන්නිවේදනය කිරීමට අදහස් කරන AI මත පදනම් වූ මෘදුකාංගයකි. මෙම චැට්බොට් බොහෝ විට ශ්රව්ය හෝ ලිඛිත ශිල්පීය ක්රම හරහා අන්තර්ක්රියා කරන අතර, මිනිසුන්ට සමාන ආකාරයකින් මිනිසුන් සමඟ සම්බන්ධ වීමට ඔවුන්ට පහසුවෙන් මිනිස් භාෂා අනුකරණය කළ හැකිය.
Chatbots පරිශීලකයන් සමඟ ඔවුන්ගේ අන්තර්ක්රියා වලින් ඉගෙන ගනී, කාලයත් සමඟ වඩාත් යථාර්ථවාදී සහ කාර්යක්ෂම වේ. වියදම් කිරීමට අවසර දීම, අන්තර්ජාලය හරහා පාරිභෝගිකයන් සමඟ සම්බන්ධ වීම සහ මඟ පෙන්වීම් උත්පාදනය කිරීම වැනි පුළුල් පරාසයක ව්යාපාරික ක්රියාකාරකම් හැසිරවීමට ඔවුන්ට හැකිය.
පයිතන් සමඟ ඔබේම ගැඹුරු ඉගෙනුම් චැට්බෝට් එකක් නිර්මාණය කිරීම
ක්ෂේත්රයේ විවිධ ආකාරයේ චැට්බෝට් තිබේ යන්ත්ර ඉගෙනීම සහ AI. සමහර chatbots අතථ්ය සහායකයින් වන අතර අනෙක් ඒවා සංවාදයට පමණක් වන අතර අනෙක් ඒවා පාරිභෝගික සේවා නියෝජිතයන් වේ.
විමසීම්වලට පිළිතුරු දීමට ව්යාපාර විසින් සේවයේ යොදවා ඇති සමහර අය ඔබ දැක ඇති. නිතර ඉල්ලා සිටින විමසුම්වලට පිළිතුරු දීමට අපි මෙම නිබන්ධනය තුළ කුඩා චැට්බෝට් එකක් සාදන්නෙමු.
1. පැකේජ ස්ථාපනය කිරීම
අපගේ පළමු පියවර වන්නේ පහත පැකේජ ස්ථාපනය කිරීමයි.
2. පුහුණු දත්ත
දැන් අපට අපගේ චැට්බෝට් වෙත ලබා දීමට අවශ්ය කුමන ආකාරයේ තොරතුරුදැයි සොයා ගැනීමට කාලයයි. මෙය සරල චැට්බෝට් එකක් නිසා අපට විශාල දත්ත කට්ටල බාගත කිරීමට අවශ්ය නැත.
අපි භාවිතා කරන්නේ අප විසින්ම නිර්මාණය කර ඇති තොරතුරු පමණි. පාඩම සමඟ ඵලදායි ලෙස අනුගමනය කිරීමට, ඔබට පහත දැක්වෙන ආකෘතියම සහිත .JSON ගොනුවක් ජනනය කිරීමට අවශ්ය වනු ඇත. මගේ ගොනුව "intents.json" ලෙස නම් කර ඇත.
JSON ගොනුව භාවිතා කරන්නේ පරිශීලකයා අදාළ පිළිතුරු කට්ටලයකට ආදානය කිරීමට සහ සිතියම්ගත කිරීමට ඉඩ ඇති පණිවිඩ කට්ටලයක් සෑදීමටය. ගොනුවේ ඇති සෑම ශබ්ද කෝෂයකම එක් එක් පණිවිඩය අයත් වන්නේ කුමන කණ්ඩායමටද යන්න හඳුනා ගන්නා ටැගයක් ඇත.
අපි මෙම තොරතුරු පුහුණු කිරීමට භාවිතා කරමු ස්නායු ජාලය අපගේ ගොනුවේ ඇති ටැග් එකක් ලෙස වචන වාක්ය ඛණ්ඩයක් වර්ග කිරීමට.
එවිට අපට එම කණ්ඩායම් වලින් ප්රතිචාරයක් ලබාගෙන එය පරිශීලකයාට ලබා දිය හැක. ඔබ අමතර ටැග්, පිළිතුරු සහ රටා සමඟ එය පිරිනමන්නේ නම් චැට්බෝට් වඩා හොඳ සහ සංකීර්ණ වනු ඇත.
3. JSON දත්ත පැටවීම
අපි අපගේ .json දත්ත පූරණය කිරීමෙන් සහ මොඩියුල කිහිපයක් ආයාත කිරීමෙන් ආරම්භ කරමු. ඔබගේ.json ගොනුව ඔබගේ නාමාවලියෙහිම එකලස් කරන්න පයිතන් පිටපත. අපගේ .json දත්ත දැන් දත්ත විචල්යයේ සුරැකෙනු ඇත.
4. දත්ත උපුටා ගැනීම
දැන් අපට අවශ්ය තොරතුරු අපගේ JSON ගොනුවෙන් උපුටා ගැනීමට කාලයයි. සියලුම රටා, මෙන්ම ඒවා අයත් වන පන්තිය/ටැගය අවශ්ය වේ.
අපට අපගේ රටා වල ඇති සියලුම අනන්ය පද ලැයිස්තුවක් ද අවශ්ය වනු ඇත (හේතු සඳහා අපි පසුව පැහැදිලි කරන්නෙමු), එබැවින් මෙම අගයන් නිරීක්ෂණය කිරීමට හිස් ලැයිස්තු කිහිපයක් සාදන්න.
දැන් අපි අපගේ JSON දත්ත හරහා ලූප් කර අපට අවශ්ය තොරතුරු ලබා ගනිමු. ඒවා තන්තු ලෙස තබා ගැනීම වෙනුවට, අපි එක් එක් රටාව වචන ලැයිස්තුවක් බවට පරිවර්තනය කිරීමට nltk.word tokenizer භාවිතා කරන්නෙමු.
ඉන්පසුව, අපගේ docs_x ලැයිස්තුවේ, අපි එක් එක් රටාව, එහි සම්බන්ධිත ටැගය සමඟ, docs_y ලැයිස්තුවට එක් කරන්නෙමු.
5. Word Stemming
වචනයක මූලය සොයා ගැනීම කඳන් කිරීම ලෙස හැඳින්වේ. උදාහරණයක් ලෙස, "thats" යන වචනයේ කඳ "ඒ" විය හැකි අතර, "සිදුවීම" යන වචනයේ කඳ "සිදුවීම" විය හැකිය.
අපි අපගේ ආකෘතියේ වචන මාලාව අඩු කිරීමට සහ පොදුවේ ඇඟවුම් කරන වාක්ය මොනවාදැයි සොයා බැලීමට මෙම ස්ටම්මිං තාක්ෂණය භාවිතා කරන්නෙමු. මෙම කේතය අපගේ දත්ත සැකසීමේ මීළඟ අදියරේදී භාවිතා කරනු ලබන අද්විතීය වචන ලැයිස්තුවක් සරලව ජනනය කරනු ඇත.
6. වචන මල්ල
අපි අපගේ දත්ත ආයාත කර ඇති අතර වචන මාලාවක් ජනනය කර ඇති බැවින් දැන් වචන මල්ලක් ගැන කතා කිරීමට කාලයයි. ස්නායුක ජාල සහ යන්ත්ර ඉගෙනීමේ ඇල්ගොරිතම, අප කවුරුත් දන්නා පරිදි, සංඛ්යාත්මක ආදානය අවශ්ය වේ. ඒ නිසා අපේ string list එක කපන්න යන්නේ නැහැ. අපගේ වාක්යවල සංඛ්යා නිරූපණය කිරීමට යාන්ත්රණයක් අවශ්ය වේ, එහිදී වචන මල්ලක් පැමිණේ.
සෑම වාක්ය ඛණ්ඩයක්ම අපගේ ආකෘතියේ වචන මාලාවේ ඇති පද ගණනේ දිග ලැයිස්තුවක් මගින් නිරූපණය කෙරේ. අපගේ වචන මාලාවේ සෑම වචනයක්ම ලැයිස්තුවේ ස්ථානයක් මගින් නිරූපණය කෙරේ. ලැයිස්තුවේ පිහිටීම 1 නම්, එම වචනය අපගේ ප්රකාශයේ දිස්වේ; එය 0 නම්, එම වචනය අපගේ වාක්යයේ නොපෙන්වයි.
වාක්ය ඛණ්ඩයේ වචන එන අනුපිළිවෙල අපි නොදන්නා නිසා අපි එය වචන මල්ලක් ලෙස හඳුන්වමු; අප දන්නා එකම දෙය නම් ඒවා අපගේ ආකෘතියේ වචන මාලාවේ පවතින බවයි.
අපගේ ආදානය ව්යුහගත කිරීමට අමතරව, අපගේ ප්රතිදානය ස්නායුක ජාලයට එය තේරුම් ගත හැකි වන පරිදි අපි ආකෘතිගත කළ යුතුය. අපි වචන මල්ලකට සමාන අපගේ දත්ත කට්ටලයේ ලේබල්/ටැග් ගණනේ දිග ප්රතිදාන ලැයිස්තු සාදන්නෙමු. ලැයිස්තුවේ ඇති සෑම ස්ථානයක්ම අනන්ය ලේබලයක්/ටැගයක් නියෝජනය කරන අතර, එම ඕනෑම ස්ථානයක 1ක් නියෝජනය කරන්නේ කුමන ලේබලය/ටැගයද යන්න දක්වයි.
අවසාන වශයෙන්, අපි අපගේ පුහුණු දත්ත සහ ප්රතිදානය ගබඩා කිරීමට NumPy අරා භාවිතා කරන්නෙමු.
7. ආදර්ශ සංවර්ධනය
අපි දැන් අපගේ සියලු දත්ත පූර්ව සකසන ලද ආකෘතියක් ගොඩනැගීම සහ පුහුණු කිරීම ආරම්භ කිරීමට සූදානම්. අපි අපගේ අරමුණු සඳහා සැඟවුණු ස්ථර දෙකක් සහිත ඉතා මූලික පෝෂක-ඉදිරිපත් ස්නායු ජාලයක් භාවිතා කරන්නෙමු.
අපගේ ජාලයේ අරමුණ වනුයේ වචන එකතුවක් දෙස බලා ඒවා පන්තියකට පැවරීමයි (JSON ගොනුවෙන් අපගේ ටැග් එකක්). අපගේ ආකෘතියේ ගෘහ නිර්මාණ ශිල්පය ස්ථාපිත කිරීමෙන් අපි ආරම්භ කරමු. වඩා හොඳ ආකෘතියක් ඉදිරිපත් කිරීමට ඔබට අංක කිහිපයක් සමඟ සෙල්ලම් කළ හැකි බව මතක තබා ගන්න! යන්ත්රය ඉගෙනුම් බොහෝ දුරට අත්හදා බැලීම් සහ දෝෂය මත පදනම් වේ.
8. ආදර්ශ පුහුණුව සහ ඉතිරි කිරීම
දැන් අපි එය පිහිටුවා ඇති අපගේ දත්ත මත අපගේ ආකෘතිය පුහුණු කිරීමට කාලයයි! අපගේ දත්ත ආකෘතියට ගැලපීමෙන් අපි මෙය සාක්ෂාත් කර ගනිමු. අපි ලබා දෙන යුග ගණන යනු පුහුණුව අතරතුර ආකෘතිය එකම දත්ත වලට නිරාවරණය වන වාර ගණනයි.
අපි එය පුහුණු කර අවසන් වූ පසු අපට ආකෘතිය ගොනු ආකෘතියට සුරැකිය හැක. tflearn යනු වෙනත් ස්ක්රිප්ට් වල භාවිතා කළ හැකි ස්ක්රිප්ට් එකකි.
9. චැට්බෝට් එකක් භාවිතා කිරීම
දැන් ඔබට ඔබේ බොට් සමඟ කතාබස් කිරීම ආරම්භ කළ හැක.
Chatbot හි ප්රතිලාභ
- බොට්ස් වසරකට දින 365 ක්, දවසේ පැය 24 පුරාම, ගෙවීමකින් තොරව ක්රියා කිරීමට බලාපොරොත්තු වන බැවින්, ලබා ගැනීමේ හැකියාව සහ ප්රතික්රියා වේගය වැඩි කරයි.
- මෙම bots විශාල දත්තවල යතුරු තුන Vs: පරිමාව, ප්රවේගය සහ විවිධත්වය සමඟ කටයුතු කිරීම සඳහා පරිපූර්ණ මෙවලම් වේ.
- Chatbots යනු සමාගමක පාරිභෝගිකයින් ගැන ඉගෙන ගැනීමට සහ අවබෝධ කර ගැනීමට භාවිතා කළ හැකි මෘදුකාංගයකි.
- ඉහළ ප්රතිලාභ ලැබීමෙන් පසු ලාභ නඩත්තු පිරිවැයක් ඇති බව එහි උසස් බලය ඇත.
- Chatbot යෙදුම් මඟින් විශ්ලේෂණ සහ අනාවැකි සඳහා සංරක්ෂණය කර භාවිත කළ හැකි දත්ත නිර්මාණය කරයි.
භාවිත නඩුව
- පාරිභෝගික විමසුම් විසඳීම
- නිතර අසන ප්රශ්නවලට පිළිතුරු දීම
- සහායක කණ්ඩායමට ගනුදෙනුකරුවන් පැවරීම
- පාරිභෝගික ප්රතිපෝෂණ රැස් කිරීම
- නව දීමනා නිර්දේශ කිරීම
- සංවාදාත්මක වාණිජ්යය සමඟින් සාප්පු යන්න
- තොරතුරු තාක්ෂණ උපකාරක සේවාව
- නවාතැන් වෙන්කරවා ගැනීම
- මුදල් මාරුකිරීම
නිගමනය
අනෙකුත් AI තාක්ෂණ මෙන් Chatbots ද මානව කුසලතා වැඩි දියුණු කිරීමට සහ මිනිසුන්ට උපායශීලී කාර්යයන්ට වඩා උපාය මාර්ගිකව වැඩි කාලයක් ගත කිරීමට ඉඩ සලසමින් වඩාත් නිර්මාණශීලී සහ පරිකල්පනශීලී වීමට මිනිසුන්ට මුදා හැරීමට භාවිතා කරනු ඇත.
නුදුරු අනාගතයේ දී, AI සංවර්ධනය සමඟ ඒකාබද්ධ වූ විට, ව්යාපාර, සේවකයින් සහ පාරිභෝගිකයින්ට වේගවත් නිර්දේශ සහ අනාවැකි වැනි වැඩිදියුණු කළ චැට්බෝට් විශේෂාංග මෙන්ම සංවාදයක් තුළ සිට අධි-විභේදන වීඩියෝ සම්මන්ත්රණ සඳහා පහසු ප්රවේශයක් ලබා ගැනීමට ඉඩ ඇත. 5G තාක්ෂණය.
මෙම සහ වෙනත් හැකියාවන් තවමත් විමර්ශනය වෙමින් පවතී, නමුත් අන්තර්ජාල සම්බන්ධතාව, AI, NLP, සහ යන්ත්ර ඉගෙනීමේ ප්රගතියත් සමඟ ඒවා වඩාත් ප්රචලිත වනු ඇත.
Chwoo
හෙලෝ,
මෙම වැඩසටහන සඳහා ඔබට ස්තුතියි.
මට ප්රශ්නයක් තිබෙනවා.
"bag_of_words" අර්ථ දක්වා නැත. මට මෙම දෝෂය තේරුම් ගත නොහැක.
මෙම දෝෂය විසඳන්නේ කෙසේදැයි ඔබට මට කියන්න පුළුවන්ද?
මෙම වැඩසටහනට ස්තූතියි !! සුබ දවසක් වේවා
ජේ
කරුණාකර chatbot කොටස භාවිතා කිරීමට පෙර කාර්යයක් එක් කරන්න:
//////////////////////////////////////////////// ////////////////////////////
def bag_of_words(s, words):
බෑගය = [0 සඳහා _ පරාසයක (ලෙන්(වචන))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) for word in s_words]
සඳහා s_words:
i සඳහා, w ගණන් කිරීමේ (වචන):
w == se:
බෑගය[i] = 1
ආපසු numpy.array(bag)
// එය නිසැකවම ඔබේ ගැටලුව විසඳනු ඇත. //
//////////////////////////////////////////////// ////////////////////////////
මම සම්පූර්ණ කේතය ඔබ සමඟ බෙදා ගන්නෙමි, එවිට ඔබට එහි පැහැදිලි පින්තූරයක් ලැබෙනු ඇත.
//////////////////////////////////////////////// ////////
ආනයනය nltk
nltk.stem.lancaster වෙතින් LancasterStemmer ආනයනය කරන්න
stemmer = LancasterStemmer()
numpy ආනයනය කරන්න
tflearn ආනයනය කරන්න
ආයාත tensorflow
අහඹු ලෙස ආනයනය කරන්න
ආනයනය json
අච්චාරු ආනයනය කරන්න
විවෘත (“intents.json”) ගොනුවක් ලෙස:
දත්ත = json.load(ගොනුව)
උත්සාහ කරන්න:
විවෘත ("data.pickle", "rb") සමඟ f:
වචන, ලේබල්, පුහුණුව, ප්රතිදානය = pickle.load(f)
හැර:
වචන = []
ලේබල් = []
docs_x = []
docs_y = []
දත්තවල අභිප්රාය සඳහා [“චේතනා”]:
චේතනාවෙන් රටාව සඳහා ["රටා"]:
wrds = nltk.word_tokenize(රටාව)
word.extend(wrds)
docs_x.append(wrds)
docs_y.append(අභිප්රාය[“ටැගය”])
අභිප්රාය [“ටැගය”] ලේබලවල නොමැති නම්:
labels.append(අභිප්රාය[“ටැගය”])
වචන = [stemmer.stem(w.lower()) w සඳහා w නම් w != “?”]
වචන = වර්ග කළ (ලැයිස්තුව (කට්ටල (වචන)))
ලේබල් = වර්ග කළ (ලේබල්)
පුහුණුව = []
ප්රතිදානය = []
out_empty = [0 සඳහා _ පරාසයක (len(ලේබල්))]
x සඳහා, doc in enumerate(docs_x):
බෑගය = []
wrds = [stemmer.stem(w.lower()) සඳහා w සඳහා doc]
w සඳහා වචන වලින්:
wrd වලින් w නම්:
bag.append(1)
වෙනත්:
bag.append(0)
output_row = out_empty[:]
output_row[labels.index(docs_y[x])] = 1
training.append(bag)
output.append(output_row)
පුහුණුව = numpy.array(පුහුණුව)
ප්රතිදානය = numpy.array(ප්රතිදානය)
විවෘත ("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.full_connected(net, len (output[0]), activation=”softmax”)
net = tflearn.regression(net)
ආකෘතිය = tflearn.DNN(ශුද්ධ)
උත්සාහ කරන්න:
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()) for word in s_words]
සඳහා s_words:
i සඳහා, w ගණන් කිරීමේ (වචන):
w == se:
බෑගය[i] = 1
ආපසු numpy.array(bag)
def chat ():
මුද්රණය කරන්න (“බොට් සමඟ කතා කරන්න (නැවතීමට ඉවත් වන්න ටයිප් කරන්න)!”)
සත්ය අතර:
inp = ආදානය ("ඔබ:")
inp.lower() == "ඉවත් වන්න" නම්:
බිඳීම
ප්රතිඵල = model.predict([bag_of_words(inp, words)])
results_index = numpy.argmax(ප්රතිඵල)
ටැගය = ලේබල්[results_index]
දත්තවල tg සඳහා [“අභිප්රාය”]:
tg['tag'] == ටැගය නම්:
ප්රතිචාර = tg['ප්රතිචාර']
මුද්රණය (random.choice(ප්රතිචාර))
කතාබස් ()
//////////////////////////////////////////////// //////////////
ඔබට ස්තුතියි,
සතුටු කේතනය!
Lu
හෙලෝ,
python හි chatbot එකක් සෑදීමට අවශ්ය නම් සිදු කළ යුතු ක්රියාවලිය පිළිබඳව ඔබට මට අදහසක් ලබා දිය හැකිද, නමුත් තොරතුරු එක්සෙල් හි සමීක්ෂණයකින් ලබා ගනී. ඔයාට ස්තූතියි!