ابزار تحلیل و تجسم فراوانی حروف
ابزار رایگان تحلیل فراوانی حروف. الگوهای توزیع حروف را بلافاصله تجسم کنید. مناسب برای رمزنگاری، فشردهسازی دادهها، تشخیص کدگذاری متن و تحلیل زبانشناختی.
تحلیل فراوانی حروف
مستندات
تحلیل فراوانی نویسه چیست؟
تحلیل فراوانی نویسه به فرایند شمارش تعداد دفعاتی گفته میشود که هر نویسه در بخشی از متن ظاهر میشود. این تحلیل حروف، رقمها، فاصلهها، علائم نگارشی و هر نماد دیگری در متن را دربرمیگیرد. نتیجه جدولی ساده یا نموداری است: یک نویسه و یک تعداد.
این ابزار متنِ جایگذاریشده یا تایپشده در آن را دریافت میکند و همه نویسهها را بهطور خودکار میشمارد. نمودار میلهای تعدادها را رسم میکند تا نویسههای پرتکرار در یک نگاه مشخص شوند. با قرار دادن نشانگر روی یک میله یا لمس آن، تعداد دقیق آن نویسه نمایش داده میشود.
این روش قدیمی است. دانشمند عرب، الکندی، در سده ۹ آن را روشی برای شکستن رمزهای ساده توصیف کرد. امروزه از آن در فشردهسازی داده، بررسیهای املایی و کدگذاری، و شناسایی مقدماتی زبان نیز استفاده میشود.
چگونه فراوانی نویسه را محاسبه کنیم
محاسبه دستی فراوانی نویسه سه مرحله دارد:
- متن را نویسهبهنویسه بررسی کنید و فاصلهها و علائم نگارشی را نیز در نظر بگیرید.
- برای هر نویسه متمایز، شمارش تجمعی را نگه دارید. یک نویسه جدید از ۱ شروع میشود؛ نویسه تکراری ۱ به شمارش موجود آن اضافه میکند.
- هر نویسه را همراه با شمارش نهایی آن فهرست کنید.
این ابزار همین کار را بهطور خودکار، با استفاده از ساختار دادهای به نام نگاشت درهمسازی (جدول جستوجویی که مقداری را زیر یک کلید ذخیره میکند)، انجام میدهد. برای هر نویسه در متن، بررسی میکند که آیا آن نویسه از قبل در جدول مدخلی دارد یا نه. اگر داشته باشد، ابزار ۱ را به شمارش ذخیرهشده اضافه میکند. اگر نداشته باشد، ورودی جدیدی با شمارش ۱ ایجاد میکند. این روش هر نویسه را دقیقاً یک بار بررسی میکند؛ بنابراین زمان لازم با طول متن نسبت مستقیم دارد، نه بیشتر.
پس از شمارش، ابزار نتایج را بر اساس ترتیب الفبایی نویسهها فهرست میکند. در حال حاضر گزینهای برای مرتبسازی بر اساس تعداد ارائه نمیدهد.
فراوانی نویسه بهصورت درصد
مقایسه شمارشها بهتنهایی در متنهایی با طولهای متفاوت دشوار است. به همین دلیل، فراوانی اغلب بهصورت درصدی از کل تعداد نویسهها بیان میشود:
در اینجا، تعداد دفعات ظاهر شدن نویسه و تعداد کل نویسههای متن است. این ابزار شمارش خام و کل تعداد نویسهها را گزارش میکند، نه ستون درصد؛ اما درصد هر نویسه را میتوان با تقسیم شمارش آن بر کل تعداد و ضرب در ۱۰۰ محاسبه کرد.
مثال حلشده
واژه «mississippi» را در نظر بگیرید که ۱۱ نویسه دارد و فاقد فاصله و علامت نگارشی است.
با شمارش هر حرف، نتیجه چنین است:
| نویسه | تعداد | درصد |
|---|---|---|
| i | ۴ | ۳۶٫۴٪ |
| m | ۱ | ۹٫۱٪ |
| p | ۲ | ۱۸٫۲٪ |
| s | ۴ | ۳۶٫۴٪ |
جدول بر اساس ترتیب الفبایی (i، m، p، s) مرتب شده است و با ترتیب نتایج در این ابزار مطابقت دارد. مجموع شمارشها برابر با ۱۱، یعنی طول کل واژه، است. برای بهدستآوردن ستون درصد، هر شمارش بر ۱۱ تقسیم و در ۱۰۰ ضرب شده است؛ برای نمونه، ۴ ÷ ۱۱ × ۱۰۰ ≈ ۳۶٫۴٪.
چگونه از این ابزار استفاده کنیم
متن را در کادر ورودی تایپ یا جایگذاری کنید. ابزار آن را بیدرنگ و بدون نیاز به فشردن دکمه تحلیل میکند. با تغییر متن، فهرست نویسهها و نمودار میلهای نیز بهروزرسانی میشوند.
بخش نتایج شامل موارد زیر است:
- نمودار میلهای با یک میله برای هر نویسه. بلندتر بودن میله یعنی آن نویسه بیشتر ظاهر شده است.
- کل تعداد نویسههای متن، شامل فاصلهها و علائم نگارشی.
- تعداد دقیق هر نویسه، که با قرار دادن نشانگر روی میله آن یا لمس میله نمایش داده میشود.
دکمه «Copy» نتایج را بهصورت متن ساده قالببندی میکند؛ در هر خط یک نویسه و تعداد آن قرار میگیرد تا برای جایگذاری در صفحهگسترده یا سند آماده باشد. فاصلهها در این خروجی با واژه «space» مشخص میشوند تا با خطوط خالی اشتباه نشوند.
در متن معمولی انگلیسی، حروفی مانند E، T، A، O و I معمولاً در میان پرتکرارترینها هستند. متنی که در آن حروف نادری مانند Q یا Z بهطور غیرمعمول زیاد ظاهر شوند، ممکن است کدگذاری یا رمزگذاری شده باشد یا به زبان دیگری نوشته شده باشد.
کاربردهای تحلیل فراوانی نویسه
شکستن رمزهای جانشینی
رمز جانشینی هر حرف پیام را با حرف یا نماد دیگری جایگزین میکند و این جایگزینی را در سراسر پیام یکسان نگه میدارد. چون جایگزینی ثابت است، الگوی فراوانی زبان اصلی در متن رمزشده باقی میماند. در انگلیسی، حرف E تقریباً در ۱۲–۱۳% موارد ظاهر میشود. اگر نمادی در متن رمز با تقریباً همین نرخ دیده شود، احتمال زیادی دارد که نماینده E باشد. این روش قرنها شیوه اصلی شکستن رمزهای جانشینی بود، تا اینکه رمزنگاری نوین آن را برای هر چیزی جز معماها و اسناد تاریخی منسوخ کرد.
فشردهسازی داده
قالبهای فشردهسازی مانند ZIP و GZIP از فراوانی نویسهها در روشی به نام کدنویسی هافمن استفاده میکنند. برای نویسههای پرتکرار، کدهای دودویی کوتاه و برای نویسههای کمتکرار، کدهای بلندتر اختصاص مییابد. چون نویسههای رایج در هر بار وقوع فضای کمتری میگیرند، کل فایل بدون از دست رفتن اطلاعات کوچکتر میشود.
شناسایی مشکلات کدگذاری
متنی که نویسههای عجیب و غیرمنتظره نمایش میدهد، مانند «Ã©» بهجای «é»، اغلب نشاندهنده ناهماهنگی میان کدگذاری نویسهای است که فایل با آن ذخیره شده و کدگذاریای است که برای خواندن فایل به کار رفته است. نمودار فراوانی که بهجای حروف رایج، افزایش غیرعادی نمادهای عجیب را نشان دهد، میتواند به تأیید وجود مشکل کدگذاری کمک کند.
شناسایی زبان
زبانهای مختلف توزیع معمول نویسههای متفاوتی دارند. در انگلیسی E، T و A رایجترند. در آلمانی حروف E و N بسیار بیشتر به کار میروند و حروفی مانند ä، ö و ü نیز به کار میروند که اصلاً در انگلیسی وجود ندارند. مقایسه فراوانی نویسههای متن با الگوهای شناختهشده زبانها، روشی سریع و تقریبی برای حدس زدن زبان متن فراهم میکند.
سبک نوشتار و نویسندگی
چون نویسندگان معمولاً در کاربرد علائم نگارشی و حروف عادتهای ثابتی دارند، الگوهای نویسهای میتوانند یکی از شواهد کوچک برای شناسایی نویسنده باشند. فراوانی نویسه بهتنهایی بهندرت ثابت میکند چه کسی چیزی را نوشته است؛ این روش در کنار انتخاب واژه، طول جمله و دیگر نشانگرهای سبکی بهتر عمل میکند.
روشهای دیگر تحلیل متن
فراوانی نویسه تنها روش تحلیل متن نیست.
- فراوانی واژه واژههای کامل را بهجای نویسهها میشمارد. این روش به معنای متن نزدیکتر است و در پژوهش کلیدواژه و تحلیل موضوع رایج است.
- تحلیل انگرام دنبالههای کوتاه نویسهها یا واژهها، مانند دوتاییها یا سهتاییها، را بررسی میکند. صفحهکلیدهای پیشبین و تکمیل خودکار از این روش برای حدس زدن حرف یا واژه بعدی استفاده میکنند.
- تحلیل احساسات با استفاده از روشهایی فراتر از شمارش ساده، قضاوت میکند که متن مثبت، منفی یا خنثی به نظر میرسد.
- تحلیل خوانایی، مانند امتیاز فلش–کینکید، دشواری خواندن متن را بر اساس طول جملهها و واژهها تخمین میزند.
پرسشهای متداول
تحلیل فراوانی نویسه چه چیزی به شما میگوید؟
نشان میدهد هر نویسه چند بار در متن ظاهر شده است. بررسی نتیجه میتواند الگوهایی را آشکار کند که برای رمزنگاری، فشردهسازی، شناسایی خطاهای کدگذاری یا حدس زدن زبان متن مفیدند.
این ابزار نتایج را چگونه مرتب میکند؟
نویسهها را بر اساس ترتیب الفبایی مرتب میکند. گزینهای برای مرتبسازی بر اساس تعداد وجود ندارد. پرتکرارترین و کمتکرارترین نویسهها باید با خواندن نمودار میلهای یا بررسی شمارشها در متن کپیشده پیدا شوند.
آیا ابزار درصدها را نشان میدهد؟
خیر. شمارش خام هر نویسه و کل تعداد نویسهها را گزارش میکند. درصد را میتوان با تقسیم شمارش یک نویسه بر کل تعداد و ضرب آن در ۱۰۰ محاسبه کرد.
آیا تحلیل فراوانی نویسه میتواند رمزنگاری نوین را بشکند؟
خیر. این روش فقط برای رمزهای جانشینی ساده کار میکند؛ در این رمزها، هر نویسه همیشه نماینده همان نویسه جایگزین است. رمزنگاری نوین، مانند AES، خروجیای بدون چنین الگوی ثابتی تولید میکند؛ بنابراین شمارش فراوانی چیزی درباره پیام اصلی آشکار نمیکند.
آیا ابزار فاصلهها و علائم نگارشی را میشمارد؟
بله. هر نویسه موجود در ورودی، از جمله فاصلهها، نویسههای تب، شکستهای خط و علائم نگارشی، شمارش میشود. فاصلهها اغلب پرتکرارترین نویسه منفرد در متن معمولی هستند.
برای مشاهده الگوهای قابلاعتماد چه مقدار متن لازم است؟
چند صد نویسه حداقل معقولی است. متن بسیار کوتاه ممکن است صرفاً بر اثر تصادف، فراوانی نویسههایی بسیار متفاوت از الگوی مورد انتظار نشان دهد. نمونههای طولانیتر، با هزار نویسه یا بیشتر، معمولاً تطابق نزدیکتری با الگوهای شناختهشده زبان دارند.
منابع
- مستندات وب MDN: Map — مستندات ساختار دادهای نگاشت درهمسازی که برای شمارش کارآمد نویسهها استفاده میشود.
- شنون، C. E. (۱۹۵۱). «پیشبینی و آنتروپی انگلیسی چاپشده». نشریه فنی سامانه بل، ۳۰(۱)، ۵۰-۶۴.
- هافمن، D. A. (۱۹۵۲). «روشی برای ساخت کدهای با کمترین افزونگی». مجموعه مقالات IRE، ۴۰(۹)، ۱۰۹۸-۱۱۰۱.
- کدنویسی هافمن — ویکیپدیا