পাইথনে বাংলা OCR – ইমেজ টু টেক্সট

ইমেজ থেকে টেক্সট বের করার জন্য অনেক টুল রয়েছে। বেশির ভাগই ইংরেজিতে। বাংলা টেক্সট এক্সট্রাক্ট করার অপশন থাকে না। আপনি চাইলে ছোট্ট একটা পাইথন প্রোগ্রাম লিখে নিতে পারেন। যার মাধ্যমে যে কোন PDF/ইমেজ থেকে বাংলা টেক্সট গুলো এক্সট্রাক্ট করতে পারবেন। আর তার জন্য আমরা ব্যবহার করব pytesseract। আমরা pip ব্যবহার করে pytesseract ইন্সটল করব। পিপ … Read more

ফেসবুক পোস্ট থেকে ওয়ার্ডপ্রেস ব্লগ

সম্ভবত ২০০৯ থেকে আমি ফেসবুকে নিয়মিত টুকটাক লেখালিখি করি। ফেসবুকের বাহিরে এখানে (jakir.me) লিখছি মূলত টেকনিক্যাল লেখা গুলো। নন-টেকনিক্যাল লেখা গুলো ফেসবুকের টাইমলাইনে হারিয়ে যায়। নিজেও খুঁজে পাই না সহজে। সহজে খুঁজে পাওয়ার জন্য ভাবলাম অন্য এক যায়গায় সব গুলো লেখা রাখি। ফ্রিতে কোথাও হোস্ট করতে চাচ্ছি যেনো রিনিউ এর ঝামেলায় পোস্ট গুলো হারিয়ে না … Read more

পাইটর্চে ফাস্ট নিউরাল স্টাইল ট্রান্সফার ও Core ML এ কনভার্ট

এই টিউটোরিয়ালে আমরা টোটাল তিনটা কাজ করবঃ পাইটর্চ ফাস্ট নিউরাল স্টাইল ট্রান্সফার ফাস্ট নিউরাল স্টাইল ২০১৬ সাইলের একটা পাবলিকেশন। যা ব্যবহার করে রিয়েলটাইম যে কোন ছবি বা ভিডিওতে অন্য আরেকটা ইমেজের স্টাইল এপ্লাই করা যায়। নিউরাল নেটওয়ার্ক কিভাবে কাজ করে, এসব বুঝার জন্য ক্লাসিক উদাহরন। আমরা পাইটর্চের অফিশিয়াল উদারনটাই ফলো করব। পাইটর্চের অনেক গুলো উদারণ … Read more

পাইথন প্যাকেজ ম্যানেজার PIP

পাইথনের স্ট্যান্ডার্ড লাইব্রেরীর মডিউল গুলো ছাড়াও আমরা থার্ড পার্টি মডিউল ব্যবহার করতে পারি। প্রোগ্রামাররা যে কোড গুলো লিখে সবার ব্যবহার করার জন্য উন্মুক্ত করে দিয়েছে, আমরা সে সব কোড গুলোও আমাদের প্রজেক্টে ব্যবহার করতে পারি। মডিউল হচ্ছে একটা একক ফাইল, যার মধ্যে অনেক গুলো ফাংশন বা মেথড থাকে। অনেক গুলো ফাইল মিলে তৈরি হয় একটা … Read more

পাইথনের একের অধিক ভার্সন ম্যানেজমেন্ট এবং ভার্চুয়াল এনভারনমেন্ট

কম্পিউটারে একের অধিক পাইথন ব্যবহার আমাদের এক একটা প্রজেক্টে ভিন্ন ভিন্ন পাইথন ভার্সন বা বিভিন্ন প্যাকেজের আলাদা ভার্সন ব্যবহার করতে হতে পারে। আর কম্পিউটারে একের অধিক পাইথন ইন্সটল করা এবং এগুলো ম্যানেজ করার জন্য ব্যবহার করতে পারি Pyenv। এটা হচ্ছে কম্পিউটারে পাইথনের ভার্সন ম্যানেজমেন্ট করার একটা প্যাকেজ। ইন্সটল pyenv: pyenv ইন্সটলেরজ অন্য Homebrew ব্যবহার করতে … Read more

পাইথনে ডাইনামিক প্রোগ্রামিং

ডাইনামিক প্রোগ্রামিং কোন অ্যালগরিদম নয়। মূলত এটা একটা কৌশল। নির্দিষ্ট কিছু সমস্যা, যে সমস্যা গুলোতে ছোট ছোট অংশ গুলোর সমাধানের পুনরাবৃত্তি ঘটে। ডাইনামিক প্রোগ্রামিং ব্যবহার করে সেই সমস্যা গুলো ইফিসিয়েন্টলি সমাধান করা যায়। সাধারণত যে সমস্যা গুলো ডিভাইড এবং কনকার কৌশল ব্যবহার করে সমাধান করা যায়, সেগুলো ডিভাইড এবং কনকার কৌশলের সাথে ডাইনামিক প্রোগ্রামিং কৌশল … Read more

পাইথনে বাইনারি সার্চ

একটা সর্টেড লিস্টে একটা আইটেম আছে কিনা, তা খুঁজে দেখার জন্য বাইনারি সার্চ ব্যবহার করা হয়। যদি থেকে থাকে, তাহলে ঐ আইটেমের ইনডেক্স রিটার্ণ করে। এর আগে আমরা লিনিয়ার সার্চ সম্পর্কে জেনেছি। বাইনারি সার্চ লিনিয়ার সার্চ থেকে দ্রুত কাজ করে। যেমন 1, 3, 4, 5 , 7 , 9 , 12 এই লিস্টে 7 বা … Read more

পাইথনে কুইক সর্ট

মার্জ সর্টের মত কুইক সর্টও ডিভাইড এবং কনকার কৌশল ব্যবহার করে কোন লিস্টকে সর্ট করে। কুইক সর্ট নিচের মত করে কাজ করেঃ কুইক সর্টে কোন লিস্টকে সাব লিস্টে ভাগ করা হয়। এই ভাগ করার জন্য লিস্ট থেকেই একটা ইলিমেন্ট নেওয়া হয় পিভেট (pivot) ইলিমেন্ট হিসেবে। এই পিভেট ইলিমেন্ট এমন ভাবে লিস্টের মাঝে রাখা হয়, যেন … Read more

পাইথন মার্জ সর্ট

খুবি জনপ্রিয় একটা সর্টিং অ্যালগরিদম হচ্ছে মার্জ সর্ট। এটি ডিভাইড এবং কনকার অ্যালগরিদম স্ট্রেটেজি ফলো করে কোন লিস্ট সাজিয়ে দেয়। ডিভাইড এবং কনকার স্ট্রেটেজিঃ ডিভাইড এবং কনকার স্ট্রেটেজিতে একটা বড় সমস্যাক ছোট ছোট ভাগে ভাগ করা হয়। এরপর ঐ ছোট ছোট অংশ গুলোকে সবার আগে সমাধান করা হয়। পরিশেষে সমাধানকৃত ছোট অংশ গুলো একত্র করে … Read more

পাইথনে সিলেকশন সর্ট

সিলেকশন সর্টঃ বাবল সর্টের মত আরেকটা সহজ সর্টিং অ্যালগরিদম হচ্ছে সিলেকশন সর্ট। সিলেকশন সর্টে প্রতিটা ইটারেশনে মিনিমাম বা ম্যাক্সিমাম নাম্বার খুঁজে বের করে সর্টেড লিস্টের নির্দিষ্ট পজিশনে রাখা হয়। যদি আমরা ছোট থেকে বড় সংখ্যার জন্য সিলেকশন সর্ট ব্যবহার করি, তাহলে সিলেকশন সর্টের ধাপ গুলো হবেঃ প্রথম ধাপঃ লিস্টের প্রথম সংখ্যাকে মিনিমাম হিসেবে সেট করা। … Read more