پروژه ربات تلگرام تشخیص اسپم با استفاده از یادگیری ماشین تکمیل و به صورت اوپن سورس منتشر شد.
دقت کنید که باید یک دیتاست داشته باشید چون از RL استفاده نشده ولی داخل ربات یک دستور قرار دادم برای جمعآوری دیتاست.
https://github.com/ITheEqualizer/Spam-detector-telegram-bot
دقت کنید که باید یک دیتاست داشته باشید چون از RL استفاده نشده ولی داخل ربات یک دستور قرار دادم برای جمعآوری دیتاست.
https://github.com/ITheEqualizer/Spam-detector-telegram-bot
GitHub
GitHub - ITheEqualizer/Spam-detector-telegram-bot: A telegram bot which uses machine learning to detect spam messages
A telegram bot which uses machine learning to detect spam messages - ITheEqualizer/Spam-detector-telegram-bot
❤1
🔥 لیست فشردهسازی شده (List Comprehension) در پایتون
یکی از ویژگیهای فوقالعاده پایتون، List Comprehension هست. این قابلیت باعث میشه بتونی در یک خط کد، لیستهای پیچیده بسازی و کدت هم خواناتر بشه.
مثال ساده:
فرض کن میخوای مربع اعداد ۱ تا ۱۰ رو داخل یه لیست بریزی:
📌 خروجی:
به جای نوشتن چند خط حلقه
عددهای زوج ۱ تا ۲۰ رو میخوای؟ خیلی راحت:
📌 خروجی:
✅ این ویژگی فقط برای ساخت لیست نیست؛ برای Dictionary و Set هم قابل استفادهست.
یکی از ویژگیهای فوقالعاده پایتون، 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
تعویض مقدار دو متغیر در یک خط!
در بیشتر زبانهای برنامهنویسی، برای جابهجا کردن مقدار دو متغیر باید از یه متغیر موقت استفاده کنی. مثلاً:
ولی پایتون میگه: «چرا اینهمه دردسر؟ 😏»
تو فقط بنویس:
و تمام! 🎉
📌 خروجی:
✅ این سینتکس فقط برای تعویض نیست!
میتونی ازش برای چند انتساب (Multiple Assignment) هم استفاده کنی:
یا حتی برای برگردوندن چند مقدار از یه تابع:
در بیشتر زبانهای برنامهنویسی، برای جابهجا کردن مقدار دو متغیر باید از یه متغیر موقت استفاده کنی. مثلاً:
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
1❤1
مدل های یادگیری ماشین گستردگی خیلی زیادی دارند
گاهی اوقات از من سوال پرسیده میشه که کدام مدل رو فقط یاد بگیریم چون میخوایم روی یکی سرمایهگذاری کنیم فقط.
در پاسخ به این سوال باید بگم که این مورد عملاً ممکن نیست چرا که شما نیاز به استفاده از مدل با توجه به سناریو خود دارید، مثلاً برای تشخیص بیماری امکان استفاده از رگرسیون وجود ندارد و بالعکس برای محاسبه قیمت احتمالی یک خانه، از درخت تصمیم.
سعی کنید در ابتدا فیلد فعالیتی خودتون رو آنالیز کنید چرا که برای هر فیلد معمولاً بیشتر از یک مدل وجود داره و شما باید با آزمون و خطا، به بهترین عملکرد دست پیدا کنید.
گاهی اوقات از من سوال پرسیده میشه که کدام مدل رو فقط یاد بگیریم چون میخوایم روی یکی سرمایهگذاری کنیم فقط.
در پاسخ به این سوال باید بگم که این مورد عملاً ممکن نیست چرا که شما نیاز به استفاده از مدل با توجه به سناریو خود دارید، مثلاً برای تشخیص بیماری امکان استفاده از رگرسیون وجود ندارد و بالعکس برای محاسبه قیمت احتمالی یک خانه، از درخت تصمیم.
سعی کنید در ابتدا فیلد فعالیتی خودتون رو آنالیز کنید چرا که برای هر فیلد معمولاً بیشتر از یک مدل وجود داره و شما باید با آزمون و خطا، به بهترین عملکرد دست پیدا کنید.
❤1
🔢 تبدیل عددهای نوشتهشده با حروف به عدد واقعی در پایتون!
با استفاده از کتابخونهی
مثلاً:
📘 این کتابخونه بهصورت خودکار انواع حالتهای نوشتاری عددها رو تشخیص میده و اونها رو به عدد صحیح تبدیل میکنه.
خیلی کاربردیه وقتی کارتون با پردازش متن (NLP) یا ورود دادههای متنی هست.
کتابخونهی
ولی برای اعداد فارسی یا متنی فارسی (مثل «چهارصد و شصت و یک») هنوز کتابخونهی مستقیمی مثل numerizer وجود نداره که دقیق و کامل کار کنه.
با این حال، چند تا روش و راهحل کاربردی هست:
🧩 روش ۱: استفاده از کتابخونهی آماده برای فارسی
سپس:
✅ پشتیبانی از اعداد فارسی
✅ دقیق و ساده
❌ نسبتاً کمتر شناختهشده و ممکنه در بعضی حالتها خطا بده
🧩 روش ۲: استفاده از مدلهای NLP (اگر خواستی هوشمندتر باشه)
مثلاً با مدلهای فارسی HuggingFace میتونی متن رو تجزیه و معنی عدد رو پیدا کنی، ولی این برای پروژههای پیشرفتهتره (مثلاً چتبات یا پردازش زبان طبیعی).
🧩 روش ۳: ساخت تابع ساده خودت
برای پروژههای کوچک، میتونی خودت یک دیکشنری بنویسی:
البته این نسخهی ساده است و میشه خیلی حرفهایترش کرد تا عددهای ترکیبی رو درست محاسبه کنه.
با استفاده از کتابخونهی
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
نسخه اولیه چت بات پشتیبانی
به زودی در قالب یک پروژه جنگو به صورت اوپن سورس، منتشر خواهد شد.
روی ویدئو زوم کنید، مک خیلی دردسر داره برای ضبط. 🥱
به زودی در قالب یک پروژه جنگو به صورت اوپن سورس، منتشر خواهد شد.
روی ویدئو زوم کنید، مک خیلی دردسر داره برای ضبط. 🥱
2❤1
چت بات هوشمند با استفاده از fasttext embedding منتشر شد
برای بک اند از جنگو استفاده شده و کاربر میتونه سوالات مد نظرش رو اونجا تعریف کنه و مدل سوالی که کاربر میپرسه رو با سوالاتی که وارد کردید تطبیق میده و هر کدوم شبیه تر بود، جواب رو به کاربر نشون میده.
ضمناً چون مدل local هست، هزینهای هم نداره.
https://github.com/ITheEqualizer/Chatbot
برای بک اند از جنگو استفاده شده و کاربر میتونه سوالات مد نظرش رو اونجا تعریف کنه و مدل سوالی که کاربر میپرسه رو با سوالاتی که وارد کردید تطبیق میده و هر کدوم شبیه تر بود، جواب رو به کاربر نشون میده.
ضمناً چون مدل local هست، هزینهای هم نداره.
https://github.com/ITheEqualizer/Chatbot
GitHub
GitHub - ITheEqualizer/Chatbot: A lightweight and flexible Question & Answer chatbot built with Django and powered by FastText…
A lightweight and flexible Question & Answer chatbot built with Django and powered by FastText embeddings. - ITheEqualizer/Chatbot
5❤1
PyKadeh
چت بات هوشمند با استفاده از fasttext embedding منتشر شد برای بک اند از جنگو استفاده شده و کاربر میتونه سوالات مد نظرش رو اونجا تعریف کنه و مدل سوالی که کاربر میپرسه رو با سوالاتی که وارد کردید تطبیق میده و هر کدوم شبیه تر بود، جواب رو به کاربر نشون میده.…
نسخه فارسی هم طی امروز یا فردا منتشر میشه، چون زبان فارسی یکم ریزه کاری بیشتری داره و مدل پردازشش هم حجیم تره.
❤1
چت بات بروزرسانی و زبان فارسی اضافه شد
همچنین توضیحات فارسی کامل به ریپو اضافه شد.
برای پیش پردازش از hazm استفاده شده و همچنین نرمالایز بسیار کاملی انجام میشه، مثلاً سلااااااااااام تبدیل به سلام میشه و بعد از اون توسط hazm پردازش میشه.
https://github.com/ITheEqualizer/Chatbot
همچنین توضیحات فارسی کامل به ریپو اضافه شد.
برای پیش پردازش از hazm استفاده شده و همچنین نرمالایز بسیار کاملی انجام میشه، مثلاً سلااااااااااام تبدیل به سلام میشه و بعد از اون توسط hazm پردازش میشه.
https://github.com/ITheEqualizer/Chatbot
GitHub
GitHub - ITheEqualizer/Chatbot: A lightweight and flexible Question & Answer chatbot built with Django and powered by FastText…
A lightweight and flexible Question & Answer chatbot built with Django and powered by FastText embeddings. - ITheEqualizer/Chatbot
7❤3
هوش مصنوعی، در سادهترین تعریف، ترکیبی از علم داده، ریاضیات، و علوم کامپیوتر است که هدف آن ساخت سیستمهایی است که بتوانند درک، استدلال، و تصمیمگیری خودکار انجام دهند.
اما در لایههای عمیقتر، هوش مصنوعی دیگر فقط “برنامهنویسی ماشینی” نیست؛ بلکه شامل مدلهایی است که از دادهها میآموزند و خود را با شرایط جدید تطبیق میدهند — همان چیزی که به آن یادگیری ماشین (Machine Learning) گفته میشود.
یادگیری ماشین: مغز متفکر هوش مصنوعی
در یادگیری ماشین، به جای اینکه به کامپیوتر بگوییم “چطور کاری را انجام دهد”، فقط به آن “داده” و “نتیجه” را نشان میدهیم تا خودش الگوها را پیدا کند.
سه رویکرد اصلی در یادگیری ماشین وجود دارد:
یادگیری نظارتشده (Supervised Learning):
مدل با دادههای برچسبدار آموزش میبیند. مثال: تشخیص ایمیل اسپم یا غیر اسپم.
یادگیری بدون نظارت (Unsupervised Learning):
مدل سعی میکند ساختار پنهان دادهها را کشف کند. مثال: خوشهبندی مشتریان بر اساس رفتار خرید.
یادگیری تقویتی (Reinforcement Learning):
سیستم از طریق آزمون و خطا و دریافت پاداش یا جریمه، راهحل بهینه را یاد میگیرد. مثال: رباتی که یاد میگیرد در محیطی ناشناخته حرکت کند.
یادگیری عمیق (Deep Learning): الهام از مغز انسان
یادگیری عمیق یکی از شاخههای پیشرفتهتر یادگیری ماشین است که از شبکههای عصبی مصنوعی (Neural Networks) استفاده میکند.
این شبکهها از لایههای متعدد تشکیل شدهاند و میتوانند الگوهای پیچیدهای را در دادهها تشخیص دهند.
مدلهای بزرگ زبانی (مثل ChatGPT) یا سیستمهای بینایی ماشین (مثل تشخیص چهره) بر پایهی همین معماریها ساخته شدهاند.
مدلهای زبانی و انقلاب در پردازش متن
در چند سال اخیر، مدلهای زبانی بزرگ (Large Language Models) مانند GPT و BERT، مفهوم «درک زبان طبیعی» را دگرگون کردهاند.
این مدلها با میلیاردها پارامتر آموزش میبینند و قادرند متن تولید کنند، سوال پاسخ دهند، کد بنویسند و حتی منطق زبانی را تقلید کنند.
قدرت این مدلها از پیشپردازش عظیم دادههای متنی و معماری ترنسفورمر (Transformer) ناشی میشود که ساختار جمله را در سطح معنا و بافت تحلیل میکند.
چالشها و دغدغههای اخلاقی
در کنار پیشرفتها، چالشهای مهمی هم وجود دارد:
سوگیری الگوریتمی: مدلها از دادههای انسانی میآموزند، پس ممکن است همان خطاها و پیشداوریها را بازتولید کنند.
حریم خصوصی: جمعآوری دادههای بزرگ، خطر نشت یا سوءاستفاده از اطلاعات را افزایش میدهد.
وابستگی بیش از حد: استفادهی بیرویه از هوش مصنوعی میتواند منجر به کاهش مهارتهای انسانی در تحلیل و خلاقیت شود.
آیندهی هوش مصنوعی: همزیستی انسان و ماشین
در آینده، تمرکز اصلی از “خودکارسازی کامل” به سمت “همافزایی انسان و ماشین” پیش میرود.
مدلهای هوش مصنوعی قرار نیست جایگزین انسان شوند، بلکه قرار است ابزارهایی برای تقویت توان ذهنی، خلاقیت و تصمیمگیری انسان باشند.
در واقع، متخصصان آینده کسانی خواهند بود که میدانند چطور با هوش مصنوعی همکاری کنند، نه صرفاً از آن استفاده.
اما در لایههای عمیقتر، هوش مصنوعی دیگر فقط “برنامهنویسی ماشینی” نیست؛ بلکه شامل مدلهایی است که از دادهها میآموزند و خود را با شرایط جدید تطبیق میدهند — همان چیزی که به آن یادگیری ماشین (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
توی این پروژه با استفاده از شبکه عصبی کانولوشنی (CNN)، مدلی ساختم که میتونه اشیاء رو از روی تصاویر تشخیص بده 📸🧠
چند تا نکته دربارهٔ پروژه:
- از TensorFlow و Keras استفاده کردم
- مدل آموزشدیده ذخیره میشه و قابل استفاده مجدد هست
- روی دیتاست CIFAR-10 تست شده
- دقت مدل بالای ۸۵٪ به دست اومده 💪
📎 سورس کامل پروژه روی گیتهاب:
🔗 github.com/ITheEqualizer/Computer-Vision
GitHub
GitHub - ITheEqualizer/Computer-Vision: A deep learning project which can identify the item of the given picture.
A deep learning project which can identify the item of the given picture. - ITheEqualizer/Computer-Vision
2
زمان جنگ جهانی دوم، گروهی از پژوهشگران مأمور شدند تا راهی برای افزایش دوام هواپیماهای جنگی پیدا کنند.
آنها هواپیماهایی را بررسی کردند که از جنگ برگشته بودند. بیشتر گلولهها روی بالها و دم هواپیما دیده میشد.
پیشنهاد اولیه این بود که همین بخشها باید تقویت شوند.
اما یک ریاضیدان به نام آبراهام والد نکته مهمی را گوشزد کرد:
این هواپیماها با وجود تمام آن گلولهها، توانستهاند برگردند.
بخشهایی که تیر نخوردهاند، همان نقاط حساسی هستند که اگر آسیب ببینند، هواپیما هرگز برنمیگردد.
پس باید همان قسمتها تقویت شوند.
این داستان یک نمونه کلاسیک از «بایاس بقا»ست.
ما اغلب فقط بازماندهها را میبینیم و فراموش میکنیم آنهایی که شکست خوردهاند، دیگر پیش چشم ما نیستند.
چه در دادهها و چه در زندگی، مراقب باشیم فقط به دیدهها تکیه نکنیم.
بعضی وقتها آنچه دیده نمیشود، از آنچه میبینیم مهمتر است.
آنها هواپیماهایی را بررسی کردند که از جنگ برگشته بودند. بیشتر گلولهها روی بالها و دم هواپیما دیده میشد.
پیشنهاد اولیه این بود که همین بخشها باید تقویت شوند.
اما یک ریاضیدان به نام آبراهام والد نکته مهمی را گوشزد کرد:
این هواپیماها با وجود تمام آن گلولهها، توانستهاند برگردند.
بخشهایی که تیر نخوردهاند، همان نقاط حساسی هستند که اگر آسیب ببینند، هواپیما هرگز برنمیگردد.
پس باید همان قسمتها تقویت شوند.
این داستان یک نمونه کلاسیک از «بایاس بقا»ست.
ما اغلب فقط بازماندهها را میبینیم و فراموش میکنیم آنهایی که شکست خوردهاند، دیگر پیش چشم ما نیستند.
چه در دادهها و چه در زندگی، مراقب باشیم فقط به دیدهها تکیه نکنیم.
بعضی وقتها آنچه دیده نمیشود، از آنچه میبینیم مهمتر است.
❤1
