نسّق JSON وصغّره وتحقق منه مع سطر/عمود الخطأ وكشف المفاتيح المكررة وأعداد كبيرة دقيقة
عدّاد الكلمات والأحرف
عدّ الكلمات والأحرف والجمل والفقرات ووقت القراءة وكثافة الكلمات وحدود المنصات لحظة الكتابة. بدقة تدعم العربية والإيموجي، دون تسجيل.
🔄
📱
🎯
🔑
كيف تُحسب النتيجة؟
الكلمات: نستخدم Intl.Segmenter المبني على معيار Unicode UAX #29 لتحديد حدود الكلمات، بدل التقسيم عند المسافات. لذلك تُقسَّم العربية واليابانية والصينية تقسيمًا سليمًا بدل اعتبارها كلمة طويلة واحدة، ولا تُحسب علامات الترقيم كلمات. ويستثني متوسط طول الكلمة وأطول كلمة الروابط وعناوين البريد. وتُعدّ الروابط وعناوين البريد والكلمات المنقّطة (مثل p.m. و3.5 وexample.com) كلمة واحدة لكل منها. وهذا يزيل أهم أسباب اختلاف النتيجة بين المتصفحات، مع بقاء فروق طفيفة ممكنة في اللغات التي تعتمد على قاموس (الصينية واليابانية والتايلاندية). وكلمتان ملتصقتان بنقطة دون مسافة (مثل end.Start) تُعدّان كلمة واحدة.
الأحرف: تُعدّ بوحدة الـ grapheme cluster أي الحرف كما يراه القارئ. فالإيموجي المركب (مثل 👨👩👧) أو الحرف مع تشكيله يُحسب حرفًا واحدًا، بينما يعدّه string.length في JavaScript عدة أحرف.
الجمل والفقرات: الجمل وفق حدود UAX #29 للجمل، مع تصحيحين: لا يُحسب رقم القائمة (1. 2.) جملةً مستقلة، ولا تُقطع الجملة عند اختصارات شائعة مثل Dr. وMr.. الفقرة كتلة نصية تفصلها سطر فارغ.
الفرق عن Word: يعدّ Word كل ما بين مسافتين كلمة، فتصبح dev-1.4.8 كلمة واحدة، بينما نفصلها وفق Unicode إلى dev و1.4.8. اختر "مثل Word" أسفل المحرر لتحصل على عدّ مطابق له.
زمن القراءة والإلقاء: الزمن = عدد الكلمات ÷ السرعة (كلمة/دقيقة). الافتراضي 238 للقراءة الصامتة، وهو متوسط منشور للنصوص غير الروائية الإنجليزية (Brysbaert، 2019)، و150 للإلقاء. تختلف السرعة بين اللغات والقراء، لذلك يمكنك تعديلها، والنتيجة تقدير.
الكثافة: كثافة العبارة = تكرارها ÷ إجمالي الكلمات × 100. عند تفعيل تجاهل الحشو تُستبعد الكلمات الشائعة، وتُستبعد العبارات التي تبدأ أو تنتهي بكلمة حشو. تظهر العبارات من كلمتين أو أكثر عند تكرارها مرتين فأكثر، وتُستبعد الأرقام المنفردة من قائمة الكلمات المفردة.
حدود المنصات: يُحسب حد X وفق قواعد الوزن في مكتبة X المفتوحة twitter-text: الرابط = 23، والحروف داخل النطاق U+0000–U+10FF (ويشمل اللاتينية والعربية والسيريلية واليونانية والعبرية) = 1، وما خارجه كالصينية واليابانية والكورية والإيموجي = 2. رسائل SMS: ترميز GSM-7 بحد 160 (153 لكل جزء عند التقسيم)، وأي حرف خارجه (مثل العربية) يحوّل الرسالة إلى UCS-2 بحد 70 (67 لكل جزء).
http:// أو https:// (مثل example.com) لا تُكتشف روابطَ في حد X، فتُحسب بحروفها.
أسئلة شائعة
لماذا يختلف عدد الكلمات هنا عن Word؟
يعدّ Word كل ما بين مسافتين كلمة، أما نحن فنفصل وفق Unicode، فتُعدّ الكلمات المركبة بواصلة (مثل dev-1.4.8) كلمتين. غيّر طريقة العدّ إلى "مثل Word" ليتطابق الناتج.
لماذا قد يختلف عدد الأحرف هنا عن أدوات أخرى أو string.length؟
لأننا نعدّ الحرف كما يراه القارئ (grapheme). الإيموجي المركب والحروف المشكّلة (مثل «ً» و«ّ») تُحسب مرة واحدة، بينما تعدّها أدوات أخرى وحدات مستقلة. ستجد الرقم المقابل في الإحصاءات التفصيلية باسم «نقاط الترميز».
هل يُرسل نصي إلى خادم؟
لا. كل المعالجة تتم داخل متصفحك، ولا يُخزَّن النص. تُحفظ فقط إعداداتك (الأهداف وسرعة القراءة وطريقة عدّ الكلمات) على جهازك. تُحمَّل خطوط الصفحة من Google Fonts، لكن لا يُرسل إليها نصّك.
كيف يُحسب حد X؟
وفق قواعد الوزن الرسمية: الرابط يُحسب 23 بغض النظر عن طوله، والحروف اللاتينية والعربية بوزن 1، بينما الحروف الصينية واليابانية والكورية والإيموجي بوزن 2، والحد 280 وحدة موزونة.
لماذا تُقسَّم رسالة SMS العربية إلى أجزاء أقصر؟
لأن الحروف العربية خارج مجموعة GSM-7، فتُرسل الرسالة بترميز UCS-2 الذي يتسع لـ 70 وحدة فقط (67 لكل جزء عند التقسيم) بدل 160.


