با استفاده از کتابخونهی
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("چهارصد و شصت و یک"))البته این نسخهی ساده است و میشه خیلی حرفهایترش کرد تا عددهای ترکیبی رو درست محاسبه کنه.
🔖 #Python, #پایتون
👤 Charisma
💎 Channel: @DevelopixPython