

ساختن اولین چت بات خود: یک آموزش عملی با ابزارهای منبع باز
تصویر توسط ویرایشگر | ایدئوگرام
چت بات یک برنامه کامپیوتری است که می تواند با مردم صحبت کند. می تواند به سوالات پاسخ دهد و در هر زمان به کاربران کمک کند. برای ساختن آن نیازی نیست در مورد کدنویسی اطلاعات زیادی داشته باشید. ابزارهای رایگانی وجود دارد که آن را ساده و سرگرم کننده می کند.
در این مقاله از ابزاری به نام ChatterBot استفاده خواهیم کرد. شما یاد خواهید گرفت که چگونه آن را تنظیم کنید و آن را برای پاسخگویی آموزش دهید.
کارکردن چت بات
چت بات ها با استفاده از الگوریتم هایی کار می کنند تا بفهمند کاربران چه می گویند. آنها به ورودی کاربر گوش می دهند و بهترین پاسخ را پیدا می کنند. هنگامی که کاربر سوالی را تایپ می کند، ربات چت آن را پردازش می کند. به دنبال کلمات و عبارات کلیدی برای درک معنی می گردد. سپس بر اساس داده های آموزشی خود پاسخی را انتخاب می کند.
هرچه ربات چت بیشتر تعامل داشته باشد، بهتر می شود. از هر مکالمه یاد می گیرد. این به آن اجازه می دهد تا پاسخ ها را در طول زمان بهبود بخشد. برخی از چت بات ها از پردازش زبان طبیعی (NLP) برای درک بهتر زبان استفاده می کنند. این باعث می شود مکالمات طبیعی تر به نظر برسند.
ChatterBot
ChatterBot یک کتابخانه پایتون برای ساخت ربات های چت است. این به شما کمک می کند ربات های هوشمندی بسازید که می توانند صحبت کنند. این کتابخانه از یادگیری ماشینی برای تولید پاسخ استفاده می کند. این بدان معناست که ربات می تواند از مکالمات یاد بگیرد. استفاده از آن آسان است، حتی برای مبتدیان. ChatterBot گزینه های مختلف ذخیره سازی را ارائه می دهد. برای ذخیره داده ها می توانید از SQL یا MongoDB استفاده کنید. این به شما امکان می دهد آنچه را که برای شما مناسب تر است انتخاب کنید. کتابخانه نیز قابل تنظیم است. می توانید نحوه پاسخ ربات را متناسب با نیازهای خود تغییر دهید.
ChatterBot منبع باز است. این بدان معناست که استفاده و تغییر آن رایگان است. هر کسی می تواند از آن برای ساخت ربات های چت استفاده کند. این شامل مجموعه داده های داخلی برای آموزش است. می توانید از داده های مکالمه انگلیسی برای کمک به یادگیری ربات خود استفاده کنید. این آن را به ابزاری عالی برای ایجاد رباتهای گفتگوی جذاب تبدیل میکند.
تنظیم محیط
قبل از شروع، باید محیط خود را تنظیم کنید. این مراحل را دنبال کنید:
- پایتون را نصب کنید: پایتون را دانلود و نصب کنید وب سایت رسمی. حتما پایتون 3.5 یا بالاتر را دریافت کنید.
- یک محیط مجازی ایجاد کنید: این به شما کمک می کند پروژه خود را مدیریت کنید. این دستورات را در ترمینال خود اجرا کنید:
منبع python -m venv chatbot-env chatbot-env/bin/activate # در ویندوز، از «chatbot-env\Scripts\activate» استفاده کنید
پایتون –متر venv چت بات–env منبع چت بات–env/سطل زباله/فعال کردن # در ویندوز، از «chatbot-env\Scripts\activate» استفاده کنید |
در حال نصب ChatterBot
بعد، باید ChatterBot را نصب کنید. برای ایجاد یک چت بات، نصب ChatterBot Corpus نیز ضروری است.
pip install chatterbot pip install chatterbot-corpus
پیپ نصب کنید ربات پچ پچ پیپ نصب کنید ربات پچ پچ–بدنه |
بیایید کلاس Chatbot ماژول chatterbot را وارد کنیم.
از واردات چتربات ChatBot
از ربات پچ پچ واردات چت ربات |
راه اندازی ChatterBot
هنگامی که کتابخانه ChatterBot را نصب کردید، می توانید شروع به ایجاد ربات چت خود کنید.
# ایجاد شی از ربات کلاس ChatBot = ChatBot (‘MyChatBot’)
# شی از کلاس ChatBot ایجاد کنید ربات = چت ربات(“MyChatBot”) |
ذخیره سازی برای یک ربات چت مهم است. این به ربات کمک می کند آنچه را که می آموزد به خاطر بیاورد. با فضای ذخیره سازی، ربات می تواند مکالمات را پیگیری کند. می تواند تعاملات گذشته را به یاد بیاورد. این به مرور زمان پاسخهای ربات را بهبود میبخشد. شما می توانید انواع مختلفی از ذخیره سازی را انتخاب کنید. گزینه ها شامل SQL و MongoDB هستند. ذخیره سازی SQL داده ها را در یک پایگاه داده ذخیره می کند. این امر مدیریت و بازیابی آن را در آینده آسان تر می کند.
from chatterbot import ChatBot # ایجاد یک ربات چت با SQL Storage bot = ChatBot( ‘MyChatBot’, storage_adapter=”chatterbot.storage.SQLStorageAdapter”, database_uri=’sqlite:///database.sqlite3′ )
از ربات پچ پچ واردات چت ربات # یک ربات چت با فضای ذخیره سازی SQL ایجاد کنید ربات = چت ربات( “MyChatBot”، storage_adapter=‘chatterbot.storage.SQLStorageAdapter’، database_uri=‘sqlite:///database.sqlite3’ ) |
راه اندازی ترینر
ChatterBot را می توان با مجموعه داده های مختلف آموزش داد. این ChatterBotCorpusTrainer به شما امکان می دهد ربات چت خود را با مجموعه داده های مکالمه داخلی آموزش دهید.
برای آموزش چت بات خود با استفاده از مجموعه انگلیسی، می توانید از کد زیر استفاده کنید:
from chatterbot.trainers import ChatterBotCorpusTrainer # آموزش ربات چت با corpus trainer.train (“chatterbot.corpus.english”)
از ربات پرحرف.مربیان واردات ChatterBotCorpusTrainer # چت بات را با مجموعه انگلیسی آموزش دهید مربی.قطار(“chatterbot.corpus.english”) |
سفارشی کردن چت بات خود
شما می توانید چت بات خود را به چند روش سفارشی کنید:
تغییر منطق پاسخ
ChatterBot از آداپتورهای منطقی برای انتخاب پاسخ ها استفاده می کند. شما می توانید این رفتار را تغییر دهید. استفاده کنید بهترین مسابقه آداپتور:
chatbot = ChatBot( ‘MyBot’, logic_adapters=[
‘chatterbot.logic.BestMatch’
])
چت بات = چت ربات( “MyBot”، منطق_آداپتورها=[ ‘chatterbot.logic.BestMatch’ ] ) |
داده های آموزشی بیشتر اضافه کنید
داده های آموزشی بیشتر ربات شما را بهبود می بخشد. شما می توانید فایل داده خود را ایجاد کنید. آن را به عنوان ذخیره کنید custom_corpus.yml با جفت پرسش و پاسخ
– – چطوری؟ – حالم خوبه، ممنون! – – اسمت چیه؟ – من مای بات هستم.
– – چگونه هستند شما? – من‘متر انجام دادن خوب، تشکر شما! – – چی است شما نام? – من هستم MyBot. |
ربات خود را با این داده های سفارشی آموزش دهید:
trainer.train(‘path/to/custom_corpus.yml’)
مربی.قطار(‘path/to/custom_corpus.yml’) |
پیاده سازی منطق سفارشی
شما می توانید منطق سفارشی را برای پاسخ های خاص اضافه کنید. در اینجا یک نمونه از یک آداپتور سفارشی ساده آورده شده است:
from chatterbot.logic import کلاس LogicAdapter CustomLogicAdapter(LogicAdapter): def can_process(self, statement): return ‘weather’ in statement.text def process(self, statement, extra_response_selection_parameters=هیچکدام): return ‘من نمی توانم اطلاعات آب و هوا را درست ارائه کنم اکنون.
از ربات پرحرف.منطق واردات Logic Adapter کلاس CustomLogicAdapter(Logic Adapter): دف can_process(خود، بیانیه): بازگشت “آب و هوا” در بیانیه.متن دف فرآیند(خود، بیانیه، extra_response_selection_parameters=هیچ کدام): بازگشت “در حال حاضر نمی توانم اطلاعات آب و هوا ارائه کنم.” |
تست ربات چت شما
هنگامی که چت بات شما آموزش داده شد، می توانید برای آزمایش پاسخ های آن با آن تعامل برقرار کنید. کد زیر یک حلقه ساده برای چت با ربات شما ایجاد می کند:
print(“چت با ربات! تایپ کنید “quit” برای خروج.”) در حالی که True: user_input = input(“شما:”) if user_input.lower() == ‘out’: break answer = chatbot.get_response(user_input) چاپ (“ربات:”، پاسخ)
چاپ کنید(“با ربات گپ بزنید! برای خروج، عبارت “quit” را تایپ کنید.”) در حالی که درست است: user_input = ورودی(“تو:”) اگر user_input.پایین تر() == “ترک”: شکستن پاسخ = چت بات.دریافت_پاسخ(user_input) چاپ کنید(“ربات:”، پاسخ) |
چت با ربات! برای خروج عبارت «quit» را تایپ کنید. شما: سلام! ربات: سلام! تو: چطوری؟ ربات: حالم خوب است، متشکرم! شما: دست بردارید
چت کنید با را ربات! تایپ کنید “ترک” به خروج. شما: سلام وجود دارد! ربات: سلام! شما: چگونه هستند شما? ربات: من‘متر انجام دادن خوب، تشکر شما! شما: ترک کردن |
استقرار چت بات خود برای تعامل
اگر می خواهید چت بات خود را به صورت آنلاین در دسترس قرار دهید، آن را با یک برنامه وب ادغام کنید. در اینجا یک راه ساده برای ادغام ChatterBot خود با یک برنامه وب Flask آورده شده است:
از import flask Flask, request, jsonify app = Flask(__name__) @app.route(“/chat”, method=[“POST”]) def chat(): user_input = request.json.get(“message”) answer = chatbot.get_response(user_input) return jsonify({“response”: str(response)}) if __name__ == “__main__”: برنامه. run (debug=True)
از فلاسک واردات فلاسک، درخواست کنید، jsonify برنامه = فلاسک(__نام__) @برنامه.مسیر(“/چت”، روش ها=[“POST”]) دف چت کردن(): user_input = درخواست کنید.json.دریافت کنید(“پیام”) پاسخ = چت بات.دریافت_پاسخ(user_input) بازگشت jsonify({“پاسخ”: خ(پاسخ)}) اگر __نام__ == “__اصلی__”: برنامه.اجرا کنید(اشکال زدایی=درست است) |
این تنظیمات، استقرار ربات چت شما را آسان می کند. کاربران می توانند به صورت آنلاین با آن چت کنند. می توانید از طریق یک برنامه وب به ربات چت پیام ارسال کنید.
نتیجه گیری
با ابزارهایی مانند ChatterBot، می توانید به سرعت چت بات خود را بسازید. همانطور که در مورد نحوه استفاده از ChatterBot بیشتر یاد می گیرید، می توانید برخی از ویژگی های اضافی آن را اضافه کنید. می توانید کاری کنید که چت ربات خود زبان را بهتر بفهمد، و می توانید آن را به برنامه های دیگر متصل کنید تا کارهای بیشتری انجام دهد. این ربات چت شما را هوشمندتر و مفیدتر می کند.