টেক্সট পরিসংখ্যান
টেক্সটবহুভাষিক-বান্ধব শব্দ বিভাজনের মাধ্যমে অক্ষর, বাইট, শব্দ, লাইন, বাক্য এবং প্যারাগ্রাফ গণনা করুন।
- অক্ষর
- অক্ষর (স্পেস ছাড়া)
- বাইট (UTF-8)
- শব্দ
- লাইন
- বাক্য
- প্যারাগ্রাফ
- পঠন সময়
এই পৃষ্ঠায়
টেক্সট পরিসংখ্যান টুল কী?#
একটি টেক্সট পরিসংখ্যান টুল একটি টেক্সট ব্লক পড়ে এবং আপনাকে জানায় এর ভেতরে আসলে কী আছে: কতগুলো অক্ষর, কতগুলো শব্দ, কতগুলো বাক্য, এটি বাইটে কত বড়, এবং একজন পাঠক এটি শেষ করতে আনুমানিক কত সময় নেবে। এটি তুচ্ছ শোনায় যতক্ষণ না আপনি এমন একটি সীমায় ধাক্কা খান যা আপনাকে কামড়ায় — একটি টুইট যা এক অক্ষর বেশি, একটি মেটা বিবরণ যা নীরবে ১৬০ বাইট ছাড়িয়ে যায়, একটি ইনপুট ফিল্ড যার maxlength দৃশ্যমান অক্ষরের বদলে UTF-8 বাইটে পরিমাপ করা, বা একটি খসড়া যার “২ মিনিট পড়ার” ব্যাজ নীরবে ভুল।
সমস্যা হলো “একটি শব্দ” একটি সর্বজনীন ধারণা নয়। ইংরেজি শব্দ স্পেস দিয়ে আলাদা, কিন্তু চাইনিজ, জাপানিজ এবং থাই নয় — 你好世界 চারটি অক্ষর এবং চারটি শব্দ, কোনো স্পেস ছাড়াই। একটি সরল .split(' ') সেই পুরো স্ট্রিংয়ের জন্য একটি “শব্দ” রিপোর্ট করে। এই টুল CJK আইডিওগ্রাফ, হিরাগানা, কাতাকানা এবং থাইয়ের জন্য প্রতিটি অক্ষরে গণনা করে, এবং লাতিন, সিরিলিক, গ্রিক, দেবনাগরী এবং হাঙ্গুলের জন্য সাদাসিধে-বিভাজিত রান অনুযায়ী, তাই শব্দ গণনা স্ক্রিপ্ট জুড়ে সৎ। বাইট আকার প্রকৃত UTF-8 এনকোডিং ব্যবহার করে (string.length নয়), যা গুরুত্বপূর্ণ যখন একটি সার্ভার বা ডেটাবেস কলাম বাইট গণনা করে।
সবকিছু আপনার ব্রাউজারে চলে — কোনো ব্যাকএন্ড নেই এবং কিছুই আপলোড হয় না।
কীভাবে ব্যবহার করবেন#
- বাম দিকের ইনপুট বক্সে আপনার টেক্সট টাইপ করুন বা পেস্ট করুন। বক্সটি যেকোনো স্ক্রিপ্ট গ্রহণ করে এবং নতুন লাইন সংরক্ষণ করে।
- সংখ্যাগুলো সরাতে নমুনা ক্লিক করুন যদি আপনি কেবল সেগুলো সরতে দেখতে চান, বা বক্স খালি করতে মুছুন।
- ডান দিকের প্যানেলটি পড়ুন। আটটি সারি আপনি টাইপ করার সাথে সাথে লাইভ আপডেট হয়:
- অক্ষর — মোট কোড-ইউনিট গণনা, স্পেস এবং নতুন লাইন সহ।
- অক্ষর (স্পেস ছাড়া) — একই, প্রতিটি সাদাসিধে অক্ষর বাদ দিয়ে।
- বাইট (UTF-8) — UTF-8 বাইট দৈর্ঘ্য, সংখ্যাটি একটি ডেটাবেস
VARCHAR(n)বা HTTP হেডার সীমা সত্যিই যা দেখে। - শব্দ — স্ক্রিপ্ট-সচেতন গণনা (CJK/কানা/থাই প্রতি অক্ষরে, বাকি সবকিছু স্পেস-বিভাজিত রান অনুযায়ী)।
- লাইন — নতুন লাইন-বিভাজিত সারি।
- বাক্য — স্ক্রিপ্ট জুড়ে টার্মিনেটরে বিভক্ত (
.!?প্লাস CJK。!?এবং আরবি؟۔)। - প্যারাগ্রাফ — একটি খালি লাইন দ্বারা বিভাজিত ব্লক।
- পঠন সময় — শব্দ প্রতি মিনিটে ~২০০ শব্দ দ্বারা ভাগ, অন্তত এক মিনিট পর্যন্ত রাউন্ড করা।
প্রধান বৈশিষ্ট্য#
- স্ক্রিপ্ট-সচেতন শব্দ গণনা। CJK আইডিওগ্রাফ, হিরাগানা, কাতাকানা এবং থাই প্রতিটি অক্ষরে এক শব্দ হিসেবে গণনা করে; লাতিন, সিরিলিক, গ্রিক, দেবনাগরী এবং হাঙ্গুল স্পেস-বিভাজিত রান অনুযায়ী গণনা করে। একটি মিশ্র বাক্য একটি বুদ্ধিমত্তাপূর্ণ মোট পায়, ভাঙা একটি নয়।
- প্রকৃত UTF-8 বাইট আকার।
你好হলো ৬ বাইট, ২ নয় — বাইট গণনাকারী প্রতিফলিত করে যে স্টোরেজ এবং ট্রান্সপোর্ট সত্যিই কত খরচ করে। - ক্রস-স্ক্রিপ্ট বাক্য বিভাজন। CJK এবং আরবি টার্মিনেটর চেনে, তাই
今天天气很好。明天见。দুটি বাক্য হিসেবে গণনা করে, একটি নয়। - লাইভ, ক্লিকের প্রয়োজন নেই। সংখ্যাগুলো প্রতিটি কীস্ট্রোকে পুনরায় গণনা করে; ভুলে যাওয়ার মতো কোনো তৈরি করার ধাপ নেই।
- আপনার মেশিনে থাকে। পেস্ট করা টেক্সট কখনো পৃষ্ঠা ছাড়ে না — কোনো অনুরোধ নেই, কোনো লগ নেই, কোনো ব্যাকএন্ড নেই।
ব্যবহারের উদাহরণ#
ক্লাসিক প্যানগ্রামটি পেস্ট করুন:
The quick brown fox jumps over the lazy dog.
প্যানেল রিপোর্ট করে:
- অক্ষর: 44 (পিরিয়ড এবং ৮টি স্পেস অন্তর্ভুক্ত)
- অক্ষর (স্পেস ছাড়া): 36
- বাইট: 44 (প্রতিটি অক্ষর ASCII, তাই এখানে বাইট অক্ষরের সমান)
- শব্দ: 9
- লাইন: 1
- বাক্য: 1
- প্যারাগ্রাফ: 1
- পঠন সময়: 1 মিনিট (৯টি শব্দ ২০০-এর চেয়ে অনেক কম, কিন্তু গণনাকারী অন্তত এক মিনিটে ফ্লোর করে যাতে একটি খালি “০ মিনিট” কখনো না দেখায়)
চাইনিজ বাক্য 你好世界。 দিয়ে অদলবদল করলে শব্দ গণনা হয় 4 (প্রতিটি Han অক্ষরে একটি), যখন বাইট লাফিয় যায় 13 — চারটি ৩-বাইট অক্ষর প্লাস ১-বাইট ফুল স্টপ। “৪টি অক্ষর” এবং “১৩টি বাইট” এর মধ্যে সেই ফারকটিই হলো ঠিক সেই ধরনের বিস্ময় যা এই টুল একটি ফর্ম জমা দেওয়ার আগে প্রকাশ করার জন্য বিদ্যমান।
প্রশ্নোত্তর#
আমার বাইট গণনা আমার অক্ষর গণনার চেয়ে অনেক বড় কেন?#
কারণ UTF-8 অ-ASCII অক্ষরগুলোকে একাধিক বাইট দিয়ে এনকোড করে: মৌলিক লাতিন সীমার জন্য এক বাইট, লাতিন এক্সটেন্ডেড (à, ñ, ç) এর জন্য দুই, বেশিরভাগ CJK আইডিওগ্রাফ এবং ভারতীয় স্ক্রিপ্টের জন্য তিন, এবং ইমোজি ও অ্যাস্ট্রাল প্লেনের জন্য চার। যে ফর্ম এবং ডেটাবেসগুলো একটি বাইট বাজেট প্রয়োগ করে সেগুলো বড় সংখ্যাটি দেখে, তাই এই টুল বাইট একইভাবে রিপোর্ট করে।
আমার চাইনিজ টেক্সটের শব্দ গণনা বেশি মনে হচ্ছে। এটা কি ঠিক?#
সম্ভবত। CJK স্ক্রিপ্ট স্পেস দিয়ে শব্দ আলাদা করে না, তাই প্রতি-অক্ষরে গণনা হলো সেগুলোকে মাপার প্রচলিত, পুনরুৎপাদনযোগ্য উপায় — এবং এটি মেলে কীভাবে বেশিরভাগ এডিটর এবং ওয়ার্ড প্রসেসর CJK দৈর্ঘ্য রিপোর্ট করে। আপনার যদি অক্ষর গণনার বদলে ভাষাগত শব্দ সেগমেন্টেশন প্রয়োজন, /en/text/word-frequency/ টুলের CJK মোড ব্রাউজারের সেগমেন্টার ব্যবহার করে প্রকৃত শব্দ সীমানায় বিভক্ত করতে।
“পঠন সময়” কী পড়ার গতি অনুমান করে?#
প্রতি মিনিটে প্রায় ২০০ শব্দ, সাধারণ গদ্যের প্রাপ্তবয়স্ক নীরব পাঠের জন্য একটি ব্যাপকভাবে ব্যবহৃত গড়। এটি একটি আসন্ন অনুমান — প্রযুক্তিগত বিষয়বস্তু, কোড, বা একটি বিদেশী ভাষা ধীর হবে। মানটি সর্বদা অন্তত এক মিনিট পর্যন্ত রাউন্ড করা হয় যাতে একটি ছোট স্নিপেট একটি অর্থহীন “০ মিনিট” না দেখায়।
এটি কি গদ্যের মতো একটি কোড স্নিপেটে শব্দ গণনা একইভাবে করে?#
হ্যাঁ — getUserById-এর মতো শনাক্তকারীগুলো একটি টোকেন হিসেবে বিবেচিত হয় কারণ সেগুলোর ভেতরে কোনো স্পেস বা যতিচিহ্ন নেই। আপনি যদি getUserById-কে তিনটি শব্দ হিসেবে গণনা করতে চান, এটিকে প্রথমে /en/text/transform/ টুলের কেস বিভাজকের মাধ্যমে চালান।