Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

پیشنهاد بهینه سازی #1

Open
nopardazco opened this issue Apr 27, 2023 · 1 comment
Open

پیشنهاد بهینه سازی #1

nopardazco opened this issue Apr 27, 2023 · 1 comment

Comments

@nopardazco
Copy link

سلام من اسکریپت شما رو بررسی کردم و خیلی از این اسکریپت خوشم اومد
چند پیشنهاد داشتم بررسی آن خالی از لطف نیست کمی تغییرات می تواند باعث بهینه سازی اسکریپت می شود
استفاده از کلاس \p{Arabic} برای شناسایی حروف فارسی.
استفاده از پارامتر u در preg_match_all برای پشتیبانی از Unicode.
حذف کاراکترهای فارسی اضافی از عبارت منظم.

private static function words($text) { $matches = array(); preg_match_all("/\p{Arabic}+/u", strtolower($text), $matches); return $matches[0]; }

`private static function edits1($word) {
$alphabet = ['ٍ','َ','ُ','ِ','ء','ئ','ی','ه','و','ن','م','ل','گ','ک','ق','ف','غ','ع','ظ','ط','ض','ص','ش','س','ژ','ز','ر','ذ','د','خ','ح','چ','ج','ث','ت','پ','ب','آ','ا','ً','ٌ'];
$n = mb_strlen($word);
$edits = array();

//deleting one char
for ($i = 0; $i < $n; $i++) {
    $edits[] = mb_substr($word, 0, $i) . mb_substr($word, $i+1);
}

//substituting one char
for ($i = 0; $i < $n; $i++) {
    foreach ($alphabet as $c) {
        $edits[] = mb_substr($word, 0, $i) . $c . mb_substr($word, $i+1);
    }
}

//swapping chars order
for ($i = 0; $i < $n-1; $i++) {
    $edits[] = mb_substr($word, 0, $i) . $word[$i+1] . $word[$i] . mb_substr($word, $i+2);
}

//inserting one char
for ($i = 0; $i < $n+1; $i++) {
    foreach ($alphabet as $c) {
        $edits[] = mb_substr($word, 0, $i) . $c . mb_substr($word, $i);
    }
}

return $edits;

}
`

@shahind
Copy link
Owner

shahind commented Apr 29, 2023

سلام، خیلی ممنون، لطفا یک pull request ثبت بفرمایید بنده سعی می کنم در اسرع وقت تست و به روز رسانی کنم.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants