پروژه ربات تلگرام تشخیص اسپم با استفاده از یادگیری ماشین تکمیل و به صورت اوپن سورس منتشر شد.
دقت کنید که باید یک دیتاست داشته باشید چون از 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
