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

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

ارتباط: @ITheEqualizer
Download Telegram
Channel created
Please open Telegram to view this post
VIEW IN TELEGRAM
Channel photo updated
پروژه ربات تلگرام تشخیص اسپم با استفاده از یادگیری ماشین تکمیل و به صورت اوپن سورس منتشر شد.

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

https://github.com/ITheEqualizer/Spam-detector-telegram-bot
1
x = "10"
y = 5
print (x * y)
1
🔥 لیست فشرده‌سازی شده (List Comprehension) در پایتون

یکی از ویژگی‌های فوق‌العاده پایتون، List Comprehension هست. این قابلیت باعث میشه بتونی در یک خط کد، لیست‌های پیچیده بسازی و کدت هم خواناتر بشه.

مثال ساده:
فرض کن می‌خوای مربع اعداد ۱ تا ۱۰ رو داخل یه لیست بریزی:
squares = [x**2 for x in range(1, 11)]
print(squares)


📌 خروجی:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

به جای نوشتن چند خط حلقه for و append، همه چیز توی یک خط نوشته شده!

عددهای زوج ۱ تا ۲۰ رو می‌خوای؟ خیلی راحت:
evens = [x for x in range(1, 21) if x % 2 == 0]
print(evens)


📌 خروجی:
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]


این ویژگی فقط برای ساخت لیست نیست؛ برای Dictionary و Set هم قابل استفاده‌ست.
1
تعویض مقدار دو متغیر در یک خط!

در بیشتر زبان‌های برنامه‌نویسی، برای جابه‌جا کردن مقدار دو متغیر باید از یه متغیر موقت استفاده کنی. مثلاً:
a = 5
b = 10

temp = a
a = b
b = temp


ولی پایتون میگه: «چرا این‌همه دردسر؟ 😏»
تو فقط بنویس:
a, b = b, a

و تمام! 🎉

📌 خروجی:
a = 10
b = 5


این سینتکس فقط برای تعویض نیست!
می‌تونی ازش برای چند انتساب (Multiple Assignment) هم استفاده کنی:
x, y, z = 1, 2, 3

یا حتی برای برگردوندن چند مقدار از یه تابع:
def get_point():
return (3, 7)

x, y = get_point()
print(x, y) # 3 7
11
مدل های یادگیری ماشین گستردگی خیلی زیادی دارند

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

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

سعی کنید در ابتدا فیلد فعالیتی خودتون رو آنالیز کنید چرا که برای هر فیلد معمولاً بیشتر از یک مدل وجود داره و شما باید با آزمون و خطا، به بهترین عملکرد دست پیدا کنید.
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