5 مهر 1402
تهران، خیابان آزادی، تقاطع قریب
برنامه نویسی نرم افزار برنامه نویسی وب

آموزش پایتون پیشرفته رایگان | پروژه محور + سورس کد

آموزش پایتون پیشرفته رایگان | پروژه محور + سورس کد

صفحه‌ای که پیش روی شما قرار دارد، به آموزش پایتون پیشرفته به صورت رایگان می‌پردازد. در این آموزش از سورس کد چند پروژه استفاده شده و این پروژه‌ها به صورت قدم به قدم، در طول این آموزش کدنویسی می‌شوند.

پیش نیاز این دوره آموزش پایتون پیشرفته رایگان، آشنایی کلی با سینتکس پایتون و انجام پروژه‌های ساده‌تر پیش از این است. در ادامه، لینک دسترسی به چند محتوای آموزشی پایتون آورده شده است که در برخی از آن‌ها به آموزش پروژه های پایتون برای مبتدیان پرداخته‌ایم. برخی دیگر نیز شامل پروژه‌های پیشرفته هستند.

حالا بیایید آموزش را آغاز کنیم!

آموزش پایتون پیشرفته رایگان: شمارش روزهای بارانی

در این بخش از آموزش پایتون پیشرفته رایگان، من شما را برای شمارش روزهای بارانی از طریق یک کار محاسباتی با پایتون راهنمایی می‌کنم. تصور کنید یک سری داده دارید که نشان دهنده میزان بارندگی هر روز سال، در یک شهر معین است.

برای انجام این کار محاسباتی، ابتدا باید داده‌های مربوط به روزهای بارانی در سال را دانلود کنید. این داده‌ها از اینجا قابل دانلود هستند.

				
					import numpy as np
import pandas as pd

data = pd.read_csv("Seattle2014.csv")
print(data.head())

rainfall = data["PRCP"].values
inches = rainfall/25
				
			
				
					(365,)
				
			

جدول شامل 365 مقدار است که میزان بارش روزانه را از 1 ژانویه تا 31 دسامبر 2014 بر حسب اینچ نشان می‌دهد.

قبل از این که این کار را ادامه دهیم، بیایید با استفاده از matplotlib نگاهی گذرا به هیستوگرام روزهای بارانی بیندازیم:

				
					import matplotlib.pyplot as plt
import seaborn
seaborn.set()
plt.hist(inches, 40)
plt.show()
				
			
آموزش پایتون پیشرفته رایگان: شمارش روزهای بارانی

هیستوگرام بالا به ما یک ایده کلی از شکل داده‌ها می‌دهد. علیرغم این که شهر سیاتل به بارانی بودن معروف است، بارندگی در اکثر روزهای آن در سال 2014، نزدیک بشه صفر اندازه گیری شده است.

شمارش روزهای بارانی چگونه با محاسبات عددی ممکن است؟

این بخش از آموزش پایتون پیشرفته رایگان ما، بر محاسبات عددی برای شمارش روزهای بارانی در یک سال متمرکز است. بنابراین من برای حل این مشکل، بیشتر از یادگیری ماشین، بر محاسبات عددی تمرکز خواهم کرد.

اگر نمی‌دانید چگونه کار محاسبات عددی را در پایتون انجام دهید، بهتر است بدانید با استفاده از پکیج NumPy ، می‌توانید به راحتی این کار را انجام دهید. پس بیایید برخی توابع ضروری NumPy را برای محاسبات عددی با پایتون استفاده کنیم.

با استفاده از توابع محاسبات عددی NumPy ، می‌توانیم به انواع سؤالاتی که در مورد داده‌های مربوط به بارش دریافت می‌کنیم، پاسخ دهیم. در این‌جا چند نمونه از نتایجی را می‌بینید که می‌توانیم برای شمارش روزهای بارانی با استفاده از پایتون محاسبه کنیم:

				
					print("Number of days without rain: ", np.sum(inches == 0))
print("Number of days with rain: ", np.sum(inches != 0))
print("Number of days with rain more than 0.5 inches: ", np.sum(inches>0.5))
print("Number of days with rain < 0.2 inches: ", np.sum((inches > 0)& (inches < 0.2)))
				
			
				
					Number days without rain: 215
Number days with rain: 150
Days with more than 0.5 inches: 37
Rainy days with < 0.1 inches: 75
				
			

امیدوارم این آموزش پایتون پیشرفته رایگان، برای شما مفید بوده باشد و بتوانید با استفاده از قدرت محاسبات عددی در پایتون، روزهای بارانی یک سال را بشمارید. پس از انجام این پروژه، می‌توانید بازی‌های بیشتری با داده‌ها انجام دهید. اگر پرسشی در این باره دارید، لطفا در بخش کامنت‌ها بپرسید.

آموزش پایتون پیشرفته رایگان: ارسال ایمیل با پایتون

گاهی اوقات ممکن است در شرایطی قرار بگیریم که لازم باشد برای چندین نفر به صورت شخصی ایمیل بفرستیم. اگرچه فرمت این ایمیل‌ها یکسان است، اما اطلاعاتی که در آن‌ها وجود دارد، از گیرنده‌ای به گیرنده دیگر متفاوت است. در این بخش از آموزش پایتون پیشرفته رایگان، به شما توضیح می‌دهم که چگونه می‌توان با پایتون ایمیل بفرستیم.

ارسال ایمیل به صورت دستی کار زمان‌بری است و جای خطای بسیار زیادی دارد. پایتون به ما این امکان را می‌دهد که این فرآیند را به راحتی خودکارسازی کنیم. پس بیایید ببینیم چگونه می‌توانیم با پایتون ایمیل ارسال کنیم.

از آن‌جایی که اسکریپت پایتون برای ارسال ایمیل به اکانت Gmail دسترسی پیدا می‌کند، باید آن را به حالت Allow less secure apps دربیاوریم تا برای این اکانت ON شود. این کار دسترسی برنامه پایتون ما را به اکانت شما آسان‌تر می‌کند. بنابراین توصیه می‌شود برای این منظور، یک حساب کاربری ایمیل موقت ایجاد کنید.

در مرحله بعد، برای ارسال ایمیل با پایتون، باید یک فایل متنی با نام template.txt ایجاد کنیم. این فایل متنی حاوی فرمت body ایمیل است:

				
					Dear ${PERSON_NAME},
You have secured the following marks in your mid-term exams:
Math - ${MATH}
English - ${ENG}
Science - ${SCI}
				
			

فایل بعدی که باید داشته باشید، یک فایل CSV است. فایلی که من استفاده خواهم کرد، دارای جزئیاتی است که باید مکان‌هایی را در فایل template آن پر کنید. این شامل جزئیاتی است که باید برای گیرندگان ارسال شود و ممکن است یک فایل Excel یا CSV باشد.

لیست ایمیل ها

بیایید کدنویسی کنیم!

پس از آماده شدن فایل CSV و فایل template ، اکنون زمان نوشتن کد ارسال ایمیل‌های سفارشی با پایتون است. بیایید با وارد کردن ماژول‌های لازم شروع کنیم:

				
					import smtplib
import csv
from string import Template
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
				
			

حالا یک تابع برای خواندن فایل template.txt ایجاد می‌کنیم. تابع زیر، template object را که حاوی محتویات فایل template.txt است، برمی‌گرداند:

				
					def read_template(filename):
   with open(filename, ‘r’, encoding=’utf-8') as template_file:
   template_file_content = template_file.read()
   return Template(template_file_content)
				
			

اکنون باید سرور SMTP را پیکربندی کنیم. اگر می‌خواهید این اسکریپت را در این آموزش پایتون پیشرفته رایگان با دیگران به اشتراک بگذارید، قرار دادن آدرس اکانت و پسوورد در اسکریپت، کار درستی نیست. در عوض، از input () استفاده کنید تا به کاربر اجازه داده شود در هنگام اجرای اسکریپت، پسوورد خود را وارد کند:

				
					MY_ADDRESS = *********@gmail.com  #your gmail account address
PASSWORD = ***********           #your password
s = smtplib.SMTP(host=’smtp.gmail.com’, port=587)
s.starttls()
s.login(MY_ADDRESS, PASSWORD)
				
			

اکنون آخرین مرحله از ساخت body ایمیل است. برای این کار باید:

  • فایل CSV را مرور کنید و برای هر خط از فایل CSV یک پیام ایجاد کنید.
  • با استفاده از تابع MIMEMultipart () یک پیام ایجاد کنید ،جزئیات (هر خط) را در template جایگزین کنید تا به body پیام بدهید و آن را در متغیر message ذخیره کنید.
  • سپس پارامترهایی مانند from و to address ، و subject پیام را پیکربندی کنید. متغیر message را به body پیام وصل کنید.
  • در نهایت، پیام را از طریق send_message () ارسال کنید.
				
					# read the message template
message_template = read_template(‘template.txt’)
with open(“details.csv”, “r”) as csv_file:
 csv_reader = csv.reader(csv_file, delimiter=’,’)
 # skip the first row as it is the header
 next(csv_reader)
 for row in csv_reader:
   msg = MIMEMultipart() # create a message
# add in the actual person name to the message template
   message=
   message_template.substitute(PERSON_NAME=row[0],MATH=row[2],
   ENG=row[3],SCI=row[4])
   
   # Prints out the message body for our sake
   print(message)
# setup the parameters of the message
   msg[‘From’]=MY_ADDRESS
   msg[‘To’]=lines[1]
   msg[‘Subject’]=”Mid term grades”
# add in the message body
   msg.attach(MIMEText(message, ‘plain’))
# send the message via the server set up earlier.
   s.send_message(msg)
   del msg
 
# Terminate the SMTP session and close the connection
s.quit()
				
			

در این‌جا، کد نهایی خود را می‌بینید که باید اجرا کنید:

				
					import smtplib
import csv
from string import Template
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
def read_template(filename):
 with open(filename, ‘r’, encoding=’utf-8') as template_file:
 template_file_content = template_file.read()
 return Template(template_file_content)
def main():
 message_template = read_template(‘template.txt’)
MY_ADDRESS = ‘**********@gmail.com’
 PASSWORD = ‘*************’
# set up the SMTP server
 s = smtplib.SMTP(host=’smtp.gmail.com’, port=587)
 s.starttls()
 s.login(MY_ADDRESS, PASSWORD)
 
 with open(“details.csv”, “r”) as csv_file:
  csv_reader = csv.reader(csv_file, delimiter=’,’)
  # the below statement will skip the first row
  next(csv_reader)
  for lines in csv_reader:
   msg = MIMEMultipart() # create a message
# add in the actual person name to the message template
    message =    message_template.substitute(PERSON_NAME=row[0],MATH=row[2],
    ENG=row[3],SCI=row[4])
   print(message)
# setup the parameters of the message
   msg[‘From’]=MY_ADDRESS
   msg[‘To’]=lines[1]
   msg[‘Subject’]=”Mid term grades”
# add in the message body
   msg.attach(MIMEText(message, ‘plain’))
# send the message via the server set up earlier.
   s.send_message(msg)
   del msg
 
 # Terminate the SMTP session and close the connection
 s.quit()
if __name__ == ‘__main__’:
 main()
				
			

در نهایت فراموش نکنید که پس از ارسال همه پیام‌ها، SMTP connection را ببندید. امیدوارم این بخش از آموزش پایتون پیشرفته رایگان در مورد نحوه ارسال ایمیل‌های شخصی‌سازی شده، مورد پسند شما واقع شده باشد.

آموزش پایتون پیشرفته رایگان: OTP Verification

آیا می‌دانید هر بار که فرآیند پرداخت را با یک تراکنش آنلاین انجام می‌دهید، چگونه یک OTP منحصر به فرد دریافت می‌کنید؟ هر شرکت راه‌های خود را به منظور ایجاد یک OTP برای تأیید دارد، اما اکثر شرکت‌ها سیستم‌های خود را برای تولید یک عدد تصادفی 6 رقمی برنامه‌ریزی کرده‌اند. در این بخش آموزش پایتون پیشرفته و رایگان، من شما را با کار OTP Verification در پایتون آشنا می‌کنم. پس از خواندن این بخش ،می‌توانید یک OTP منحصر به فرد برای هر شناسه ایمیل، به منظور کار OTP Verification ارسال کنید.

مراحل ایجاد یک سیستم OTP Verification با پایتون

OTP Verification فرآیند تأیید یک کاربر با ارسال یک رمز عبور منحصر به فرد است، تا کاربر بتواند قبل از تکمیل فرآیند ثبت نام یا پرداخت، تأیید شود. اغلب اوقات، در زمان‌هایی که پرداخت آنلاین انجام می‌دهیم، رمز عبور خود را فراموش می‌کنیم یا در هر پلتفرم آنلاینی اکانت می‌سازیم، OTP دریافت می‌کنیم. بنابراین، تنها هدف OTP تأیید هویت کاربر با ارسال یک رمز عبور منحصر به فرد است.

با دنبال کردن مراحل ذکر شده در این پروژه آموزش پایتون پیشرفته رایگان، می‌توانیم به راحتی با پایتون یک اپلیکیشن برای تأیید OTP ایجاد کنیم:

  • ایتدا یک عدد تصادفی 6 رقمی ایجاد کنید
  • سپس عدد را در یک متغیر ذخیره کنید
  • سپس باید برنامه‌ای برای ارسال ایمیل بنویسیم
  • هنگام ارسال ایمیل، از OTP باید به عنوان یک message استفاده کنیم
  • در نهایت، باید دو ورودی کاربر را دریافت کنیم؛ ابتدا برای ایمیل کاربر و سپس برای OTP که دریافت کرده است

این فرآیند کامل ایجاد یک برنامه OTP Verification با استفاده از پایتون است. در بخش زیر، نحوه اجرای این مراحل برای OTP Verification را با استفاده از پایتون توضیح خواهم داد.

مراحل عملی ساخت برنامه OTP Verification با پایتون

امیدوارم اکنون متوجه شده باشید که OTP چیست و چگونه می‌توانیم برای کار OTP Verification ، یک اپلیکیشن ایجاد کنیم. حال بیایید مراحل ذکر شده در بالا را برای ساخت یک اپلیکیشن OTP Verification ، به طور عملی دنبال کنیم. من با وارد کردن کتابخانه پایتونی که برای این کار نیاز داریم، کارم را شروع می‌کنم:

				
					import os
import math
import random
import smtplib
				
			

اکنون یک عدد تصادفی ایجاد می‌کنم و آن را در متغیری ذخیره می‌کنم که در هنگام ارسال ایمیل به کاربران، از آن استفاده خواهم کرد:

				
					digits="0123456789"
OTP=""
for i in range(6):
    OTP+=digits[math.floor(random.random()*10)]
otp = OTP + " is your OTP"
msg= otp
				
			

اکنون قبل از این‌که به کار خود ادامه دهیم، باید پسوورد برنامه گوگل خود را داشته باشید تا بتوانید با استفاده از اکانت Gmail خود ایمیل بفرستید. برای این کار، باید مراحلی را که در این‌جا ذکر شده است دنبال کنید. پس از ایجاد رمز عبور برنامه خود برای حساب Gmail ، یک key دریافت خواهید کرد. برای ارسال ایمیل به منظور OTP Verification با پایتون، آن key را کپی کرده و در کد زیر قرار دهید:

				
					s = smtplib.SMTP('smtp.gmail.com', 587)
s.starttls()
s.login("Your Gmail Account", "You app password")
emailid = input("Enter your email: ")
s.sendmail('&&&&&&&&&&&',emailid,msg)
a = input("Enter Your OTP >>: ")
if a == OTP:
    print("Verified")
else:
    print("Please Check your OTP again")
				
			
				
					Enter your email: aman@thecleverprogrammer.com
Enter Your OTP >>: 478348
Verified
				
			

هنگامی که این کد را اجرا می‌کنید، ایمیلی را وارد کنید که می‌خواهید یک OTP را با آن بفرستید و سپس OTP دریافتی را در ایمیل خود وارد کنید. این کد کاملی است که برای OTP Verification مورد استفاده قرار دادیم:

				
					import os
import math
import random
import smtplib

digits="0123456789"
OTP=""
for i in range(6):
    OTP+=digits[math.floor(random.random()*10)]
otp = OTP + " is your OTP"
msg= otp
s = smtplib.SMTP('smtp.gmail.com', 587)
s.starttls()
s.login("Your Gmail Account", "You app password")
emailid = input("Enter your email: ")
s.sendmail('&&&&&&&&&&&',emailid,msg)
a = input("Enter Your OTP >>: ")
if a == OTP:
    print("Verified")
else:
    print("Please Check your OTP again")
				
			

خلاصه

با این پروژه آموزش پایتون پیشرفته به صورت رایگان، می‌توانید یک اپلیکیشن برای OTP Verification خود ایجاد کنید. کار بعدی که می‌توانید انجام دهید، این است که از این منطق برای ایجاد همان برنامه در قالب یک رابط کاربری استفاده کنید. امیدوارم این پروژه به کار شما آمده باشد. اگر سؤالی در مورد آن داشتید، در کامنت‌ها بپرسید.

آموزش پایتون پیشرفته رایگان: استقرار چت بات

در این بخش از آموزش پایتون پیشرفته به صورت راگیان، من با هوش مصنوعی یک چت بات بسیار ساده می‌سازم. من برای استقرار چت بات و پکیج Chatterbot در پایتون، از متد flask استفاده خواهم کرد. برای ساخت و استقرار موفقیت‌آمیز یک چت بات، باید با فریم‌ورک‌های flask و HTML آشنا باشید. بله بدیهی است، شما باید نحوه کار با پایتون و از همه مهمتر کتابخانه Chatterbot را به خوبی بدانید.

قبل از ساخت و استقرار چت بات، اجازه دهید برخی از اصول اولیه را درباره «چت بات چیست و چگونه کار می‌کند»، مطرح کنیم. اگر نمی‌خواهید اصول اولیه را مرور کنید، کد کامل را برای ساخت و استقرار چت بات در انتهای این بخش برایتان قرار داده‌ایم.

چت بات چیست؟ چگونه یک چت بات راه اندازی کنیم؟

چت بات یک برنامه کامپیوتری است که برای تعامل با انسان برنامه ریزی شده است. این برنامه برای پاسخ دادن به کاربران انسانی بر اساس درخواست‌ها و مکالمات آن‌ها طراحی شده است. اگر فکر می‌کنید چت بات یک فناوری جدید است، اشتباه می‌کنید. اولین چت بات به نام Eliza ، در سال 1966 در آزمایشگاه هوش مصنوعی MIT توسط جوزف وایزنبام ساخته شد تا مکالمات انسانی را تقلید کند.

اکنون، قبل از ساخت و استقرار چت بات، باید بدانید که کتابخانه chatterbot چیست. زیرا من برای ساخت چت بات خود، از این کتابخانه استفاده خواهم کرد.

کتابخانه Chatterbot در پایتون چیست؟

Chatterbot یک کتابخانه پایتون است که برای کاربران پاسخ تولید می‌کند. این کتابخانه از الگوریتم‌های یادگیری ماشین از پیش آموزش دیده برای ارائه پاسخ‌های متنوع استفاده می‌نماید. ایجاد چت بات با استفاده از کتابخانه chatterbot در پایتون، کار سختی نیست. چت بات باید طوری طراحی شود که مستقل از زبان باشد، چرا که باید آموزش‌های مختلفی را دریافت کند. چت بات از داده‌های ارائه شده توسط کاربر تشکیل شده است.

چگونه چت بات خود را راه اندازی کنیم؟

در پایتون، ما Flask را داریم که در تسک‌های توسعه وب برای هر برنامه‌ای مفید است. از آن‌جایی که من قصد داریم چت بات خود را به عنوان یک وب اپلیکیشن مستقر کنم، امکان استقرار آن بدون استفاده از HTML و CSS وجود ندارد، زیرا این‌ها دو پکیج اصلی برای تسک‌های توسعه وب هستند. بنابراین اگر قصد دارید به عنوان یک توسعه دهنده چت بات مشغول به کار شوید، به شما توصیه می‌کنم HTML و CSS را هم یاد بگیرید.

حالا بیایید برای ساخت و استقرار یک چت بات، شروع به کدنویسی کنیم. من با بخش HTML و CSS شروع می‌کنم، زیرا به عنوان پایه‌ای برای چت بات ما کار می‌کند. بدون پایه، ما نمی‌توانیم پروژه‌ای را شروع کنیم. خب، حالا کدنویسی را آغاز کنیم:

index.html

				
					<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
    <link rel="stylesheet" href="/static/style.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
    <h1 class="jumbotron text-center">AI Chatbot with Python</h1>
<div class="container">
    <div class="row">
        <div class="col-sm-6 offset-sm-3">
            <div id="chatbox" class="border border-success">
                <p class="botText"><span>Hi! I'm Chatterbot</span></p>
            </div>
            <div id="userInput">
                <input id="textInput" class="form-control" type="text" name="msg" placeholder="Type Your Message Here">
                <input id="buttonInput" class="btn btn-success form-control" type="submit" value="Send">
            </div>
        </div>
    </div>

<script>
    function getResponse() {
        let userText = $("#textInput").val();
        let userHtml = '<p class="userText"><span>' + userText + '</span></p>';
        $("#textInput").val("");
        $("#chatbox").append(userHtml);
        document.getElementById('userInput').scrollIntoView({block: 'start', behavior: 'smooth'});
        $.get("/get", { msg: userText }).done(function(data) {
        var botHtml = '<p class="botText"><span>' + data + '</span></p>';
        $("#chatbox").append(botHtml);
        document.getElementById('userInput').scrollIntoView({block: 'start', behavior: 'smooth'});
});
}
    $("#textInput").keypress(function(e) {
    //if enter key is pressed
        if(e.which == 13) {
            getResponse();
        }
    });
    $("#buttonInput").click(function() {
        getResponse();
    });
				
			

style.css

				
					#textInput {
    border: none;
    border-bottom: 3px solid aqua;
}

.userText {
    color: white;
    font-family: monospace;
    font-size: 17px;
    text-align: right;
    line-height: 30px;
}
.userText span {
    background-color: #009688;
    padding: 10px;
    border-radius: 2px;
}
.botText {
    color: white;
    font-family: monospace;
    font-size: 17px;
    text-align: left;
    line-height: 30px;
}
.botText span {
    bac
				
			

app.py

				
					#imports
from flask import Flask, render_template, request
from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer

app = Flask(__name__)
#create chatbot
englishBot = ChatBot("Chatterbot", storage_adapter="chatterbot.storage.SQLStorageAdapter")
trainer = ChatterBotCorpusTrainer(englishBot)
trainer.train("chatterbot.corpus.english") #train the chatter bot for english

#define app routes
@app.route("/")
def index():
    return render_template("index.html")

@app.route("/get")
#function for the bot response
def get_bot_response():
    userText = request.args.get('msg')
    return str(englishBot.get_response(userText))

if __name__ == "__main__":
    app.run()
				
			
چت بات نوشته شده با پایتون

قبل از اجرای app.py ، مطمئن شوید که همه فایل‌ها را در یک دایرکتوری قرار داده‌اید. خروجی چت بات بسیار خوب است. گاهی اوقات نتایج نادرستی را مشاهده می‌کنید، اما اغلب اوقات به خوبی کار می‌کنید.

شما می‌توانید بیشتر روی چت بات کار کنید. بخش HTML و CSS یکسان باقی می‌ماند، و از این بابت می‌توانید با خیال راحت چت بات خود را بهتر کنید. امیدوارم این پروژه آموزش پایتون پیشرفته رایگان در مورد ساخت و استقرار چت بات، مورد پسند شما قرار گرفته باشد. همچنین می‌توانید هر سؤالی داشتید، در بخش کامنت‌ها بپرسید.

آموزش پایتون پیشرفته رایگان: ربات تلگرام

ربات (bot) یک برنامه نرم افزاری است که برای انجام وظایف خاصی برنامه ریزی می‌شود. ربات‌ها اتوماتیک هستند، به این معنی که بدون نیاز به راه اندازی توسط کاربر انسانی، طبق دستورالعمل‌های از پیش تعیین شده کار می‌نمایند و اغلب رفتار یک کاربر انسانی را تقلید می‌کنند. در این بخش از آموزش پایتون پیشرفته رایگان، با استفاده از API تلگرام و زبان برنامه نویسی پایتون، یک ربات تلگرام ایجاد می‌کنیم.

برای ساخت ربات تلگرام با پایتون، باید مراحلی را طی کنید تا API ربات تلگرام را از اکانت BotFather در تلگرام دریافت کنید. BotFather یک ربات است که با ارائه یک API منحصر به فرد، به ایجاد ربات‌های بیشتر کمک می‌کند. بنابراین قبل از استفاده از پایتون برای ایجاد ربات تلگرام خود، باید مراحلی را برای دریافت API طی کنید.

مراحل دریافت API از تلگرام

اگر در تلگرام اکانت ندارید، در این شبکه اجتماعی یک اکانت بسازید. پس از ساخت اکانت، BotFather را سرچ کنید که یک ربات رسمی تلگرام است و برای ایجاد ربات‌های بیشتر، API تلگرام را ارائه می‌دهد. وقتی صفحه چت خود با این ربات را باز کردید، فقط بنویسید start/ و ارسال کنید. BotFather با یک متن طولانی به شما پاسخ می‌دهد. سپس شما می‌توانید Newbot را تایپ کنید.

این ربات دوباره با یک متن طولانی به شما پاسخ می‌دهد و از شما یک نام خوب برای رباتتان درخواست می‌کند. می‌توانید هر نامی را روی آن بگذارید. مرحله بعدی این است که یک نام کاربری به ربات خود بدهید که باید در فرمت Namebot یا Name_bot باشد. نکته اصلی که در این مرحله باید به آن توجه کنید، این است که نام کاربری شما باید یک نام منحصر به فرد بوده و نباید با نام کاربری دیگری در سراسر جهان یکی باشد.

اکنون پس از تایپ یک نام کاربری منحصر به فرد، BotFather بین پیام طولانی خود یک API key برای شما ارسال می‌کند. شما باید آن نام کاربری را کپی کرده و با پایتون شروع به کار کنید.

ساخت ربات تلگرام با پایتون

اکنون که ما API key را برای ساخت ربات تلگرام خود داریم، قدم بعدی نصب پکیجی به نام telegram است که با استفاده از دستور pip در command prompt یا terminal شما به راحتی قابل نصب است:

				
					pip install python-telegram-bot
				
			

پس از نصب موفقیت آمیز پکیج، در این آموزش پایتون پیشرفته رایگان، باید پکیج‌های مورد نیاز را وارد کنیم و شروع به ساخت ربات تلگرام کنیم. ما برای این کار فقط به پکیج telegram نیاز داریم. من آن را وارد کرده و برنامه خود را برای خواندن API key آماده می‌کنم:

				
					import telegram
bot = telegram.bot(token='TOKEN') #Replace TOKEN with your token string
				
			

اکنون که همه چیز کار می‌کند، بیایید به سنت‌های پایتون برگردیم و یک برنامه Hello World ایجاد کنیم. من در اینجا چت بات خود را با دستوری برنامه‌ریزی می‌کنم که ربات تلگرام ما آن را با پیام Hello World پاسخ دهد:

				
					from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
updater = Updater(token='TOKEN', use_context=True) #Replace TOKEN with your token string
dispatcher = updater.dispatcher
				
			

حالا بیایید یک تابع hello ایجاد کنیم که پیام متنی مورد نظر را از طریق ربات ارسال می‌کند:

				
					def hello(update, context):
    context.bot.send_message(chat_id=update.effective_chat.id, text='Hello, World')
				
			

حالا از یک CommandHandler استفاده می‌کنیم و آن را در dispatcher رجسیتر می‌کنیم. به طور اساسی، اکنون باید دستور hello/ را با تابع ()hello پیوند دهیم:

				
					
hello_handler = CommandHandler('hello', hello)
dispatcher.add_handler(hello_handler)
				
			

و تمام! برای شروع کار با ربات، این کد را در انتهای فایل اضافه کنید:

				
					updater.start_polling()

				
			

اکنون کد را اجرا کنید و در پیام رسان تلگرام خود، وارد ربات شوید. در آن بنویسید: /hello. و ربات پاسخ شما را با متن Hello World خواهد داد.

آموزش پایتون پیشرفته رایگان: ساخت ربات تلگرام COVID-19 با پایتون

اکنون بیایید در این آموزش پایتون پیشرفته رایگان  خود را بسازیم تا اطلاعات مربوط به کووید-19 را به دست آوریم. کدنویسی برای ساخت این ربات، باعث می‌شود بتوانیم از یک متن ساده نتیجه بگیریم. اکنون در این‌جا، شما باید دو ماژول وارد کنید که به عنوان requests و json شناخته می‌شوند. حالا بیایید این دو ماژول را وارد کنیم و با پایتون یک ربات تلگرام کووید-19 بسازیم:

				
					import requests
import json
def summary(update, context):
    response = requests.get('https://api.covid19api.com/summary')
    if(response.status_code==200): #Everything went okay, we have the data
        data = response.json()
        print(data['Global'])
        context.bot.send_message(chat_id=update.effective_chat.id, text=data['Global'])
    else: #something went wrong
        context.bot.send_message(chat_id=update.effective_chat.id, text="Error, something went wrong.")
​
corona_summary_handler = CommandHandler('summary', summary)
dispatcher.add_handler(corona_summary_handler)
				
			
آموزش پایتون پیشرفته رایگان: ربات تلگرام

آموزش پیشرفته پایتون رایگان: اسکرپینگ داده‌های توییتر (Twitter Scraping)

در این بخش از آموزش پیشرفته پایتون رایگان، با استفاده از ماژول twint پایتون و بدون استفاده از API ، شما را راهنمایی می‌کنم که برخی از روابط را بر اساس فالووینگ‌ها و منشن‌ها در میان گروهی از کاربران توییتر، تحلیل کنید.

یکی از موضوعات داغ در علم داده، تجزیه و تحلیل رسانه‌های اجتماعی است. مردم این تحلیل‌ها را دوست دارند، چرا که صحبت درباره سلبریتی‌هایی است که همه دنیا آن‌ها را می‌شناسند. ما هر روز وقت زیادی را در توییتر، ایستاگرام، فیسبوک و دیگر برنامه‌های رسانه اجتماعی می‌گذرانیم و انجام دادن چنین پروژه‌ای، قطعاً جالب خواهد بود. استفاده از تحلیل رسانه‌های اجتماعی بیشتر در تسک‌های تحلیل روابط استفاده می‌شود، و نه تنها با اسکرپینگ توییتر به وسیله پایتون، بلکه برخی از این تجزیه و تحلیل‌ها بر اساس داده‌های حذف شده انجام خواهند شد.

اسکرپینگ توییتر با پایتون چگونه انجام می‌گیرد؟

حالا بیایید این آموزش پایتون پیشرفته رایگان را شروع کنیم. برای اسکرپینگ توییتر با پایتون، باید پکیجی به نام twint را نصب کنیم که با استفاده از دستور pip ، به راحتی در ترمینال شما قابل نصب است:

				
					pip install twint
				
			

اگر این کتابخانه را نصب کرده‌اید، بیایید پکیج‌های لازم را وارد کرده و اسکرپینگ توییتر با پایتون را شروع کنیم:

				
					import twint
import pandas as pd
from collections import Counter
				
			

پس از وارد کردن کتابخانه‌های لازم، اکنون باید یک لیست کاربری متشکل از اکانت‌های توییتر بسازیم. ما روابط بین اکانت‌های توییتر این افراد را تجزیه و تحلیل خواهیم کرد:

				
					users = [
    'shakira',
    'KimKardashian',
    'rihanna',
    'jtimberlake',
    'KingJames',
    'neymarjr',
]
				
			

من کاربران محبوب توییتر را انتخاب کرده‌ام. چرا که همه آن‌ها را می‌شناسند و تحلیل ما جالب‌تر می‌شود.

اسکرپینگ توییتر با تجزیه و تحلیل روابط

حالا بیایید اسکرپینگ توییتر در این آموزش پایتون پیشرفته رایگان را شروع کنیم. برای تجزیه و تحلیل روابط بین تمام اکانت‌های توییتر در لیست بالا، تابعی به نام get_followings می‌نویسیم که درخواستی را با نام کاربری به کتابخانه twint ارسال می‌کند. این تابع لیستی از کاربرانی که کاربر ورودی ما فالو کرده است، برمی‌گرداند:

				
					def get_followings(username):

    c = twint.Config()
    c.Username = username
    c.Pandas = True

    twint.run.Following(c)
    list_of_followings = twint.storage.panda.Follow_df

    return list_of_followings['following'][username]
				
			

حلقه for زیر دو متغیر ایجاد می‌کند، زیرا گاهی اوقات زمانی که توییتر به درخواست ما پاسخ نمی‌دهد، index error دریافت می‌کنیم. برای چنین مواردی، من یک exception به کد اضافه کردم تا این کاربران را ignore کنم:

				
					followings = {}
following_list = []
for person in users:
    print('#####\nStarting: ' + person + '\n#####')
    try:
        followings[person] = get_followings(person)
        following_list = following_list + followings[person]
    except KeyError:
        print('IndexError')
				
			

پس از دریافت تمام لیست‌های زیر، می‌توانیم رایج‌ترین مقادیر را در متغیر following_list محاسبه کنیم تا محبوب‌ترین اکانت‌ها را در بین کاربران خود به دست آوریم. برای دریافت 10 اکانت با بیشترین فالوور، از تابع Counter از کتابخانه collection استفاده می‌کنیم:

				
					Counter(following_list).most_common(10)

				
			

اگر بخواهیم ببینیم در گروه کاربری ما، چه کسی چه کسی را فالو می‌کند چه؟ برای این کار در آموزش پایتون پیشرفته رایگان، من یک حلقه for نوشتم که بررسی می‌کند کدام یک از کاربران در فالووینگ لیست کاربر دیگر قرار دارد. در نتیجه، یک list dictionary ایجاد می‌کند که حه حالت‌های فالووینگ را با True و False نمایش می‌دهد:

				
					follow_relations ={}
for following_user in followings.keys():
    follow_relation_list = []
    for followed_user in followings.keys():
        if followed_user in followings[following_user]:
            follow_relation_list.append(True)
        else:
            follow_relation_list.append(False)
    follow_relations[following_user] = follow_relation_list
				
			

در کد زیر، dictionary به دست آمده برای تجسم کاربرپسندتر به یک dataframe در pandas تبدیل شده است. سطرهای dataframe کاربرانی را که فالو کرده‌اند، و ستون‌ها کاربرانی را که فالو شده‌اند، نشان می‌دهند:

				
					following_df = pd.DataFrame.from_dict(follow_relations, 
                                      orient='index', columns=followings.keys())
following_df
				
			
اسکرپینگ توییتر

شما می‌توانید خروجی آنالیز ما را در بالا مشاهده کنید. ما در این‌جا می‌توانیم محبوبیت ریحانا را بین کاربران این جدول تأیید کنیم. زیرا تمام افراد دیگر او را فالو می‌کنند. این موضوع درباره کیم کارداشیان صدق نمی‌کند. زیرا طبق تحلیل‌ها، در گروه کاربری ما فقط جاستین تیمبرلیک او را فالو کرده است.

آموزش پیشرفته پایتون رایگان: تبدیل متن به گفتار

تبدیل متن به گفتار، فرآیند تبدیل صدای ترکیب‌شده (Synthesized) با متن است. این فناوری برای برقراری ارتباط با کاربران در زمانی که خواندن از روی صفحه نمایش امکان‌پذیر نیست، استفاده می‌شود. این امکان نه تنها استفاده از برنامه‌ها و اطلاعات را به روش‌های جدیدی امکان‌پذیر می‌کند، بلکه می‌تواند جهان را برای افرادی که نمی‌توانند متن را از روی صفحه بخوانند، دسترس‌پذیرتر کند. در این بخش از آموزش پیشرفته پایتون رایگان، من شما را با ساخت TTS با پایتون آشنا می‌کنم.

فناوری پشت صحنه TTS طی چند دهه گذشته تکامل یافته است. امروزه با استفاده از پردازش زبان طبیعی، می‌توان گفتار بسیار طبیعی تولید کرد که شامل تغییرات در زیر و بم صدا، سرعت، تلفظ و صرف زبان است.

تبدیل متن به گفتار با پایتون چگونه انجام می‌شود؟

من کارم را به سادگی با وارد کردن تمام کتابخانه‌های لازم برای این کار شروع می‌کنم. این کتابخانه‌ها در راستای ایجاد برنامه‌ای کار می‌کنند که متن یک مقاله را آنلاین کرده و آن را به گفتار تبدیل می‌کنند:

				
					#Import the libraries
from newspaper import Article
import nltk
from gtts import gTTS
import os
				
			

اگر در وارد کردن کتابخانه‌ها با error مواجه شدید، احتمالاً هیچ کدام از آن‌ها را نصب نکرده‌اید. شما می‌توانید هر کتابخانه‌ای را در پایتون با نوشتن این دستور بسیار ساده در ترمینال خود، نصب کنید:

				
					pip install package name
				
			

پس از نصب و وارد کردن تمام کتابخانه‌ها، باید یک مقاله از منابع آنلاین دریافت کنیم تا بتوانیم برای تبدیل متن به گفتار از آن مقاله، برنامه‌ای ایجاد کنیم:

				
					#Get the article
article = Article('https://hackernoon.com/future-of-python-language-bright-or-dull-uv41u3xwx')
				
			

حالا بیایید مقاله را دانلود و Parse کنیم:

				
					article.download()
article.parse()
				
			

اجرای برنامه متن به گفتار

اکنون ما مقاله را از متن به گفتار تبدیل کرده‌ایم. در نتیجه، مرحله بعدی ذخیره این گفتار در یک فایل mp3 است:

اکنون باید پکیج punkt را دانلود کنید. اگر قبلاً آن را دانلود کرده باشید، قبل از دانلود به شما یادآوری می‌کند که از قبل در سیستم شما موجود است. پس از دانلود پکیج punkt ، پردازش زبان طبیعی را روی آن اعمال می‌کنیم:

				
					nltk.download('punkt')
article.nlp()
				
			

اکنون یک متغیر برای ذخیره مقاله تعریف می‌کنم:

				
					#Get the articles text
mytext = article.text
				
			

حالا باید زبان گفتار را انتخاب کنیم. توجه داشته باشید en به معنای انگلیسی و مثلاً pt-br به معنای پرتغالی است. موارد دیگری هم وجود دارند:

				
					language = 'en' #English

				
			

حال باید متن و زبان را به موتور منتقل کنیم تا متن را به گفتار تبدیل کرده و در یک متغیر ذخیره کنیم. slow را به عنوان False علامت‌گذاری کنید تا به plug-in بگویید که صدای تبدیل شده باید سرعت بالایی داشته باشد:

				
					myobj = gTTS(text=mytext, lang=language, slow=False)

				
			

اجرای برنامه متن به گفتار

اکنون ما مقاله را از متن به گفتار تبدیل کرده‌ایم. در نتیجه، مرحله بعدی ذخیره این گفتار در یک فایل mp3 است:

				
					myobj.save("read_article.mp3")

				
			

حالا بیایید فایل صوتی تبدیل شده را در با استفاده از دستور start در ویندوز و سپس نام فایل mp3 پخش کنیم:

				
					os.system("start read_article.mp3")

				
			

امیدوارم این آموزش پیشرفته پایتون رایگان در مورد تبدیل متن به گفتار، مورد پسند شما واقع شده باشد. اگر سؤالی بود، آن را در بخش کامنت‌ها بپرسید.

{{ reviewsTotal }}{{ options.labels.singularReviewCountLabel }}
{{ reviewsTotal }}{{ options.labels.pluralReviewCountLabel }}
{{ options.labels.newReviewButton }}
{{ userData.canReview.message }}
X