دوشنبه، خرداد ۱۰، ۱۳۸۹

ابزاری برای شمارش تکرار کلمات یک متن

يكي از معيارهاي معمول سنجش ادبي يك نوشته (نه لزوما نوشته‌اي ادبي) تنوع واژگان و وسعت دامنه‌ي كلمات مورد استفاده در آن نوشته است. بالطبع تكرار زياد يك كلمه به اين تنوع لطمه مي‌زند. به عنوان مثال من اخيرا متوجه شده‌ام (به واسطه‌ي راهنمايي يكي دو نفر از دوستان) كه حرف اضافه‌ي "توي" زياد در نوشته‌ام ديده مي‌شود. وقتي دقت كردم، ديدم دليلش اين است كه خيلي جاها به جاي "در"، "وسط"، "داخل"، حتا "ته" از اين كلمه استفاده كرده‌ام (گاهي آگاهانه و گاهي ناخودآگاه).

امكاني كه Microsoft Word براي شمارش تعداد تكرار يك كلمه در متن به دست مي‌دهد، محدود است:

يك) جستجوي عادي و شمردن دفعات تكرار با امكان Find

دو) يافتن و رنگي كردن‌ يكجاي همه‌ي موارد و شمردن چشمي (كه با اولين تغيير در متن مجبور به تكرار جستجو هستيد) با امكان Find->Reading Highlight

سه) جايگزين كردن كلمه با خودش (كه مي‌توانيد به جاي كلمه‌ي دوم بنويسيد &^) بصورت يكجا و استفاده از گزارشي كه برنامه از تعداد جايگزيني‌هاي انجام شده مي‌دهد با امكان Replace->Replace All

مشكلات اين روش‌ها كم و بيش پيداست و يكي از مهم‌ترين آنها لزوم تكرار روش براي يكان يكان كلمات مورد نظر است.

من ماكروي مفيدي را اينجا پيدا كردم كه تعداد كلمات يك متن را مي‌شمرد، فايل متني ديگري باز كرده و دفعات تكرار تمام كلمات را به ترتيب تواتر (فركانس) يا الفبا زير هم مي‌نوشت. مي‌توانيد با دستكاري كد ماكرو، برخي كلمات و عبارات را از شمارش مستثنا كنيد (مثلا حروف اضافه).

من فقط دو تغيير در اين ماكرو اعمال كردم:

الف) حذف شرط ماكروي اصلي براي محدود كردن كلمات به واژگان نوشته شده با حروف لاتين

ب) اضافه كردن امكان بكارگيري ماكرو فقط براي بخش خاصي از متن. به اين ترتيب كه اگر بخشي از متن را انتخاب كرده و ماكرو را اجرا كنيد، كلمات آن بخش انتخاب شده شمرده مي‌شوند و اگر ماكرو را بدون انتخاب بخش خاصي از متن اجرا كنيد، كلمات كل متن شمارش خواهد شد.

ماكرو اصلاح شده را از اينجا مي‌توانيد برداريد.

نكاتي كه باقي مانده:

- اضافه كردن امكان استثنا كردن كلمات فارسي از شمارش، كار بيشتري مي‌طلبيد و من فقط به حذف علائم نگارشي مشترك بين فارسي و لاتين بسنده كردم.

- چه بسا بسامد يك كلمه در كل متن عددي معقول باشد ولي كنار هم همنشيني موارد تكرار باعث افت ادبي متن شود كه لازمه‌ي يافتن چنين مواردي اين است كه ماكرو را به ازاي بخش‌ بخش متن (و نه كليت آن) اجرا كنيد.

- براي استخراج بسامد واقعي يك كلمه معمولا بايد مشتقات آن كلمه را نيز در شمارش لحاظ كرد (به عنوان مثال انواع اشكال صرفي يك فعل يا حالت جمع و مفرد يك اسم است). چنين كاري از عهده‌ي اين ماكرو برنمي‌آيد.