সুচিপত্র:

কিভাবে একটি A.I. পার্ট 2: 9 ধাপ
কিভাবে একটি A.I. পার্ট 2: 9 ধাপ

ভিডিও: কিভাবে একটি A.I. পার্ট 2: 9 ধাপ

ভিডিও: কিভাবে একটি A.I. পার্ট 2: 9 ধাপ
ভিডিও: ৫ ধাপেই বই শেষ! How to Finish Reading a Book | যেকোনো বই শেষ করার অভিনব কৌশল | Dr. Nabil 2024, নভেম্বর
Anonim
কিভাবে একটি A. I. অংশ ২
কিভাবে একটি A. I. অংশ ২

উইন্ডোজ কম্পিউটারে একটি এআই তৈরির জন্য আমি যে পদক্ষেপ নিয়েছি, এটি একটি ফ্রি ডাটাবেস, প্রোগ্রামিং ডেভেলপমেন্ট টুল এবং উইন্ডোজের সাথে আসা টিটিএস ইঞ্জিনে বিনামূল্যে নির্মিত বিল্ডিং -এর দ্বিতীয় অংশ।

"উইন্ডোজ" শব্দটি মাইক্রোসফটের অন্তর্গত।

"ড্রাগন" শব্দটি Nuance এর অন্তর্গত।

ধাপ 1: কিভাবে একটি AI পার্ট 2 তৈরি করবেন।

কিভাবে একটি AI পার্ট 2 তৈরি করবেন।
কিভাবে একটি AI পার্ট 2 তৈরি করবেন।

একটি প্রোগ্রামিং ভাষা বাছুন এবং কিছু সরঞ্জাম পান।

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

আপনি মাইক্রোসফট ওয়েবসাইট থেকে এর বিনামূল্যে সংস্করণ ডাউনলোড করতে পারেন। শুধু মাইক্রোসফট ওয়েব সাইটে "এক্সপ্রেস" সার্চ করুন। [ভিজ্যুয়াল স্টুডিও এক্সপ্রেস এবং এসকিউএল সার্ভার এক্সপ্রেস]

অন্যান্য ভাষা যা আপনি আমাদের কাছে চাইতে পারেন: Python, C#, C ++, Java, Prolog, Lisp, IPL

এবং আরও অনেক কিছু. এআইএমএল একটি "মার্কআপ ল্যাঙ্গুয়েজ" যা খুব আকর্ষণীয়।

আমি উইন্ডোজের সাথে আসা একটি ভাল "বক্তৃতা স্বীকৃতি" প্রোগ্রাম চেয়েছিলাম, তাই আমি ড্রাগন সফ্টওয়্যার কিনেছিলাম। আমি উইন্ডোজের সাথে আসা স্ট্যান্ডার্ড "টেক্সট-টু-স্পিচ" প্রোগ্রাম ব্যবহার করছি।

ধাপ 2: আপনার সিস্টেম ডিজাইন করুন:

আপনার সিস্টেম ডিজাইন করুন
আপনার সিস্টেম ডিজাইন করুন

আপনার বড় প্রকল্পগুলিকে একগুচ্ছ ছোট প্রকল্পে ভাগ করুন। আমি আমার প্রোগ্রাম কোডকে মডিউলে বিভক্ত করেছি।

আমি আমার কোডকে বিভিন্ন মডিউলে বিভক্ত করেছি যাতে একটি নির্দিষ্ট ফাংশন খুঁজে পাওয়া সহজ হয়।

আমার "প্রসেস ইনপুট", "প্রসেস এআই", "প্রসেস আউটপুট", "ইউজার ইন্টারফেস" এবং আরও কয়েকটি মডিউল রয়েছে। আমার কিছু ফাংশন অন্য সব কোড মডিউলের জন্য অ্যাক্সেসযোগ্য হওয়া প্রয়োজন, তাই আমি সেই ফাংশনগুলিকে একটি "সাধারণ" মডিউলে রাখি যেখানে সবকিছু ভাগ করা হয়

ধাপ 3: প্রোগ্রামিং ল্যাঙ্গুয়েজে নির্মিত ফাংশন:

প্রোগ্রামিং ল্যাঙ্গুয়েজে নির্মিত ফাংশন
প্রোগ্রামিং ল্যাঙ্গুয়েজে নির্মিত ফাংশন

বিভিন্ন ভাষার এগুলোর আলাদা আলাদা নাম থাকতে পারে, কিন্তু সব উচ্চ স্তরের ভাষার একই ধরনের কাজ রয়েছে।

LCase বা ToLower: একটি স্ট্রিংকে সব লোয়ার কেসে রূপান্তর করে। আমি একটি ডাটাবেস অনুসন্ধান করার আগে সবকিছুকে লোয়ার কেসে রূপান্তর করি-যদিও বেশিরভাগ জিনিসই "কেস-সংবেদনশীল"-কেবলমাত্র ক্ষেত্রে।

প্রতিস্থাপন করুন: একটি স্ট্রিং এর ভিতরে একটি স্ট্রিংকে আরেকটি স্ট্রিং এ প্রতিস্থাপন করুন। আপনি পরিত্রাণ পেতে একটি খালি স্ট্রিং "" দিয়ে একটি স্ট্রিং প্রতিস্থাপন করতে পারেন। আমি পিরিয়ড, প্রশ্ন চিহ্ন, কমা এবং অন্যান্য বিরামচিহ্ন থেকে মুক্তি পাই।

বিভক্ত: একটি স্ট্রিংকে পৃথক টুকরো করে বিভক্ত করে এবং সেগুলিকে একটি অ্যারেতে রাখে। এই ফাংশনটি যেকোনো অক্ষরে একটি স্ট্রিং বা "ডিলিমিটার" বিভক্ত করবে। আমি একটি বাক্যকে একটি "স্পেস ক্যারেক্টার" "" "শব্দের একটি অ্যারে করতে বিভক্ত করি। একে এআই গুরুরা "টোকেনাইজিং" বলে।

ডাটাবেস অনুসন্ধান করতে ব্যবহৃত প্রশ্নগুলি তৈরি করতে আমি পৃথক শব্দ ব্যবহার করি। (আমার পরবর্তী নিবন্ধে এই সম্পর্কে আরো)

ধাপ 4: আপনার নিজস্ব ফাংশন তৈরি করতে বিল্ট-ইন ফাংশনগুলি একত্রিত করুন

এটি একটি "চাক্ষুষ মৌলিক" উদাহরণ। এই ধরনের কিছু তৈরি করতে আপনার প্রোগ্রামিং ভাষা ব্যবহার করুন।

অবশ্যই, আপনার পছন্দের প্রোগ্রামিং ভাষা ব্যবহার করে আপনাকে প্রচুর কোড লিখতে হবে এবং অনেকগুলি ফাংশন তৈরি করতে হবে।

ধাপ 5: মডিউলগুলি কি করে? "ইনপুট প্রসেসর"

মডিউল কি করে? "ইনপুট প্রসেসর"
মডিউল কি করে? "ইনপুট প্রসেসর"

এআইকে একই প্রশ্ন জিজ্ঞাসা করার একশত ভিন্ন উপায় থাকতে পারে। উদাহরণ স্বরূপ; "কয়টা বাজে?", "তোমার কি সময় আছে?" "তুমি কি জানো এটা কোন সময়?", "তুমি কি আমাকে দিনের বর্তমান সময় বলতে পারো?" যেহেতু ব্যবহারকারী শুধু সময় চাইছেন, তাই আমি এই ইনপুটগুলির একটিকে একটি ডেটাবেস "লুক আপ" টেবিল ব্যবহার করে "কোয়েরি টাইম" নামক একটি আউটপুটে রূপান্তর করি।

আপনি একটি টেবিলের মাধ্যমে লুপে কোড লিখতে পারেন যতক্ষণ না এটি একটি মিল খুঁজে পায়, অথবা যদি আপনি একটি SQL ডাটাবেস ব্যবহার করেন, আপনি একটি SQL প্রশ্ন লিখতে পারেন, যেমন …

"সারণির নাম থেকে আউটপুট নির্বাচন করুন যেখানে ইনপুট = '" যাই হোক না কেন ""

… এবং তারপর আমি পরবর্তী কোড মডিউলে আউটপুট, “কোয়েরি টাইম” পাঠাই; "প্রসেস এআই"

প্রশ্ন ছাড়াও, "হ্যালো" বলার অনেক উপায় আছে

হাই, হ্যালো, কি খবর, হে, হোলা, কেমন আছো?

এগুলি সবই "শুভেচ্ছা" তে সীমাবদ্ধ

যখন এআই প্রসেসর "গ্রিটিং" দেখে তখন এটি আউটপুট প্রসেসরকে "গ্রিটিং" পাঠায়, যা একটি ডাটাবেস টেবিল থেকে এলোমেলো শুভেচ্ছা গ্রহণ করবে এবং উচ্চস্বরে কথা বলবে।

ধাপ 6: "এআই প্রসেসর"

"এআই প্রসেসর"
"এআই প্রসেসর"

প্রসেস এআই সবচেয়ে বড় কোড মডিউল। এটি এত বড় যে আমি এটিকে বিভাগেও ভাগ করেছি।

ইনপুটটি চেক করা হয়েছে যে ব্যবহারকারী একটি কমান্ড বলেছে, অথবা একটি প্রশ্ন জিজ্ঞাসা করেছে। এছাড়াও, এআই বিভিন্ন "মোড" এর মধ্যে হতে পারে যার অর্থ হল "প্রসেস এআই" কোড ব্যবহারকারীকে একটি প্রশ্ন জিজ্ঞাসা করার পরিবর্তে একটি প্রশ্নের উত্তর দেওয়ার প্রত্যাশা করছে।

যদি ব্যবহারকারী কোন কমান্ড না বলে এবং AI বিশেষ "মোডে" না থাকে তবে এটি "ওয়ার্ড অ্যারে" শব্দগুলির সংমিশ্রণের বাইরে অনেকগুলি প্রশ্ন তৈরি করে এবং চালায়। সমস্ত ক্যোয়ারী ফলাফল একটি টেবিলে সংরক্ষিত হয় এবং প্রতিটি প্রশ্নের ফলাফলকে একটি "স্কোর" দেওয়া হয় যাতে ফলাফলটি ব্যবহারকারীর কথার সাথে কতটা ঘনিষ্ঠভাবে মেলে। টেবিলটি স্কোর দ্বারা সাজানো হয়, এবং সর্বোচ্চ স্কোর সহ ফলাফলটি আউটপুটে পাঠানো হয়, যদি এটি একটি নির্দিষ্ট সীমা অতিক্রম করে। যদি সমস্ত স্কোর থ্রেশহোল্ডের নিচে থাকে, তাহলে এআই "আমি জানি না" বা "এটি গণনা করে না" দিয়ে সাড়া দিতে পারে

ধাপ 7: "আউটপুট এবং স্কোর" টেবিল

দ্য
দ্য

আমার ইনপুট থেকে AI এর আউটপুট "মুরগি কি করেছে?"

ধাপ 8: "আউটপুট প্রসেসর"

"আউটপুট প্রসেসর"
"আউটপুট প্রসেসর"

এটি বেশ কিছু "সম্পর্কহীন" দেখতে কাজ করে কিন্তু এগুলি সবই এআই প্রসেসর থেকে ব্যবহারকারীর কাছে পাঠ্য পাওয়ার সাথে সম্পর্কিত।

এখানে একটি তালিকা।

1. ডাটাবেস থেকে পাঠ্য সব ছোট ক্ষেত্রে হতে পারে, এবং কোন বিরামচিহ্ন নেই।. Subroutines প্রথম অক্ষরকে বড় করে, এবং শেষে একটি পিরিয়ড বা প্রশ্ন চিহ্ন রাখবে।

2. আরেকটি সাবরুটিন অ্যাপ্রস্ট্রফগুলিকে সংকোচনে ফিরিয়ে দেবে, অথবা সংকোচনকে সম্পূর্ণ শব্দে রূপান্তরিত করবে (যেমন "ক্যান্ট" কে "ক্যান" দিয়ে প্রতিস্থাপন করা হবে)

3. টেক্সট-টু-স্পিচ ইঞ্জিন আমার পছন্দ মতো কিছু শব্দ উচ্চারণ করে না, তাই "আউটপুট প্রসেসর" সেই শব্দগুলিকে ফোনেটিক বানান দিয়ে প্রতিস্থাপন করে। "ইনপুট প্রসেসর" এ

4. যদি এআই ডাটাবেজে উপযুক্ত উত্তর না পায়, তাহলে এটা বলতে পারে "আমি জানি না" কিন্তু আমি চাই না যে এটি বারবার বলা হোক। প্রকৃত মানুষ তাদের প্রতিক্রিয়া ভিন্ন। সুতরাং "সাধারণ আউটপুট" বাক্যাংশগুলির সাথে একটি টেবিল রয়েছে এবং একটি ফাংশন যা এলোমেলোভাবে একটিকে বেছে নেয় (এবং পরপর দু'বার একইটি বেছে নেবে না।)

5. বিনামূল্যে "টেক্সট-টু-স্পিচ" (টিটিএস) ইঞ্জিন একজন প্রোগ্রামারকে বাক্যগুলি যেভাবে বলা হয় তার জন্য অনেক অপশন দেয় না, কিন্তু পিচ এবং ফোনেমের গতিতে আপনার একটু নিয়ন্ত্রণ থাকে। এই জন্য শব্দ "Prosody"। আমি আমার ডাটাবেসের টেক্সটে কিছু "প্রোসোডি" কোড যোগ করেছি, এবং যখন "আউটপুট প্রসেসর" এগুলি দেখে, এটি প্রতিটি শব্দ বলার সাথে সাথে টিটিএস ইঞ্জিনের পিচ এবং গতি সামঞ্জস্য করে।

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

ধাপ 9: এটিতে কাজ চালিয়ে যান।

এটিতে কাজ চালিয়ে যান।
এটিতে কাজ চালিয়ে যান।

আমার ইনপুট ছিল "কাউকে বলো না"

আমি এখনও আমার এআই সিস্টেমে কাজ করছি, এবং এটি সম্ভবত কখনই "সম্পন্ন" হবে না। আমি আরো বৈশিষ্ট্য যোগ করার সাথে সাথে, আমি আরো নিবন্ধ লিখতে হবে।

হয়তো আমার কিছু ধারনা আপনাকে একটি AI তৈরিতে অনুপ্রাণিত করবে যা আমার চেয়ে ভালো

প্রস্তাবিত: