PHPackages                             nouralhadi/stemmer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. nouralhadi/stemmer

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

nouralhadi/stemmer
==================

The first free open source Arabic stemmer ever written in PHP for Laravel framework implementing ISRI algorithm

1.1(5y ago)4164GPL-3.0-or-laterPHPPHP &gt;=5.4.0

Since May 16Pushed 5y ago1 watchersCompare

[ Source](https://github.com/NourAlhadi/StemmerPackage)[ Packagist](https://packagist.org/packages/nouralhadi/stemmer)[ RSS](/packages/nouralhadi-stemmer/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (2)Used By (0)

PHP ISRI Stemmer
================

[](#php-isri-stemmer)

The first free and open source Arabic stemmer ever written in PHP for Laravel framework implementing ISRI algorithm.

Due to lack of support for Arabic language despite its wonderful features and grammar, and as an Arabian open source tech geek in love with technologies, I felt like it's my duty to help my native language to rise, and help making Arab programmers life a bit easier.

This package contains the ISRI Stemming class build from scratch by myself and willing to make this project for global PHP use (not restricted to Laravel) next step will be Symfony 😍 .

Please note that this is just the beginning, and I'm willing to continue building a project that will serve the whole Arab language.

### Install

[](#install)

You can install this package using composer:

```
composer require nouralhadi/stemmer

```

For Laravel &lt; 5.5, You should add the package to your service providers array in `config/app.php`:

```
\Nouralhadi\Stemmer\StemmerServiceProvider::class,

```

### How to use

[](#how-to-use)

You can visit this route `/stemmer` after installing this package to access the testing page of the package.

The only feature it contains (for now) is the `stem` feature, which accepts an arabic word and return its root.

You can use the Stemmer class by Injecting it inside your caller function / controller:

```
use Nouralhadi\Stemmer\Http\Helpers\ISRIStemmer;
public function test(ISRIStemmer $stemmer){
    $string = 'وزراء';
    echo $stemmer->stem($string);
    // Resulting: وزر
}

```

Or you can stem a complete sentence by splitting into words and steam each:

```
use Nouralhadi\Stemmer\Http\Helpers\ISRIStemmer;
public function test(ISRIStemmer $stemmer){
    $string = 'كتب المستخدم رسالة إلى مدير الموقع';
    $words = mb_split(' ',$string);

    $ret = [];
    foreach ($words as $word){
        array_push($ret, $this->Stemmer->stem($word));
    }
    $result = implode(' ', $ret);
    // Resulting: كتب خدم رسل ألى دير وقع
}

```

### Contribute

[](#contribute)

Anyone willing to contribute to this project is welcomed, any help of any kind will be appreciated, and if you're ready to help then please reach out to my personal email `nouralhadi99@gmail.com`.

### License

[](#license)

This Project is an open-sourced software licensed under the [GPLv3 License](https://opensource.org/licenses/GPL-3.0).

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2184d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/88b916f225e1d6de3b6323f468678ab427a048d596b58b6b210bb60fe12fa7ea?d=identicon)[NourAlhadi](/maintainers/NourAlhadi)

---

Top Contributors

[![NourAlhadi](https://avatars.githubusercontent.com/u/19647423?v=4)](https://github.com/NourAlhadi "NourAlhadi (2 commits)")[![NourAlhadi9](https://avatars.githubusercontent.com/u/53485108?v=4)](https://github.com/NourAlhadi9 "NourAlhadi9 (2 commits)")[![nouralhadi99-coder](https://avatars.githubusercontent.com/u/250377311?v=4)](https://github.com/nouralhadi99-coder "nouralhadi99-coder (1 commits)")

### Embed Badge

![Health badge](/badges/nouralhadi-stemmer/health.svg)

```
[![Health](https://phpackages.com/badges/nouralhadi-stemmer/health.svg)](https://phpackages.com/packages/nouralhadi-stemmer)
```

###  Alternatives

[symfony/polyfill-uuid

Symfony polyfill for uuid functions

688335.4M63](/packages/symfony-polyfill-uuid)[spatie/error-solutions

This is my package error-solutions

6853.2M11](/packages/spatie-error-solutions)[phpflo/phpflo

Flow-based programming for PHP

2173.3k4](/packages/phpflo-phpflo)[eftec/autoloadone

AutoloadOne is a program that generates an autoload class for PHP.

403.4k](/packages/eftec-autoloadone)[ys-tools/default-theme-configuration-bundle

OroCommerce Default Theme Configuration Bundle

124.2k](/packages/ys-tools-default-theme-configuration-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
