PyKadeh
72 subscribers
23 photos
6 videos
12 links
💻 توسعه‌دهنده پایتون و راهکارهای هوشمند
🏢 GoDaddy

🔹 تخصص: Deep Learning & Machine Learning 🔹 فریم‌ورک‌ها: TensorFlow | PyTorch | Django 🔹 طراحی سیستم‌های مقیاس‌پذیر و ربات‌های پیشرفته

ارتباط: @ITheEqualizer
Download Telegram
مدل های یادگیری ماشین گستردگی خیلی زیادی دارند

گاهی اوقات از من سوال پرسیده میشه که کدام مدل رو فقط یاد بگیریم چون می‌خوایم روی یکی سرمایه‌گذاری کنیم فقط.

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

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

با استفاده از کتابخونه‌ی numerizer می‌تونید عددهایی که به صورت متنی نوشته شدن (مثل four hundred and sixty one) رو به عدد واقعی تبدیل کنید 🔥

مثلاً:
from numerizer import numerize

print(numerize('four hundred and sixty one'))
# '461'

print(numerize('four hundred sixty one'))
# '461'

print(numerize('four sixty one'))
# '461'

print(numerize('four sixty-one'))
# '461'

📘 این کتابخونه به‌صورت خودکار انواع حالت‌های نوشتاری عددها رو تشخیص میده و اون‌ها رو به عدد صحیح تبدیل می‌کنه.
خیلی کاربردیه وقتی کارتون با پردازش متن (NLP) یا ورود داده‌های متنی هست.

کتابخونه‌ی numerizer فقط با عددهای انگلیسی کار می‌کنه (مثل “four hundred and sixty one”)
ولی برای اعداد فارسی یا متنی فارسی (مثل «چهارصد و شصت و یک») هنوز کتابخونه‌ی مستقیمی مثل numerizer وجود نداره که دقیق و کامل کار کنه.
با این حال، چند تا روش و راه‌حل کاربردی هست:

🧩 روش ۱: استفاده از کتابخونه‌ی آماده برای فارسی
pip install text2numfa

سپس:
from text2numfa import text2num

print(text2num("چهارصد و شصت و یک")) # 461
print(text2num("دوازده هزار و پانصد و چهل")) # 12540

پشتیبانی از اعداد فارسی
دقیق و ساده
نسبتاً کمتر شناخته‌شده و ممکنه در بعضی حالت‌ها خطا بده

🧩 روش ۲: استفاده از مدل‌های NLP (اگر خواستی هوشمندتر باشه)
مثلاً با مدل‌های فارسی HuggingFace می‌تونی متن رو تجزیه و معنی عدد رو پیدا کنی، ولی این برای پروژه‌های پیشرفته‌تره (مثلاً چت‌بات یا پردازش زبان طبیعی).

🧩 روش ۳: ساخت تابع ساده خودت
برای پروژه‌های کوچک، می‌تونی خودت یک دیکشنری بنویسی:
numbers = {
"یک": 1, "دو": 2, "سه": 3, "چهار": 4, "پنج": 5,
"شش": 6, "هفت": 7, "هشت": 8, "نه": 9, "ده": 10,
"صد": 100, "هزار": 1000
}

def text_to_num_fa(text):
parts = text.split(" و ")
total = 0
for part in parts:
for key, value in numbers.items():
if key in part:
total += value
return total

print(text_to_num_fa("چهارصد و شصت و یک"))

البته این نسخه‌ی ساده است و میشه خیلی حرفه‌ای‌ترش کرد تا عددهای ترکیبی رو درست محاسبه کنه.
1
This media is not supported in your browser
VIEW IN TELEGRAM
نسخه اولیه چت بات پشتیبانی

به زودی در قالب یک پروژه جنگو به صورت اوپن سورس، منتشر خواهد شد.

روی ویدئو زوم کنید، مک خیلی‌ دردسر داره برای ضبط. 🥱
21
چت بات هوشمند با استفاده از fasttext embedding منتشر شد

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

ضمناً چون مدل local هست، هزینه‌ای هم نداره.

https://github.com/ITheEqualizer/Chatbot
51
چت بات بروزرسانی و زبان فارسی اضافه شد

همچنین توضیحات فارسی کامل به ریپو اضافه شد.
برای پیش پردازش از hazm استفاده شده و همچنین نرمالایز بسیار کاملی انجام میشه، مثلاً سلااااااااااام تبدیل به سلام میشه و بعد از اون توسط hazm پردازش میشه.

https://github.com/ITheEqualizer/Chatbot
73
هوش مصنوعی، در ساده‌ترین تعریف، ترکیبی از علم داده، ریاضیات، و علوم کامپیوتر است که هدف آن ساخت سیستم‌هایی است که بتوانند درک، استدلال، و تصمیم‌گیری خودکار انجام دهند.
اما در لایه‌های عمیق‌تر، هوش مصنوعی دیگر فقط “برنامه‌نویسی ماشینی” نیست؛ بلکه شامل مدل‌هایی است که از داده‌ها می‌آموزند و خود را با شرایط جدید تطبیق می‌دهند — همان چیزی که به آن یادگیری ماشین (Machine Learning) گفته می‌شود.

یادگیری ماشین: مغز متفکر هوش مصنوعی

در یادگیری ماشین، به جای اینکه به کامپیوتر بگوییم “چطور کاری را انجام دهد”، فقط به آن “داده” و “نتیجه” را نشان می‌دهیم تا خودش الگوها را پیدا کند.
سه رویکرد اصلی در یادگیری ماشین وجود دارد:

یادگیری نظارت‌شده (Supervised Learning):
مدل با داده‌های برچسب‌دار آموزش می‌بیند. مثال: تشخیص ایمیل اسپم یا غیر اسپم.

یادگیری بدون نظارت (Unsupervised Learning):
مدل سعی می‌کند ساختار پنهان داده‌ها را کشف کند. مثال: خوشه‌بندی مشتریان بر اساس رفتار خرید.

یادگیری تقویتی (Reinforcement Learning):
سیستم از طریق آزمون و خطا و دریافت پاداش یا جریمه، راه‌حل بهینه را یاد می‌گیرد. مثال: رباتی که یاد می‌گیرد در محیطی ناشناخته حرکت کند.

یادگیری عمیق (Deep Learning): الهام از مغز انسان

یادگیری عمیق یکی از شاخه‌های پیشرفته‌تر یادگیری ماشین است که از شبکه‌های عصبی مصنوعی (Neural Networks) استفاده می‌کند.
این شبکه‌ها از لایه‌های متعدد تشکیل شده‌اند و می‌توانند الگوهای پیچیده‌ای را در داده‌ها تشخیص دهند.
مدل‌های بزرگ زبانی (مثل ChatGPT) یا سیستم‌های بینایی ماشین (مثل تشخیص چهره) بر پایه‌ی همین معماری‌ها ساخته شده‌اند.

مدل‌های زبانی و انقلاب در پردازش متن

در چند سال اخیر، مدل‌های زبانی بزرگ (Large Language Models) مانند GPT و BERT، مفهوم «درک زبان طبیعی» را دگرگون کرده‌اند.
این مدل‌ها با میلیاردها پارامتر آموزش می‌بینند و قادرند متن تولید کنند، سوال پاسخ دهند، کد بنویسند و حتی منطق زبانی را تقلید کنند.
قدرت این مدل‌ها از پیش‌پردازش عظیم داده‌های متنی و معماری ترنسفورمر (Transformer) ناشی می‌شود که ساختار جمله را در سطح معنا و بافت تحلیل می‌کند.

چالش‌ها و دغدغه‌های اخلاقی

در کنار پیشرفت‌ها، چالش‌های مهمی هم وجود دارد:

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

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

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

آینده‌ی هوش مصنوعی: همزیستی انسان و ماشین

در آینده، تمرکز اصلی از “خودکارسازی کامل” به سمت “هم‌افزایی انسان و ماشین” پیش می‌رود.
مدل‌های هوش مصنوعی قرار نیست جایگزین انسان شوند، بلکه قرار است ابزارهایی برای تقویت توان ذهنی، خلاقیت و تصمیم‌گیری انسان باشند.
در واقع، متخصصان آینده کسانی خواهند بود که می‌دانند چطور با هوش مصنوعی همکاری کنند، نه صرفاً از آن استفاده.
🎯 پروژه جدید من: بینایی ماشین با یادگیری عمیق (Computer Vision)

توی این پروژه با استفاده از شبکه‌ عصبی کانولوشنی (CNN)، مدلی ساختم که می‌تونه اشیاء رو از روی تصاویر تشخیص بده 📸🧠

چند تا نکته دربارهٔ پروژه:
- از TensorFlow و Keras استفاده کردم
- مدل آموزش‌دیده ذخیره میشه و قابل استفاده مجدد هست
- روی دیتاست CIFAR-10 تست شده
- دقت مدل بالای ۸۵٪ به دست اومده 💪

📎 سورس کامل پروژه روی گیت‌هاب:
🔗 github.com/ITheEqualizer/Computer-Vision
2
زمان جنگ جهانی دوم، گروهی از پژوهشگران مأمور شدند تا راهی برای افزایش دوام هواپیماهای جنگی پیدا کنند.
آن‌ها هواپیماهایی را بررسی کردند که از جنگ برگشته بودند. بیشتر گلوله‌ها روی بال‌ها و دم هواپیما دیده می‌شد.
پیشنهاد اولیه این بود که همین بخش‌ها باید تقویت شوند.

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

این داستان یک نمونه کلاسیک از «بایاس بقا»ست.
ما اغلب فقط بازمانده‌ها را می‌بینیم و فراموش می‌کنیم آن‌هایی که شکست خورده‌اند، دیگر پیش چشم ما نیستند.

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


نکته جالب‌ اینه که این ایده 30 میلیون دلار فاند گرفته!

حالا پشت زمینه این ایده چیه؟ یه پرامپت با یه عکس بفرست برای ChatGPT و خروجی بگیر! یعنی کل کاری که کرده اینه که پرامپت مناسب این کار رو پیدا کرده و تو اپلیکیشنش استفاده کرده!
📚 آشنایی با کتابخانه‌ی datetime در پایتون
اگر با زمان و تاریخ سروکار داری (مثل ثبت لاگ‌ها، زمان‌بندی کارها یا ساخت تایمرها)، کتابخانه‌ی قدرتمند و داخلی datetime یکی از دوست‌داشتنی‌ترین ابزارهای پایتونه!

بیاید چند تا مثال ساده ولی مفید ببینیم 👇

🕒 به‌دست آوردن زمان و تاریخ فعلی:
from datetime import datetime

now = datetime.now()
print(now)
# خروجی مثل: 2025-11-11 14:35:22.456789


📆 فقط تاریخ یا فقط ساعت:
print(now.date())  # خروجی: 2025-11-11
print(now.time()) # خروجی: 14:35:22.456789


ساخت زمان دلخواه:
birthday = datetime(1998, 7, 21, 9, 30)
print(birthday)
# 1998-07-21 09:30:00


🧮 محاسبه فاصله بین دو تاریخ:
from datetime import date

start = date(2025, 1, 1)
end = date(2025, 11, 11)
delta = end - start
print(delta.days) # خروجی: 314


🧠 نکته کاربردی:
برای تبدیل زمان به فرمت دلخواه از متد strftime() استفاده کن:
print(now.strftime("%d/%m/%Y %H:%M"))
# خروجی: 11/11/2025 14:35


خلاصه:
کتابخانه‌ی datetime به‌صورت پیش‌فرض در پایتون نصب شده و برای هر نوع کار با زمان، تاریخ و فاصله بین آن‌ها فوق‌العاده کاربردی است.a

#پایتون #آموزش_پایتون #datetime #ترفند_کدنویسی
91
خیلی جالبه که به محض اینکه API سایتم رو راه اندازی کردم، چند دقیقه بعد سرویس CloudFlare از دسترس خارج شد.

شرمنده ام کلودفلر جان...
163
🔴 قطعی تاریخی کلودفلر – ۱۸ نوامبر ۲۰۲۵ (۲۷ آبان ۱۴۰۴)
یکی از بزرگ‌ترین قطعی‌های تاریخ اینترنت
رخ داد!


از حدود ۱۴:۵۰ به وقت ایران، میلیون‌ها سایت و سرویس معروف (از جمله X، ChatGPT، Discord، Spotify، Grindr و …) همزمان داون شدند.

مدت قطعی اصلی: بیش از ۳ ساعت
بدترین قطعی کلودفلر از سال ۲۰۱۹ تا حالا
علت واقعی (طبق گزارش رسمی کلودفلر): یک تغییر ساده در مجوزهای دسترسی دیتابیس ClickHouse → کوئری هر ۵ دقیقه یک‌بار شروع به تولید ردیف‌های تکراری کرد → فایل پیکربندی Bot Management از ۶۰ فیچر به بیش از ۵۰۰ فیچر باد کرد → فایل غول‌آسا به تمام سرورهای جهانی پخش شد → نرم‌افزار اصلی (نوشته‌شده با Rust) پنیک کرد و خطای ۵xx داد.

جالبه که اول فکر کردن حمله DDoS عظیمه، چون مشکل متناوب بود!
سرویس‌های آسیب‌دیده:
بخش CDN و امنیت اصلی
بخش های Turnstile، Workers KV
داشبورد و لاگین کاربران
همچنین Cloudflare Access و WARP
حتی صفحه وضعیت خودشون هم داون شد!

راه‌حل: برگرداندن نسخه قدیمی فایل + پچ فوری کد
کلودفلر قول داده:
اعتبارسنجی سخت‌گیرانه‌تر فایل‌های پیکربندی
محدودیت سخت روی اندازه فایل‌ها
تست‌های بهتر قبل از rollout

این قطعی نشون داد چقدر اینترنت امروز به چند شرکت معدود وابسته‌ست؛ یک باگ ساده داخلی می‌تونه نصف دنیا رو فلج کنه!

پست‌مورتِم رسمی:
https://blog.cloudflare.com/18-november-2025-outage/

#کلودفلر #قطعی_اینترنت #CloudflareOutage
7
Channel photo updated
🚀 راه‌اندازی API وب‌سایت AliZakaee.ir

بالاخره API رسمی وب‌سایتم رو راه‌اندازی کردم!
از این به بعد می‌تونید به‌صورت مستقیم و از طریق درخواست‌های JSON به محتوای بلاگ دسترسی داشته باشید.

🔗 آدرس اصلی API:
https://alizakaee.ir/api/

📌 لیست پست‌ها:
https://alizakaee.ir/api/posts/

این API با Django REST Framework ساخته شده و فعلاً به صورت عمومی و Read-Only در دسترسه.
هدفم اینه که توسعه‌دهنده‌ها و کسایی که می‌خوان داده‌های بلاگ رو توی اپلیکیشن‌ها یا سرویس‌های خودشون استفاده کنن، بتونن خیلی راحت بهش متصل بشن.

در پست جدید بلاگم، کامل توضیح دادم که API چطور کار می‌کنه، چه فیلدهایی برمی‌گردونه، و چطور می‌شه ازش استفاده کرد.
👇 می‌تونید از لینک زیر مطالعه کنید:

🌐 لینک پست بلاگ:

https://alizakaee.ir/blog/%D8%B1%D8%A7%D9%87%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C-api-%D9%88%D8%A8%D8%B3%D8%A7%DB%8C%D8%AA-alizakaeeir/
7
Channel photo updated
از شدت خستگی و بی حوصلگی برای تست نوشتن و همین‌طور برای بررسی کردن اینکه کیفیت تست نویسی Claude Sonnet 4.5 چطور هستش، ازش خواستم برام تست بنویسه با توجه به کدبیسم.

اول اینکه ٢۵٠٠ خط تست نوشت، ٢۵٠٠!
دوم اینکه به edge case هایی فکر کرد که عملاً من نمیدونستم حتی می‌تونه مشکل ایجاد کنه، خط به خط کد رو خوندم و میتونم بگم فوق‌العاده هست!

یک موردی هم که خیلی‌ شنیدم که میگن A.I. فقط تستی می‌نویسه که پس بشه، اصلاً اینطور نبود و اتفاقاً داخل ران اول، ٩تا تست فیل شد که منتهی شد به رفع مشکل کد توسط من.

خلاصه اینکه مواردی که خلاقیت دو چندان نمی‌خواد مثل تست نویسی رو بدین به A.I. چون اون هم می‌تونه خلاقیت بیشتری داشته باشه و با توجه به دایره اطلاعاتش کیس های بیشتری رو لحاظ کنه و هم اینکه در زمان شما صرفه‌جویی کنه و شما روی فیچرهای اصلی کار کنید.

و اینکه داخل پرامپتتون حتماً بیان کنید که ملاکتون صرفاً پس شدن تست ها نیست و میخواین جامع و کامل باشن و ازش بخواین کامل هم کامنت گذاری کنه.
10
در زمینه دیتای مورد نیاز برای آموزش شما همیشه دو دسته دیتا دارید، آموزش و تست
اما آیا این تقسیم بندی درسته؟

در مورد دیتای آموزش بحثی نیست و شما ازش برای آموزش مدل استفاده می‌کنید.

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

در واقع دیتای توسعه همون دیتاییه که شما ازش برای انتخاب مدل، تنظیم ابرپارامترها (hyperparameters)، جلوگیری از overfitting و تنظیم معماری استفاده می‌کنید. این دقیقاً چیزی هست که در ادبیات علمی به validation set شناخته میشه.

پس دیتای تست چی شد؟
تست عملاً اختیاری هستش و ضروری نیست و بررسی مدل بر حسب دیتای تست صرفاً برای این هست که شما بتونید بدون bias به عملکرد اون مدل پی ببرید اما زمانی که مدل شما انتخاب شده باشه با توجه به دیتای dev، شما الزاماً نیازی به دیتای تست ندارید.

به صورت علمی، دیتای تست فقط یک‌بار و در پایان فرآیند آموزش استفاده میشه تا عملکرد نهایی مدل بدون هیچ‌گونه bias ناشی از مشاهده قبلی دیتا اندازه‌گیری بشه
دلیل علمی این موضوع اینه که هرچقدر روی dev تست کنید و روی dev بهبود بدید، dev برای شما اطلاعات لیک می‌کنه (information leakage) و به مرور باعث overfitting نسبت به dev میشه. تست از این جهت ضروری نیست که روی روند آموزش نقشی نداره و فقط یک معیار نهایی برای گزارش عملکرده.

پس به صورت کلی، تقسیم بندی دیتا به دو دسته آموزش و تست یک اشتباه رایجه و درست این قضیه یا دیتای آموزش و توسعه هست یا آموزش و توسعه و تست.
3