সুচিপত্র:

ভয়েস সক্রিয় অ্যাসিস্ট্যান্ট - MAX: 10 টি ধাপ
ভয়েস সক্রিয় অ্যাসিস্ট্যান্ট - MAX: 10 টি ধাপ

ভিডিও: ভয়েস সক্রিয় অ্যাসিস্ট্যান্ট - MAX: 10 টি ধাপ

ভিডিও: ভয়েস সক্রিয় অ্যাসিস্ট্যান্ট - MAX: 10 টি ধাপ
ভিডিও: Smart tv voice control problem solved | ভয়েস কাজ না করলে কি করবেন @MSPTechRoom 2024, জুলাই
Anonim
ভয়েস সক্রিয় অ্যাসিস্ট্যান্ট - MAX
ভয়েস সক্রিয় অ্যাসিস্ট্যান্ট - MAX

এই নির্দেশে আমি একটি চ্যাট-বট MAX কিভাবে তৈরি করব সে সম্পর্কে কথা বলতে যাচ্ছি (আমার নিজের নাম !!!)

কিছু বাস্তবায়নের মাধ্যমে আপনি এই চ্যাটবট ভয়েসকে নিয়ন্ত্রিত করতে পারেন অথবা বিভিন্ন সফটওয়্যার ব্যবহারের মাধ্যমে আপনি এটিকে ভয়েস সহকারী হিসেবে তৈরি করতে পারেন। আমি এখানে এটি সম্পর্কে কথা বলতে যাচ্ছি না কারণ প্রত্যেকেই এই বাস্তবায়নটি সহজেই করতে পারে।

তাই সবাই দয়া করে আমাকে সমর্থন করুন ……

আমার প্রথম নির্দেশযোগ্য !!!!!!!

কি হতে যাচ্ছে তা নিয়ে ঘাবড়ে যাওয়া ……………।

ধাপ 1: প্রতিযোগিতা সম্পর্কে জানা

প্রতিযোগিতা সম্পর্কে জানা
প্রতিযোগিতা সম্পর্কে জানা
প্রতিযোগিতা সম্পর্কে জানা
প্রতিযোগিতা সম্পর্কে জানা

হাই ইঞ্জিনিয়ার এবং ডিজাইনার ……..

আমি নিজেও একজন কম্পিউটার বিজ্ঞানের ছাত্র গেম খেলতে ভালোবাসি এবং সবসময় কম্পিউটারে অনুপ্রাণিত হই। সংক্ষেপে কথা বললে আমি জানতে চাই কিভাবে এই সমস্ত সামগ্রী বর্তমান কাজ করে। !!!) জিনিসগুলি অনুসন্ধান এবং শেখার জন্য।

তাই একদিন আমি ইন্সট্রাকটেবলের স্ক্রিনের সামনে আসলাম। এটা সত্যিই আমাকে বিভিন্ন প্রকল্পের মাধ্যমে বিভিন্ন বিষয়ে বিভিন্ন ধারনা দিয়ে আনন্দিত করেছে। তারপর সেই দিন থেকে আমি এটির সাথে তাল মিলিয়ে থাকি। প্রতিযোগিতার পৃষ্ঠাটি সত্যিই আমাকে পুরস্কৃত করেছে এবং আশেপাশের বিভিন্ন লোকের দ্বারা জমা দেওয়া প্রকল্পগুলির সাথে সংশ্লিষ্ট। পৃথিবী

ভয়েস অ্যাক্টিভেটেড চ্যালেঞ্জ একটি নির্দেশযোগ্য লেখার ক্ষেত্রে আমার প্রথম প্ল্যাটফর্ম।

পুরস্কার আমাকে অনেক আনন্দিত করেছে (হ্যাঁ !!! খুব বেশি ……..)।

এছাড়াও আমি কম্পিউটারের ক্ষেত্রে আমার জ্ঞান এবং এটির প্রযুক্তি অন্যদের কাছে ভাগ করে নিতে চাই কিভাবে বিভিন্ন জিনিস আসলে কাজ করে।

এই নির্দেশে আমি আপনাকে দেখাব কিভাবে আপনার নিজের ভয়েস সক্রিয় সহকারী তৈরি করবেন।

যেহেতু এটি আমার প্রথম নির্দেশযোগ্য তাই অনেক ভুল হতে পারে (যদিও আমি মনে করি এই সবগুলি সংশোধন করা হয়েছে), তাই এর জন্য ক্ষমা করুন।

তাই …

চলুন যাত্রা শুরু করি ………………।

পদক্ষেপ 2: আমি জিনিসগুলি সম্পর্কে কোথায় জানতাম?

আমি জিনিসগুলি সম্পর্কে কোথায় জানতে পেরেছি?
আমি জিনিসগুলি সম্পর্কে কোথায় জানতে পেরেছি?
আমি জিনিসগুলি সম্পর্কে কোথায় জানতে পেরেছি?
আমি জিনিসগুলি সম্পর্কে কোথায় জানতে পেরেছি?
আমি জিনিসগুলি সম্পর্কে কোথায় জানতে পেরেছি?
আমি জিনিসগুলি সম্পর্কে কোথায় জানতে পেরেছি?

এটি একটি প্রধান প্রশ্ন হবে আমি মনে করি আপনার বেশিরভাগ মনের মধ্যে দিয়ে যেতে পারে ………

আমার স্কুলজীবন থেকেই কৃত্রিম বুদ্ধিমত্তা [এআই] এর প্রতি আমার অনেক আবেগ আছে, সেখান থেকে আমি অধ্যয়ন এবং আমার নিজের একটি মডেল বিকাশের জন্য সম্পদের দিকে অনেক অনুসন্ধান করেছি।

প্রাথমিকভাবে এটি খুব কঠিন ছিল (সত্য অবস্থা) যেহেতু আমি বুঝতে পেরেছিলাম এটি একটি খুব বিস্তৃত বিষয় যা পরিচালনা করা মোটেও সহজ নয়।

যে বইগুলি সন্ধান করা হয়েছে তার মধ্যে রয়েছে:

  1. কৃত্রিম বুদ্ধিমত্তা একটি আধুনিক পদ্ধতি
  2. কৃত্রিম
  3. গভীর জ্ঞানার্জন

এগুলো খুব ভালো বই (হ্যাঁ নিশ্চয়ই) কিন্তু তাতে লেখা বিষয়গুলো বোঝা মোটেও সহজ নয়। তারপর আমি এটাকে একপাশে রেখেছিলাম এবং সেই সম্পদের সন্ধানে যাচ্ছিলাম যা সম্পর্কে সংক্ষিপ্ত ধারণা দেয় এটা সত্যিই প্রতিনিধিত্ব করে এবং এটি পেতে উপায়।

তারপর আমি যে একটি আগ্রহ খুঁজে পেয়েছি স্কুলে পড়ার পর ছুটির মাধ্যমে আমি এটি সম্পর্কে আরও গভীরভাবে জানতে শুরু করি।

সেই সময়ে আমি বিভিন্ন প্রোগ্রামিং ভাষা (C ++, C, Python, Java…।) শিখেছি, যা খুব আকর্ষণীয়।

এই বিষয়ে আরও পড়ার সময় আমি একটি গুরুত্বপূর্ণ বিষয় বুঝতে পেরেছি ………………..

প্রোগ্রামিং ল্যাঙ্গুয়েজ হচ্ছে প্রতিটি মেশিন লার্নিং প্রক্রিয়ার জন্য বেসিক।

মেশিন লার্নিং হল এআই প্রয়োগের প্রক্রিয়া।

প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং বিভিন্ন কাজ যা আমাদের জন্য কিছু করার জন্য একটি কম্পিউটার তৈরি করার জন্য প্রোগ্রামার দ্বারা নির্ভর করা যেতে পারে তার উপর একটি মহান বোঝার সাথে।

তাই আমি এমন ভাষাগুলির উপর একটি ভাল ভিত্তি তৈরি করার সিদ্ধান্ত নিয়েছি যা আমাকে ইতিমধ্যেই উল্লেখ করা বইটিতে প্রদত্ত ধারণাগুলি বুঝতে পেরেছে।

আপনিও সেটা করতে পারেন ……

অবাধে প্রোগ্রামিং ভাষা শেখানোর জন্য ওয়েবে অনেক ওয়েবসাইট আছে।

তাই আপনি চাইলে ইন্টারনেটে সার্ফ করতে পারেন এটি সম্পর্কে আরো বুঝতে চাইলে ………

ধাপ 3: আসুন শুরু করা যাক

ইন্সট্রাকটেবল লেখা শুরু করার আগে আমি এমন কিছু লেখার কথা ভেবেছিলাম যা বোঝা যাবে:

  1. যাদের কোডিং এর অভিজ্ঞতা আছে
  2. কোন কোডিং ব্যাকগ্রাউন্ড ছাড়াই মানুষ

তাই আমি মনে করি আমি কোন ভুল ছাড়াই কাজটি করেছি (আশা করি)।

তাই আমি একটি চ্যাট বট তৈরির সিদ্ধান্ত নিয়েছি যা ব্যবহারকারীর সাথে কথা বলতে পারে এবং আমাদের আলোচনা অনুযায়ী সাড়া দিতে পারে।

প্রোগ্রাম (নির্দেশাবলীর সেট) নিজে থেকে চিন্তা করতে পারে না। এটিতে তথ্য এবং নিয়মগুলির একটি ডাটাবেস (একটি জায়গা যেখানে ডেটা সংরক্ষণ করা হয়েছে) রয়েছে, যা কথা বলার সময় অনুসন্ধান করা হয় যাতে ব্যবহারকারীর সাথে যোগাযোগের ক্ষেত্রে সর্বোত্তম সাড়া পাওয়া যায়।

এটি প্রবেশ করা জিনিসগুলির উপর নির্ভর করে মিলে যাওয়া প্রক্রিয়া দ্বারা কাজ করে, শুধুমাত্র বিরল ক্ষেত্রে একটি সম্পূর্ণ বাক্য একটি সম্পূর্ণ বাক্যের সাথে মিলিত হয়।

ধাপ 4: এটি আসলে কিভাবে কাজ করে?

ধাপ 1:

ব্যবহারকারী কোন নাল ইনপুট দিয়েছেন কিনা তা MAX খুঁজে বের করে। যদি ব্যবহারকারীকে এইভাবে ইনপুট প্রদান করা হয়, তাহলে এটি স্ট্যাটিক ডাটাবেস থেকে সত্যকে প্রতিক্রিয়া জানাতে নেয়।

ওহ দুঃখিত ……

আমি বলতে ভুলে গেছি,

স্ট্যাটিক ডাটাবেস: এমন জায়গা যেখানে অন্তর্নির্মিত প্রতিক্রিয়াগুলি সংরক্ষণ করা হয়। মত প্রতিক্রিয়া:

1. যখন MAX ব্যবহারকারী কি বিষয়ে কথা বলছে তা বুঝতে পারে না।

2. যখন ব্যবহারকারী নিজেকে পুনরাবৃত্তি করে।

3. অভিবাদন বিবৃতি জন্য।

4. যখন ব্যবহারকারী কিছু টাইপ করে না এবং শুধু এন্টার চাপতে থাকে।

মূল শব্দ: বিশেষ অর্থ সম্বলিত শব্দ।

ধাপ ২:

এমন কিছু অন্তর্নির্মিত প্রতিক্রিয়া রয়েছে যা MAX সহজে এবং সহজেই চিনতে পারে। এটি ব্যবহারকারীদের ইনপুট শনাক্ত করার পরে এরকম কোনো বাক্যের উপস্থিতি খুঁজে পায় এবং সংশ্লিষ্ট কীওয়ার্ড মনে রাখে।

ধাপ 3:

প্রদত্ত বাক্যের টুকরো টুকরো করার পরেও যদি কোন অন্তর্নির্মিত বাক্য না পাওয়া যায়, তাহলে প্রসঙ্গটি সংজ্ঞায়িত করার জন্য MAX নির্দিষ্ট কীওয়ার্ড অনুসন্ধান করে। যদি কোন প্রেক্ষাপট খুঁজে না পাওয়া যায় তাহলে ব্যবহারকারীকে একটি নির্দিষ্ট পদ্ধতিতে বিষয় সম্পর্কে আরও ইচ্ছাকৃতভাবে কথা বলার পরবর্তী লক্ষ্য।

ধাপ 4:

স্ট্যাটিক ডাটাবেস থেকে যা আমরা ইতিমধ্যে কথা বলেছি, এটি ব্যবহারকারীর কথা বলার উপর নির্ভর করে প্রতিক্রিয়া গ্রহণ করবে।

ধাপ 5:

আমি শব্দগুলি পরিবর্তন করার কোন প্রয়োজন আছে যা এটি নিজেই করবে (যেমন আমার থেকে আপনার রূপান্তর ইত্যাদি …)

ধাপ 5: আসুন কোড করি …………।

আমি টার্বো সি আইডিই 3.0 ব্যবহার করছি কারণ এটি আইডিই [ইন্টিগ্রেটেড ডেভেলপমেন্টাল এনভায়রনমেন্ট]

কোডিং এর আগে, আসুন একটি নমুনা ডেটা ফাইলের গঠন দেখি।

MAX কিছু কীওয়ার্ড চিনে।

যদি এই কীওয়ার্ডগুলি ব্যবহারকারীর প্রদত্ত ইনপুটে পাওয়া যায়, তাহলে ডেটা ফাইল থেকে একটি উপযুক্ত প্রতিক্রিয়া নির্বাচন করা হয় এবং স্ক্রিনে নির্বাচন করা হয় এবং প্রদর্শিত হয়।

Keyword KWD @ টোকেন দ্বারা প্রতিক্রিয়া থেকে একটি কীওয়ার্ড ডেটা ফাইলে আলাদা করা হয়।

টোকেন প্রতিটি প্রোগ্রামিং দিকের একটি ক্ষুদ্রতম অংশ।

এই টোকেনটি নির্দেশ করে পরবর্তী লাইনটি একটি কীওয়ার্ড এবং প্রতিক্রিয়া নয়।

@ KWD EL হ্যালো

হাই, আপনি কেমন আছেন

হ্যালো প্রিয়!

আমি ভালো আছি

আপনার কাজ কেমন ছিল?

আপনার বয়স কত?

আমি করব

আপনি তাই করবেন। আমি এটা বিশ্বাস করি …

আপনি কি তাই করতে সক্ষম হবেন?

আপনি কি আমাকে বিশ্বাস করবেন?

হ্যাঁ

তুমি কি নিশ্চিত ?

আপনি কিভাবে নিশ্চিত হতে পারেন?

না

আপনি খুব হতাশাজনক বলে মনে করেন।

কখনও না বলো না…

কখনও না বল না

কখনো অসভ্য হবেন না

কখনো অহংকারী হবেন না !!!!

কখনো বলব না আমি এটা করতে পারি না

কখনোই আশাবাদী হবেন না

কম্পিউটার

আমি জানি কিভাবে কম্পিউটারে কাজ করতে হয়।

আপনি বর্তমানে একটি কম্পিউটার ব্যবহার করছেন। অধিকার?

উদাহরণস্বরূপ, 'হ্যালো', উপরের অভিধান থেকে, MAX নিম্নলিখিত প্রতিক্রিয়াগুলির মধ্যে একটি দেবে:

হাই, আপনি কেমন আছেন প্রিয়!

আমি ভালো আছি

আপনার কাজ কেমন ছিল?

আপনার বয়স কত?

ধাপ 6: ক্লাস

একবার এই জিনিসটি পরিষ্কার হয়ে গেলে, এখন আমরা ডেটা স্ট্রাকচারগুলি সংজ্ঞায়িত করি যা আমরা ব্যবহার করব।

আমরা দুটি ক্লাস তৈরি করি:

progstr - এটি ব্যবহারকারীর ইনপুট সম্পর্কিত তথ্য সংরক্ষণ করতে ব্যবহৃত হয়।

resp - এটি বিভিন্ন প্রতিক্রিয়া সম্পর্কে তথ্য সংরক্ষণ করতে ব্যবহৃত হয়

ক্লাস প্রোগস্টার {

জনসাধারণ:

char userip [MAX_USER_INPUT];

char কীওয়ার্ড [30];

int কীফাউন্ড;

int keyno;

int nullip;

// নির্মাণকারী

progstr () {keyno = -1; nullip = 0; কীফাউন্ড = 0;

}

} আইপি;

ক্লাস রেস্প

{

int tot_resp;

int last_resp;

চার উত্তর [MAX_RESP_NO] [MAX_RESP_LEN];

চার শব্দ [MAX_KWD_LEN];

জনসাধারণ:

// নির্মাণকারী

প্রতিক্রিয়া ()

{

tot_resp = 0;

last_resp = -1;

}

int getcount ()

{

last_resp ফিরে আসুন;

}

অকার্যকর অ্যাডওয়ার্ড (char str [MAX_KWD_LEN])

{

strcpy (শব্দ, str);

}

char * getword ()

{

প্রত্যাবর্তন শব্দ;

}

অকার্যকর অ্যাড্রেস (চার str [MAX_RESP_LEN])

{

strcpy (উত্তর [++ last_resp], str);

}

// পরে সংজ্ঞায়িত

অকার্যকর display_resp (int num);

অকার্যকর exit_display_resp (int num);

};

প্রথম শ্রেণীর দিকে তাকিয়ে, ক্যারেক্টার অ্যারে ইউজারিপ ব্যবহারকারীর দেওয়া বাক্য সংরক্ষণ করতে ব্যবহৃত হয়।

আরেকটি অ্যারে কিওয়ার্ড ব্যবহার করা হয় যদি সেই ইনপুটে কীওয়ার্ড পাওয়া যায়, যদি থাকে। যদি একটি কীওয়ার্ড পাওয়া যায়, আমরা int কীফাউন্ড তৈরি করি অন্য 1 তে, এটি 0 থাকে, কারণ এটি কনস্ট্রাকটরে 0 থেকে শুরু হয়।

keyno সংশ্লিষ্ট কীওয়ার্ডের সংশ্লিষ্ট কী নম্বর সংরক্ষণ করে।

nullip নির্দেশ করে যে ব্যবহারকারী কোন নাল ইনপুট দিয়েছে কিনা, সে অন্য কিছু না করে শুধু এন্টার টিপছে।

এবার আসি দ্বিতীয় শ্রেণীতে, রেস্প।

প্রথম ডেটা সদস্য, tot_resp একটি প্রদত্ত কীওয়ার্ডের মোট প্রতিক্রিয়াগুলির সংখ্যা নির্দেশ করে।

উত্তরগুলি প্রকৃতপক্ষে উত্তরগুলিতে সংরক্ষিত থাকে [MAX_RESP_NO] [MAX_RESP_LEN] এবং সংশ্লিষ্ট কীওয়ার্ড অ্যারে শব্দে সংরক্ষিত থাকে।

কনস্ট্রাক্টর: এটি 0 এর মোট প্রতিক্রিয়া সংখ্যাকে আরম্ভ করার জন্য ব্যবহার করা হয়।

int getcount ():

এই ফাংশনটি প্রদত্ত কীওয়ার্ডের জন্য কতগুলি প্রতিক্রিয়া আছে তার একটি গণনা পেতে ব্যবহৃত হয়।

অকার্যকর অ্যাডওয়ার্ড (char str [MAX_KWD_LEN]):

এটি একটি কীওয়ার্ড যুক্ত করতে ব্যবহৃত হয়।

char * getword ():

ক্লাস রেস্পের একটি নির্দিষ্ট বস্তুর জন্য কীওয়ার্ড ফেরত দিতে ব্যবহৃত হয়।

অকার্যকর অ্যাড্রেসপ (…):

এটি একটি প্রদত্ত কীওয়ার্ডের সাথে সম্পর্কিত একটি প্রতিক্রিয়া যুক্ত করতে ব্যবহৃত হয়।

অকার্যকর display_resp (int):

এটি ব্যবহারকারীর প্রতিক্রিয়াগুলির জন্য প্রদত্ত সূচক সংখ্যার সাথে সম্পর্কিত প্রতিক্রিয়া প্রদর্শন করতে ব্যবহৃত হয়। (আসলে এটি এর চেয়ে বেশি করে!)।

অকার্যকর exit_display_resp (int):

এই ফাংশন এবং উপরের ফাংশনের মধ্যে পার্থক্য হল যে এটি ব্যবহারকারীর প্রস্থান করার সময় শেষ পর্যন্ত ব্যবহৃত হয়। সুতরাং, এটি ব্যবহারকারীর কাছে প্রম্পট ফেরত দেয় না।

ধাপ 7: ফাংশন

অকার্যকর initialize_global ()

{

strcpy (wordin [0], "ARE");

strcpy (wordout [0], "AM");

strcpy (wordin [1], "AM");

strcpy (wordout [1], "ARE");

strcpy (wordin [2], "WERE");

strcpy (wordout [2], "WAS");

strcpy (wordin [3], "WAS");

strcpy (wordout [3], "WERE");

strcpy (wordin [4], "আপনি");

strcpy (wordout [4], "ME");

strcpy (wordin [5], "I");

strcpy (wordout [5], "আপনি");

strcpy (wordin [6], "আপনার");

strcpy (wordout [6], "MY");

strcpy (wordin [7], "MY");

strcpy (wordout [7], "আপনার");

strcpy (wordin [8], "I'VE");

strcpy (wordout [8], "আপনি");

strcpy (wordin [9], "আপনি");

strcpy (wordout [9], "I'VE");

strcpy (wordin [10], "আমি");

strcpy (wordout [10], "আপনি");

strcpy (wordin [11], "আপনি");

strcpy (wordout [11], "I'm");

strcpy (wordin [12], "ME");

strcpy (wordout [12], "আপনি");

strcpy (wordin [13], "আপনি");

strcpy (wordout [13], "ME");

}

আসুন এখন ব্যবহারকারীর প্রতি স্পর্শ প্রদর্শন করার জন্য একটি ফাংশন লিখি। প্রথম যদি লুপের মধ্যে বিবৃতিটি ইচ্ছাকৃত টাইপিং ত্রুটি তৈরি করতে ব্যবহার করা হয় যাতে এটি আরো মানুষের মত দেখা যায়;-)। একটি অক্ষর এলোমেলোভাবে ত্রুটি টাইপ করার জন্য নির্বাচিত হয়। নিউ লাইন এবং ব্যাকস্পেসের মতো বিশেষ ক্ষেত্রে আলাদাভাবে বিবেচনা করা হয়। (ভাবুন কেন?)। এখন নতুন কিছু পরিচয় করিয়ে দিলাম। একটি বিশেষ চরিত্র - *। চিহ্নিত * কীওয়ার্ডের পরে পাওয়া সমস্ত পাঠ্য, এবং নিচের বিরামচিহ্নগুলির একটির পূর্বে চর * প্রতিনিধিত্ব করে।

উদাহরণস্বরূপ, ব্যবহারকারীর ইনপুট বিবেচনা করুন

AMIT> আমি কি ইন্দোরে কাল যেতে পারি?

MAX> যদি আপনি ইন্দোরে কাল না যান তাহলে কি করবেন?

আন্ডারলাইন করা অংশ অভিধানে সংরক্ষণ করা হয় না, বরং এটি ব্যবহারকারীর ইনপুট থেকে নেওয়া হয়। MAX. Dat ফাইলে আমরা এই তথ্যটি সংরক্ষণ করি

আমি কি পারি

আপনি যদি না করেন তবে কি করবেন *

স্টার (*) প্রোগ্রামটিকে ব্যবহারকারীর ইনপুটে কীওয়ার্ড (এখানে CAN I) এর পরে যা টাইপ করা হয়েছে তা অনুলিপি করতে বলে। আমি আশা করি যে এখন * একটি বিশেষ কীওয়ার্ড হিসাবে ফাংশন স্পষ্ট। সুতরাং, আসুন আমরা একটি আরও জটিল কেস বিবেচনা করি।

AMIT> আমি কেনাকাটা করতে যেতে পারি?

সর্বাধিক> যদি আপনি কেনাকাটা করতে না যান?

আমাদেরও কিছু রূপান্তর করতে হবে। যখন আমরা রূপান্তরের কথা ভাবি, বাক্যটি নিম্নলিখিত তিনটি বিভাগে বিভক্ত হয়ে যায়:

  • ট্রান্সপোজিশন ওয়ার্ডের আগে টেক্সট। (এখানে, কেনাকাটা করতে যান)
  • Transposed কীওয়ার্ড। (এখানে, আপনার জায়গায়, আমার)
  • ট্রান্সপোজিশন কীওয়ার্ডের পরে টেক্সট। (আমি এখানে ?)

ধাপ 8: কেসগুলি মোকাবেলা করা যেতে পারে ………

ধাপ 9: ব্যবহারকারীর ইনপুটে একটি কীওয়ার্ড অনুসন্ধান করা

MAX_KEY DAT ফাইলে কীওয়ার্ডের সংখ্যা নির্দেশ করে।

আমরা এখানে কেবল অনুসন্ধান করি যে কীওয়ার্ডটি ব্যবহারকারীর ইনপুটে বিদ্যমান কিনা।

ধাপ 10: উপসংহার

এখানেই শেষ ………

আপনি এটা করেছেন !!!!!!!

আমি মনে করি সবাই বিষয়গুলো পরিষ্কারভাবে বুঝতে পেরেছে ……

প্রস্তাবিত: