সুচিপত্র[লুকান][দেখান]
যোগাযোগ খাতে টেক্সট এবং ভিজ্যুয়ালের পক্ষে ভয়েস কল পর্যায়ক্রমে বন্ধ করা হচ্ছে। একটি ফেসবুক পোল অনুসারে, অর্ধেকেরও বেশি ক্রেতা এমন একটি কোম্পানি থেকে কিনতে পছন্দ করেন যার সাথে তারা কথা বলতে পারে। চ্যাটিং যোগাযোগের নতুন সামাজিকভাবে গ্রহণযোগ্য মাধ্যম হয়ে উঠেছে।
এটি ব্যবসাগুলিকে তাদের ক্লায়েন্টদের সাথে যে কোনও সময় এবং যে কোনও অবস্থান থেকে যোগাযোগ করতে সক্ষম করে৷ চ্যাটবট ক্রমবর্ধমানভাবে কোম্পানি এবং গ্রাহকদের মধ্যে জনপ্রিয়তা অর্জন করছে তাদের ব্যবহারের সহজতা এবং অপেক্ষার সময় হ্রাস করার কারণে।
চ্যাটবট, বা স্বয়ংক্রিয় কথোপকথন প্রোগ্রাম, ক্লায়েন্টদের একটি পাঠ্য-ভিত্তিক ইন্টারফেসের মাধ্যমে পরিষেবাগুলি অ্যাক্সেস করার জন্য আরও কাস্টমাইজড পদ্ধতি প্রদান করে। নতুন এআই-চালিত চ্যাটবটগুলি একটি নির্দিষ্ট পরিবেশে একজন ব্যক্তির (বা অন্য বট, সূচনা) দ্বারা করা একটি প্রশ্ন (প্রশ্ন, আদেশ, আদেশ, ইত্যাদি) চিনতে পারে এবং যথাযথভাবে উত্তর দিতে পারে (উত্তর, কর্ম, ইত্যাদি)।
এই পোস্টে, আমরা চ্যাটবটগুলি কী, তাদের সুবিধা, ব্যবহারের ক্ষেত্রে এবং কীভাবে আপনার নিজের তৈরি করা যায় তা নিয়ে আলোচনা করব গভীর জ্ঞানার্জন পাইথনে চ্যাটবট, অন্যান্য জিনিসের মধ্যে।
চলুন শুরু করা যাক।
তো, চ্যাটবট কি?
একটি চ্যাটবটকে প্রায়শই মানব-মেশিনের মিথস্ক্রিয়ার সবচেয়ে উন্নত এবং প্রতিশ্রুতিশীল ফর্মগুলির মধ্যে একটি হিসাবে উল্লেখ করা হয়। এই ডিজিটাল সহকারীরা মানুষ এবং পরিষেবার মধ্যে মিথস্ক্রিয়াকে স্ট্রিমলাইন করে গ্রাহকের অভিজ্ঞতা উন্নত করে।
একই সাথে, তারা গ্রাহকদের যোগাযোগের প্রক্রিয়াটিকে দক্ষতার জন্য অপ্টিমাইজ করার জন্য নতুন বিকল্পগুলির সাথে ব্যবসাগুলি সরবরাহ করে, যা প্রচলিত সহায়তা খরচ কমাতে পারে।
সংক্ষেপে, এটি AI-ভিত্তিক সফ্টওয়্যার যা মানুষের সাথে তাদের প্রাকৃতিক ভাষায় যোগাযোগ করার জন্য। এই চ্যাটবটগুলি প্রায়শই অডিও বা লিখিত কৌশলগুলির মাধ্যমে ইন্টারঅ্যাক্ট করে এবং মানুষের মতো মানুষের সাথে সংযোগ স্থাপনের জন্য তারা সহজেই মানুষের ভাষা অনুকরণ করতে পারে।
Chatbots ব্যবহারকারীদের সাথে তাদের মিথস্ক্রিয়া থেকে শেখে, সময়ের সাথে সাথে আরও বাস্তববাদী এবং দক্ষ হয়ে ওঠে। তারা ব্যবসায়িক ক্রিয়াকলাপগুলির একটি বিস্তৃত পরিসর পরিচালনা করতে পারে, যেমন ব্যয়ের অনুমোদন, অনলাইনে গ্রাহকদের সাথে জড়িত হওয়া এবং লিড তৈরি করা।
পাইথন দিয়ে আপনার নিজস্ব গভীর শিক্ষার চ্যাটবট তৈরি করা
এর ক্ষেত্রে অনেক স্বতন্ত্র ধরণের চ্যাটবট রয়েছে মেশিন লার্নিং এবং এআই। কিছু চ্যাটবট ভার্চুয়াল সহকারী, যখন অন্যরা কেবল কথোপকথনের জন্য সেখানে থাকে, অন্যরা গ্রাহক পরিষেবা এজেন্ট।
আপনি সম্ভবত অনুসন্ধানের উত্তর দেওয়ার জন্য ব্যবসার দ্বারা নিযুক্ত কয়েকজনকে দেখেছেন। প্রায়শই অনুরোধ করা প্রশ্নের উত্তর দিতে আমরা এই টিউটোরিয়ালে একটি ছোট চ্যাটবট তৈরি করব।
1. প্যাকেজ ইনস্টল করা
আমাদের প্রথম ধাপ হল নিম্নলিখিত প্যাকেজগুলি ইনস্টল করা।
2. প্রশিক্ষণ ডেটা
এখন আমাদের চ্যাটবট দিতে কী ধরনের তথ্য লাগবে তা বের করার সময়। আমাদের কোনো বড় ডেটাসেট ডাউনলোড করার দরকার নেই কারণ এটি একটি সাধারণ চ্যাটবট।
আমরা শুধুমাত্র সেই তথ্যই ব্যবহার করব যা আমরা নিজেরাই তৈরি করেছি। পাঠটি কার্যকরভাবে অনুসরণ করার জন্য, আপনাকে নীচে দেখানো ফর্ম্যাটের মতো একই বিন্যাস সহ একটি .JSON ফাইল তৈরি করতে হবে৷ আমার ফাইলের নাম "intents.json"।
JSON ফাইলটি বার্তাগুলির একটি সেট তৈরি করতে ব্যবহৃত হয় যা ব্যবহারকারী সম্ভবত প্রাসঙ্গিক উত্তরগুলির একটি সেটে ইনপুট এবং ম্যাপ করতে পারে৷ ফাইলের প্রতিটি অভিধানে একটি ট্যাগ রয়েছে যা সনাক্ত করে যে প্রতিটি বার্তা কোন গ্রুপের অন্তর্গত।
আমরা একটি প্রশিক্ষণের জন্য এই তথ্য ব্যবহার করব স্নায়বিক নেটওয়ার্ক আমাদের ফাইলের ট্যাগগুলির মধ্যে একটি হিসাবে শব্দের একটি বাক্যাংশকে শ্রেণিবদ্ধ করতে।
তারপরে আমরা কেবল সেই গোষ্ঠীগুলি থেকে একটি প্রতিক্রিয়া নিতে পারি এবং ব্যবহারকারীকে এটি সরবরাহ করতে পারি। চ্যাটবটটি আরও ভাল এবং জটিল হবে যদি আপনি এটি অতিরিক্ত ট্যাগ, উত্তর এবং নিদর্শন সহ অফার করেন।
3. JSON ডেটা লোড হচ্ছে
আমরা আমাদের .json ডেটা লোড করে এবং কিছু মডিউল আমদানি করে শুরু করব। আপনার হিসাবে একই ডিরেক্টরিতে your.json ফাইলটি একত্রিত করুন পাইথন স্ক্রিপ্ট. আমাদের .json ডেটা এখন ডেটা ভেরিয়েবলে সংরক্ষণ করা হবে।
4. তথ্য নিষ্কাশন
এখন আমাদের JSON ফাইল থেকে প্রয়োজনীয় তথ্য বের করার সময়। সমস্ত নিদর্শন, সেইসাথে তারা যে শ্রেণী/ট্যাগের সাথে সম্পর্কিত, প্রয়োজন।
আমাদের প্যাটার্নগুলির সমস্ত অনন্য পদগুলির একটি তালিকারও প্রয়োজন হবে (কারণগুলির জন্য আমরা পরে ব্যাখ্যা করব), তাই আসুন এই মানগুলির ট্র্যাক রাখতে কিছু ফাঁকা তালিকা তৈরি করি৷
এখন আমরা আমাদের JSON ডেটা লুপ করব এবং আমাদের প্রয়োজনীয় তথ্য পুনরুদ্ধার করব। এগুলিকে স্ট্রিং হিসাবে রাখার পরিবর্তে, আমরা প্রতিটি প্যাটার্নকে শব্দের তালিকায় রূপান্তর করতে nltk.word tokenizer ব্যবহার করব।
তারপর, আমাদের ডক্স_এক্স তালিকায়, আমরা প্রতিটি প্যাটার্ন, এর সাথে সম্পর্কিত ট্যাগ, ডক্স_ই তালিকায় যোগ করব।
5. শব্দ কান্ড
একটি শব্দের মূল খুঁজে বের করাকে কান্ড বলা হয়। উদাহরণ স্বরূপ, "thats" কান্ডের কান্ড হতে পারে "সেই", যেখানে "ঘটছে" শব্দের কান্ড হতে পারে "হতে পারে।"
আমরা আমাদের মডেলের শব্দভাণ্ডারকে ছেঁটে ফেলার জন্য এই স্টেমিং কৌশলটি ব্যবহার করব এবং সাধারণভাবে কোন বাক্যগুলি বোঝায় তা বের করার চেষ্টা করব। এই কোডটি কেবল কান্ডযুক্ত শব্দগুলির একটি অনন্য তালিকা তৈরি করবে যা আমাদের ডেটা প্রস্তুতির পরবর্তী পর্যায়ে ব্যবহার করা হবে।
6. শব্দের ব্যাগ
এখন শব্দের ব্যাগ সম্পর্কে কথা বলার সময় এসেছে যে আমরা আমাদের ডেটা আমদানি করেছি এবং একটি কান্ডযুক্ত শব্দভাণ্ডার তৈরি করেছি। নিউরাল নেটওয়ার্ক এবং মেশিন লার্নিং অ্যালগরিদম, আমরা সবাই জানি, সংখ্যাসূচক ইনপুট প্রয়োজন। তাই আমাদের স্ট্রিং তালিকা এটি কাটা যাচ্ছে না. আমাদের বাক্যে সংখ্যার প্রতিনিধিত্ব করার জন্য আমাদের একটি প্রক্রিয়া দরকার, যেখানে শব্দের একটি ব্যাগ আসে।
প্রতিটি শব্দগুচ্ছ আমাদের মডেলের শব্দভান্ডারের পদ সংখ্যার দৈর্ঘ্যের একটি তালিকা দ্বারা প্রতিনিধিত্ব করা হবে। আমাদের শব্দভান্ডারের প্রতিটি শব্দ তালিকার একটি স্থান দ্বারা প্রতিনিধিত্ব করা হবে। যদি তালিকার অবস্থান একটি 1 হয়, শব্দটি আমাদের বিবৃতিতে উপস্থিত হয়; যদি এটি একটি 0 হয়, শব্দটি আমাদের বাক্যে উপস্থিত হয় না।
আমরা একে শব্দের থলি বলি কারণ শব্দগুচ্ছের মধ্যে কোন ক্রমানুসারে শব্দগুলি উপস্থিত হয় তা আমরা জানি না; আমরা শুধু জানি যে তারা আমাদের মডেলের শব্দভান্ডারে বিদ্যমান।
আমাদের ইনপুট গঠনের পাশাপাশি, আমাদের অবশ্যই আমাদের আউটপুট ফর্ম্যাট করতে হবে যাতে নিউরাল নেটওয়ার্ক এটি বুঝতে পারে। আমরা আউটপুট তালিকা তৈরি করব যা আমাদের ডেটাসেটে লেবেল/ট্যাগের সংখ্যার দৈর্ঘ্য, শব্দের ব্যাগের মতো। তালিকার প্রতিটি স্থান একটি অনন্য লেবেল/ট্যাগ প্রতিনিধিত্ব করে, এবং সেই সমস্ত অবস্থানগুলির মধ্যে একটি 1 নির্দেশ করে যে কোন লেবেল/ট্যাগটি প্রতিনিধিত্ব করা হচ্ছে৷
অবশেষে, আমরা আমাদের প্রশিক্ষণ ডেটা এবং আউটপুট সংরক্ষণ করতে NumPy অ্যারে ব্যবহার করব।
7. মডেল উন্নয়ন
আমরা এখন একটি মডেল তৈরি এবং প্রশিক্ষণ শুরু করতে প্রস্তুত যখন আমরা আমাদের সমস্ত ডেটা প্রিপ্রসেস করেছি৷ আমরা আমাদের উদ্দেশ্যগুলির জন্য দুটি লুকানো স্তর সহ একটি খুব মৌলিক ফিড-ফরোয়ার্ড নিউরাল নেটওয়ার্ক ব্যবহার করব।
আমাদের নেটওয়ার্কের উদ্দেশ্য হবে শব্দের একটি সংগ্রহ দেখা এবং সেগুলিকে একটি ক্লাসে বরাদ্দ করা (JSON ফাইল থেকে আমাদের ট্যাগগুলির মধ্যে একটি)। আমরা আমাদের মডেলের আর্কিটেকচার প্রতিষ্ঠা করে শুরু করব। মনে রাখবেন যে আপনি একটি ভাল মডেল সঙ্গে আসা সংখ্যা কিছু সঙ্গে খেলতে পারেন! মেশিন লার্নিং বেশিরভাগই ট্রায়াল এবং ত্রুটির উপর ভিত্তি করে।
8. মডেল প্রশিক্ষণ এবং সংরক্ষণ
এখন আমাদের ডেটাতে আমাদের মডেলকে প্রশিক্ষণ দেওয়ার সময় এসেছে যে আমরা এটি সেট আপ করেছি! আমরা মডেলে আমাদের ডেটা ফিট করে এটি অর্জন করব। আমরা যে epochs প্রদান করি তা হল প্রশিক্ষণের সময় মডেলটি একই ডেটার কাছে কতবার উন্মুক্ত হবে।
আমরা প্রশিক্ষণ শেষ করার পরে আমরা মডেলটিকে ফাইল মডেলে সংরক্ষণ করতে পারি। tflearn একটি স্ক্রিপ্ট যা অন্যান্য স্ক্রিপ্টে ব্যবহার করা যেতে পারে।
9. একটি চ্যাটবট ব্যবহার করা
এখন আপনি আপনার বটের সাথে চ্যাটিং শুরু করতে পারেন।
চ্যাটবটের সুবিধা
- যেহেতু বটগুলি বছরে 365 দিন, দিনে 24 ঘন্টা, বিনা বেতনে, প্রাপ্যতা এবং প্রতিক্রিয়ার গতি বাড়াতে পারে বলে আশা করা হচ্ছে।
- এই বটগুলি বড় ডেটার তিনটি মূল বনাম: ভলিউম, বেগ এবং বৈচিত্র্য মোকাবেলার জন্য নিখুঁত সরঞ্জাম।
- চ্যাটবট হল এমন সফ্টওয়্যার যা একটি কোম্পানির ভোক্তাদের সম্পর্কে জানতে এবং বোঝার জন্য ব্যবহার করা যেতে পারে।
- এটি উচ্চতর ক্ষমতা আছে যে এটি একটি সস্তা রক্ষণাবেক্ষণ খরচ আছে শীর্ষ সুবিধা থাকার পরে.
- চ্যাটবট অ্যাপ্লিকেশনগুলি এমন ডেটা তৈরি করে যা বিশ্লেষণ এবং পূর্বাভাসের জন্য সংরক্ষিত এবং ব্যবহার করা যেতে পারে।
ব্যবহারের ক্ষেত্রে
- গ্রাহকের প্রশ্নের সমাধান করা
- প্রায়শই জিজ্ঞাসিত প্রশ্নের উত্তর দেওয়া
- সমর্থন দলে গ্রাহকদের বরাদ্দ করা
- গ্রাহক প্রতিক্রিয়া সংগ্রহ করা হচ্ছে
- নতুন অফার সুপারিশ
- কথোপকথন বাণিজ্য সঙ্গে কেনাকাটা
- আইটি হেল্পডেস্ক
- বুকিং বাসস্থান
- অর্থ স্থানান্তর
উপসংহার
চ্যাটবট, অন্যান্য এআই প্রযুক্তির মতো, মানুষের দক্ষতা বৃদ্ধি করতে এবং কৌশলগত কাজের পরিবর্তে কৌশলগত কাজে বেশি সময় ব্যয় করার অনুমতি দিয়ে মানুষকে আরও সৃজনশীল এবং কল্পনাপ্রবণ হতে মুক্ত করতে ব্যবহার করা হবে।
ব্যবসা, কর্মচারী এবং ভোক্তারা বর্ধিত চ্যাটবট বৈশিষ্ট্য যেমন দ্রুত সুপারিশ এবং ভবিষ্যদ্বাণী, সেইসাথে একটি কথোপকথনের মধ্যে থেকে হাই-ডেফিনিশন ভিডিও কনফারেন্সে সহজ অ্যাক্সেস থেকে উপকৃত হতে পারে, অদূর ভবিষ্যতে, যখন AI এর বিকাশের সাথে মিলিত হবে। 5G প্রযুক্তি।
এগুলি এবং অন্যান্য সম্ভাবনাগুলি এখনও তদন্ত করা হচ্ছে, তবে ইন্টারনেট সংযোগ, AI, NLP এবং মেশিন লার্নিং অগ্রগতির সাথে সাথে এগুলি আরও প্রচলিত হয়ে উঠবে৷
ছুউ
হ্যালো,
এই প্রোগ্রামের জন্য আপনাকে ধন্যবাদ.
আমার একটা প্রশ্ন আছে.
"ব্যাগ_অফ_শব্দ" সংজ্ঞায়িত করা হয়নি। আমি এই ত্রুটি বুঝতে পারছি না.
আপনি আমাকে বলতে পারেন কিভাবে আমি এই ত্রুটি সমাধান করতে পারি??
এই প্রোগ্রামের জন্য আপনাকে ধন্যবাদ!! আপনার দিনটি শুভ হোক
স্থূলবুদ্ধি বাচাল ব্যক্তি
চ্যাটবট বিভাগটি ব্যবহার করার আগে অনুগ্রহ করে একটি ফাংশন যোগ করুন:
//////////////////////////////////////// ///////////////////////
def bag_of_words(গুলি, শব্দ):
ব্যাগ = [0 এর জন্য _ পরিসরে(লেন(শব্দ))]
s_words = nltk.word_tokenize(গুলি)
s_words = [stemmer.stem(word.lower()) s_words-এ শব্দের জন্য]
s_words এর জন্য:
i, w এর জন্য গণনা (শব্দে):
যদি w == se:
ব্যাগ[i] = 1
numpy.array (ব্যাগ) ফেরত দিন
// এটা অবশ্যই আপনার সমস্যার সমাধান করবে। //
//////////////////////////////////////// /////////////////////
আমি আপনার সাথে সম্পূর্ণ কোড শেয়ার করছি, তাই আপনি এটির একটি পরিষ্কার ছবি পাবেন।
//////////////////////////////////////// ////////
আমদানি এনটিলেট
nltk.stem.lancaster থেকে LancasterStemmer আমদানি করুন
স্টেমার = ল্যাঙ্কাস্টার স্টেমার()
numpy আমদানি করুন
tflearn আমদানি করুন
টেনসরফ্লো আমদানি করুন
র্যান্ডম আমদানি
আমদানি জেসন
আচার আমদানি করুন
ফাইল হিসাবে open(“intents.json”) সহ:
ডেটা = json.load(ফাইল)
চেষ্টা করে দেখুন:
f হিসাবে open(“data.pickle”, “rb”) সহ:
শব্দ, লেবেল, প্রশিক্ষণ, আউটপুট = pickle.load(f)
ব্যতীত:
শব্দ = []
লেবেল = []
ডক্স_এক্স = []
ডক্স_ই = []
ডেটাতে উদ্দেশ্যের জন্য [“ইন্টেন্টস”]:
অভিপ্রায়ে প্যাটার্নের জন্য [“প্যাটার্নস”]:
wrds = nltk.word_tokenize(প্যাটার্ন)
words.extend(wrds)
docs_x.append(wrds)
docs_y.append(ইন্টেন্ট[“ট্যাগ”])
যদি উদ্দেশ্য [“ট্যাগ”] লেবেলে না থাকে:
labels.append(ইন্টেন্ট[“ট্যাগ”])
শব্দ = [stemmer.stem(w.lower()) শব্দে w এর জন্য যদি w != “?”]
শব্দ = সাজানো(তালিকা(সেট(শব্দ)))
লেবেল = সাজানো (লেবেল)
প্রশিক্ষণ = []
আউটপুট = []
আউট_খালি = [0 এর জন্য _ পরিসরে(লেন(লেবেল))]
x এর জন্য, enumerate এ ডক(docs_x):
ব্যাগ = []
wrds = [stemmer.stem(w.lower()) for w in doc]
শব্দের জন্য w:
শব্দে w যদি:
ব্যাগ.সংযোজন(1)
অন্য:
ব্যাগ.সংযোজন(0)
আউটপুট_রো = আউট_খালি[:]
output_row[labels.index(docs_y[x])] = 1
Training.append(ব্যাগ)
output.append(output_row)
প্রশিক্ষণ = numpy.array(প্রশিক্ষণ)
আউটপুট = numpy.array(আউটপুট)
f হিসাবে open(“data.pickle”, “wb”) সহ:
pickle.dump((শব্দ, লেবেল, প্রশিক্ষণ, আউটপুট), চ)
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(নেট)
চেষ্টা করে দেখুন:
model.load("model.tflearn")
ব্যতীত:
model.fit(প্রশিক্ষণ, আউটপুট, n_epoch=1500, batch_size=8, show_metric=True)
model.save("model.tflearn")
def bag_of_words(গুলি, শব্দ):
ব্যাগ = [0 এর জন্য _ পরিসরে(লেন(শব্দ))]
s_words = nltk.word_tokenize(গুলি)
s_words = [stemmer.stem(word.lower()) s_words-এ শব্দের জন্য]
s_words এর জন্য:
i, w এর জন্য গণনা (শব্দে):
যদি w == se:
ব্যাগ[i] = 1
numpy.array (ব্যাগ) ফেরত দিন
def চ্যাট():
প্রিন্ট ("বটটির সাথে কথা বলা শুরু করুন (স্টপ করতে প্রস্থান করুন টাইপ করুন)!")
যদিও সত্য:
inp = ইনপুট ("তুমি:")
যদি inp.lower() == "প্রস্থান":
বিরতি
ফলাফল = মডেল।ভবিষ্যদ্বাণী([bag_of_words(inp, words)])
ফলাফল_সূচী = numpy.argmax(ফলাফল)
ট্যাগ = লেবেল[ফলাফল_সূচী]
ডেটাতে tg এর জন্য ["ইন্টেন্টস"]:
যদি tg['tag'] == ট্যাগ:
প্রতিক্রিয়া = tg['প্রতিক্রিয়া']
মুদ্রণ(random.choice(প্রতিক্রিয়া))
চ্যাট()
//////////////////////////////////////// /////////////
ধন্যবাদ,
শুভ কোডিং!
Lu
হ্যালো,
আপনি কি আমাকে পাইথনে একটি চ্যাটবট তৈরি করতে চাওয়ার ক্ষেত্রে চালানোর প্রক্রিয়া সম্পর্কে একটি ধারণা দিতে পারেন, তবে তথ্যটি এক্সেলের একটি সমীক্ষা থেকে প্রাপ্ত হয়েছে। ধন্যবাদ!