34

الحروف العربية بناءً على مرات إستخدامها

السلام عليكم

كنت أبني برمجية تخص اللغة العربية وأردت معرف عدد الحروف الأكثر إستخدامًا لكني عندما بحثت لم أجد فقمت بعمل مسح من قاعدة بيانات بها 9 مليون كلمة وحصلت على الناتج لعل هناك من يبحث عنها في المستقبل

ا التكرار 8152955
ن التكرار 6152840
ت التكرار 5572441
م التكرار 5566423
ي التكرار 5345504
و التكرار 5116923
ل التكرار 4629557
ه التكرار 4201915
ك التكرار 4098027
ف التكرار 3962015
ب التكرار 2719120
ر التكرار 2665611
س التكرار 2301475
ع التكرار 1397958
أ التكرار 1386344
د التكرار 1356333
ق التكرار 1278780
ح التكرار 1102664
ج التكرار 910197
ش التكرار 780130
ط التكرار 702773
ص التكرار 626206
خ التكرار 621341
ز التكرار 612241
ض التكرار 420089
غ التكرار 406768
ث التكرار 239856
ئ التكرار 233810
ذ التكرار 209137
ة التكرار 204042
إ التكرار 114131
ظ التكرار 112718
ؤ التكرار 79020
ء التكرار 54731
آ التكرار 45349
ى التكرار 21863

بيانات json

 {"ى":21863,"آ":45349,"ء":54731,"ؤ":79020,"ظ":112718,"إ":114131,"ة":204042,"ذ":209137,"ئ":233810,"ث":239856,"غ":406768,"ض":420089,"ز":612241,"خ":621341,"ص":626206,"ط":702773,"ش":780130,"ج":910197,"ح":1102664,"ق":1278780,"د":1356333,"أ":1386344,"ع":1397958,"س":2301475,"ر":2665611,"ب":2719120,"ف":3962015,"ك":4098027,"ه":4201915,"ل":4629557,"و":5116923,"ي":5345504,"م":5566423,"ت":5572441,"ن":6152840,"ا":8152955}

التعليق السابق

سأصنع API إن شاء الله لعمل تدقيق للغة العربية لكن بعد الإنتهاء من هذه البرمجية

فحص حرف بحرف ثم زيادة الرقم في مصفوفة الحروف التي تحتوي على إسم الحرف من تكراره الذي يبدأ ب 0 أخذ مني 15 دقيقة تقريبًا على حاسوب متوسط السرعة.

يعني إستخدمت خوارزمية البحث المتتالي (lenear search) ، شكراً

يبدو انك لم تفهم سؤالي

كيف تقم بفحص الحروف هل يوجد دالة او مكتبة ؟


خارج الموضوع : هل يوجد مكتبات تقترح علي تعلمها كمبتدئ تعلمت PHPMailer وكانت رائعة

لا, بدالة تكرار للحروف.

خارج الموضوع : هل يوجد مكتبات تقترح علي تعلمها كمبتدئ تعلمت PHPMailer وكانت رائعة

تعلم كيف تكتب مثل هذه المكتبات بنفسك.

  • إستخدام substr_count أعطى النتائج في 40 ثانية على جهاز بإمكانيات متوسطة أيضاً:

    header("Content-Type: text/html; charset=UTF-8");
    ini_set("max_execution_time", "on");
    $time1 = time();
    $arChars = ['ا','ب','ت','ث','ج','ح','خ','د','ذ','ر',
                'ز','س','ش','ص','ض','ط','ظ','ع','غ','ف',
                'ق','ك','ل','م','ن','ه','و','ى','ي','أ',
                'إ','آ','ء','ؤ','ئ','ة'];
    $data = file_get_contents('arabic-wordlist-1.6.txt');
    foreach($arChars as $char){
        $out[$char] = substr_count($data, $char);
    }
    arsort($out);
    foreach($out as $char=>$count)
        echo "{$char} = {$count}<br>";
    echo  time()-$time1;
    

يبدو أني بالغت في كلمة حسوب متوسط لم أرد إستخدام هذه الطريقة لإن المعالج عندي ضعيف أخذت 26 دقيقة بعد ثاني تجربة تجمد في الأولى :)

هل صنعت الـ API ؟ @يوسف سيد

مم لا، لم أنتهي من هذا المشروع الذي قلتُ أنني سأصنع الـAPI بعد الإنتهاء منه، ما زلتُ أعمل عليه كل يوم، بإذن الله قد يرى النور قريبًا جدًا.