Abstract: - This paper describes a rule-based technique for

A Rule-Based Morphological Analyzer of Arabic Words
Computer Science Department
Princess Sumaya University College for Technology
Royal Scientific Society
Amman - JORDAN
Abstract: - This paper describes a rule-based technique for analyzing the morphology of
Arabic words. The proposed ‘Morphological Analyzer’ processes the input word in order to
determine its lexical form. The lexical form of the majority of Arabic words consists of a root
and a morphological pattern. The analyzer applies a set of predefined rules in order to analyze
the morphology of Arabic words as they appear in real text. It is able to recognize
diacriticized, undiacriticized or partially diacriticized Arabic words generated from N-letter
roots. In order to determine the possible meanings of a word, the Morphological Analyzer
also provides some useful attributes of the word such as its type, gender, tense and number.
The proposed Morphological Analyzer is a general-purpose technique that can be integrated
into larger scale systems such as automatic translation applications, text summarization
applications, text correction applications, web search engines, automatic vowelization of
Arabic text applications and other natural language processing applications.
Keywords: - Natural Language Processing, Arabic Word Recognition, Lexical Form, Roots,
Morphological Patterns, Morphological Analyzer.
the subject of the morphological analysis
of Arabic words. Most of these published
works ignore the presence of diacritics in
the Arabic text or limit the analysis to
words generated from 3-letter roots [1] [4]
The rule-based Morphological Analyzer
presented in this paper has the objective of
finding the lexical form and the possible
meanings of each word in a text written in
Arabic language. The proposed analyzer is
being developed in order to analyze
Arabic words as they appear in real text. It
can be applied in the case of diacriticized,
undiacriticized or partially diacriticized
Arabic words. Furthermore, it allows the
morphological analysis of words generated
from variable root-lengths.
Our approach is based on the use of the
specific features and structures that the
Arabic language uses for generating
words. It applies a set of predefined rules
specific to the Arabic language in order to
extract the lexical structure of the word
which generally consists of a root and a
morphological pattern. A classical lexicon
1. Introduction
For the Arabic language, as well as for
many other languages, the morphological
features of a word provide crucial
information to enable understanding of
text and information extraction. In fact, the
possible meanings of individual words
depends mainly on their morphology and
their position in a sentence. Therefore, the
possible meanings of a word must be
determined first in order to accomplish the
understanding of text written in a natural
A number of research papers concerning
the morphological analysis of words have
been published for various natural
languages, particularly the European
languages [2] [5] [8] [6] [9]. Descriptions
of real systems for analyzing the
morphology of these languages are also
available [7]. These works show that the
complexity of the morphological analysis
of words varies from one natural language
to another. There have been fewer articles
and published research papers written on
is used to verify the correctness of the
analyzed word and to determine the
meanings it could take.
The morphological information that our
technique is able to extract gives vital
support to the different fields and
Processing. The purpose of the
Morphological Analyzer is to preprocess
Arabic text in order to prepare it for some
automated treatment such as humanmachine interaction, translation, text
summarization, text correction, automatic
vowelization of Arabic text, web search
engines and other applications of natural
language processing.
considered to deal with the irregularities
present in almost all the natural languages.
The morphology of the Arabic language is
based on the Semitic root-and-pattern
scheme of forming words. Therefore, the
majority of words are generated from
basic entities called roots or radicals
according to a predefined list of patterns
called morphological balances or patterns
[1] [4] [3]. The roots are constructed
mainly from 3 letters, although 4 and 5letter roots exist too. The morphological
patterns represent the major spelling rules
of Arabic words. This mechanism of
Arabic word generation is called ‘ALISHTIQAQ.’
performed by adding letters and/or
diacritical marks to the roots. These
additional letters and diacritical marks
may be added at the beginning, at the
middle or at the end of the root. In this
paper, a morphological pattern is
represented by the additional parts, their
positions and the slots where the letters of
a root can be inserted. The character “*”
represents the slots of the root’s letters.
Figure 1 contains examples that illustrate
the “AL-ISHTIQAQ “ mechanism, it
presents words generated from the same
root “ K T B “ according to different
morphological patterns. It is important to
note the role that diacritics play in fixing
the meaning of the first and second words
of Figure 1.
2. The Morphology of Arabic
In many European languages words are
constructed from basic units called
morphemes by adding a suffix and prefix.
A morpheme is the primitive unit of
meaning in a language. For example, the
meaning of the English word ‘friendly’ is
derivable from the meaning of the noun
‘friend’ and the suffix ‘–ly’ that
transforms a noun into an adjective [3]. In
such cases the morphological analysis is
based on the elemination of affixes and the
extraction of the basic morpheme of a
word. Special treatment is always
Example of words generated from the same root
“K T B “ ‫ك ت ب‬
The generated words
‫ََب َ َت‬
‫َبِ َت‬
‫َ باب‬
‫َ ات ت‬
Their meaning in
(He) wrote
(It is ) Written
(They are) writing
Morphological pattern used
for building the word
َ * َ *َ *
َ*َ *َ *
*‫* * ا‬
* * ‫* ا‬
‫يـ * * * و ن‬
Figure 1. AL-ISHTIQAQ Mechanism
All classifications of words (verbs, nouns,
adjectives and adverbs) can be generated
from roots according to the appropriate
patterns. The pattern used for generating a
word determines its various attributes such
as gender (masculine/feminine), number
(singular/plural), tense (past, present, and
imperatives), mode etc. Figure 2 presents
an example that shows the importance of
the standard Arabic morphological
patterns in fixing the meaning of a word.
Based on the above, an Arabic word can
be represented lexically by its root, along
with its morphological pattern. The latter
is one element of a countable set of limited
size. A pattern is defined by a set of
additive letters and/or a set of diacritical
marks and their positions in the generated
by the diacritical marks. These marks are
classified into the following categories: [1]
 Three diacritical marks to indicate
the short vowels ( ِ ُ َ ),
 Double diacritical marks which
combine the single ones ( ٍ ٌ َ
 Single Diacritical mark to indicate
absence of vowelization ( َ ),
 A single diacritical mark to indicate
the duplicate occurrence of a
consonant ( َ )
According to the extent that diacritics have
been used, Arabic text may be classified
into three different categories:
undiacriticized, partially diacriticized, and
fully diacriticized text. The first category
represents text without diacritics such as
typed or printed text and newspapers. The
second category represents partially
diacriticized text where diacritical marks
are added to eliminate the ambiguities of
some words. The last category represents
fully diacriticized Arabic text, according
to which every consonant is followed by a
diacritical mark. Such a format is used for
writing the Holy Koran, classic Arabic
literature and children’s educational
The third challenge is that not all the
words in Arabic text are generated from a
root. For example, some words such as the
tools and foreign words cannot be broken
down into a root and pattern. As the
number of tools is limited, a table of these
predefined tools can be used to check
whether a word is a tool or not before
sending it to the analyzer. Meanwhile the
‘loan’ or foreign words, are listed in the
morphological analysis.
3. Arabic Language Features
and Challenges
The formation of Arabic words presents
specific features and challenges that must
be taken into consideration when fixing
the rules used by the morphological
analyzer. The first challenge is that some
letters of the root may be dropped or
modified during the generation of words
from roots. The analyzer has to rebuild the
original root-letters by retrieving the
missing or modified letters of the word.
The second challenge is the presence of
eight different types of diacritical marks,
used to represent short vowels. In written
text they are considered as special letters
where each one is assigned a single code,
as with normal letters. In fully
diacriticized text a diacritical mark is
added after each consonant of the word.
These diacritical marks play a very
important role in fixing the meaning of
words. In fact, two different patterns may
have the same sequence of consonants, but
one is distinguished from the other solely
The word ( ‫ ) لـاعـبـون‬is generated by the root play ( ‫ ) لـعــ‬according to the
pattern ( ‫) فاعـلــون‬. This pattern indicates that the word is a noun, its
gender is masculine, and it is plural.
The final meaning will be players: (play: noun; plural; masculine)
Figure 2. Role of the Morphological Pattern of an Arabic Word in Fixing its
mark EXTRA-SECOUN. A word is then
represented by a list of character L
according to the next format:
4. The Morphological Analyzer
The Morphological Analyzer of Arabic
words (MAAW) processes each word of
the input text in order to determine its root
and pattern. The results of the
morphological analyzer can be used for
further analysis. Figure 3 presents these
transformations schematically.
The identification of the morphological
structure of a word depends on a rulebased system that can find the
morphological pattern for diacriticized or
undiacriticized words. To achieve this
process, we assume that a diacritic follows
each letter of the word. If a diacritic is
omitted, it will be replaced by a special
character (EXTRA-SECOUN) that we
introduce to replace the absent diacritic.
This diacritic (EXTRA-SKOUN) will be
noted by a dot in the examples of this
A procedure ‘ Check_Diacritics’ takes the
list of characters forming the word and
checks for the presence of diacritics after
each consonant. It replaces the absence of
diacritical marks after a consonant by the
[C1 V1 C2 V2 . . . Cn Vn]
Where Ci is a consonant and Vi is a
diacritical mark. Each one of the classical
patterns is also represented by a list of the
same structure where the slots of a root’s
letters are marked by the character ‘*’.
Figure 4 shows an example of a classical
pattern representation.
To deal with the three possible situations
of Arabic text (fully diacriticized, partially
diacriticized and undiacriticized text), the
list L will be further divided into two new
lists. The first list LC contains the
sequence of consonant [C1, C2, . . . Cn]
and the second list LV contains the
diacritical characters [V1, V2, . . . Vn].
Table 1 shows examples of the
segmentation of words into consonants
and diacritics. The three examples given in
Table 1 share the same list of consonants
Original Text
Morphological Analyzer : MAAW
Morphological Features
Further Analysis (NLP Applications)
Figure 3. Morphological Analyzer
The pattern:
“ ‫ــون‬
ْ ‫“ يَـ ْفـعــ ْل‬
Its corresponding list : [ َ
Figure 4. Pattern Representation
Word Class
ْ ‫ي‬
‫ـذهـبُ ْـون‬
Fully diacriticized
Partially diacriticized
List of
[ ‫] ي ذ هـ و ن‬
[ ‫] ي ذ هـ و ن‬
[ ‫] ي ذ هـ و ن‬
List of Diacritics
[ َ َْ َ ْ َ ]
[ َ . . َ . َ ]
[ . . . . . .]
Table 1. Decomposition of Words into a List of Consonants and a List of
The list of consonants (LC) represents the
letters of the word’s root, and the suffixes,
infixes and prefixes used to form the word
according to a given pattern. In order to
extract the root of a word, the list LC can
be represented by the following general
representation allows us to manipulate all
kind of roots (3-letters roots, 4-letters
roots and 5-letters roots). Table 2 gives
examples of the above representation. The
first two words are generated from two
different three-letter roots according to the
same morphological pattern, they share the
same additive parts (prefix, infix and
postfix). The last three words are
generated from the same root according to
different patterns.
The morphological patterns will also be
segmented into two lists: LC and LV. For
example the pattern presented above in
Figure 4 can be broken down into two
lists: a list of consonants (LC) and a list of
diacritical marks (LV) [Figure 5]. The
separation of consonants and diacritics
significantly reduces the number of
patterns to be tested.
[X1[X2[X3]]] R1 [Y1] R2 [Y2] R3 [
[Y3] R4 [[Y4] R5]] [Z1[Z2[Z3]] ]
where components X1X2X3 represent a
prefix of 3 letters maximum, the
components Z1Z2Z3 represents a postfix
of three letters maximum, and components
Y1Y2Y3Y4 represent the possible infixes
of four letters maximum. The slots R1, R2,
R3, R4, and R5 represent the letters of the
root used to generate the word. The
characters [ ] are used here to indicate that
the included component is optional. This
List of
[ ‫] س ي ذ هـ و ن‬
[‫] د ارسون‬
[‫] مدرسون‬
[ ‫] ذ هـ‬
[ ]
[ ‫]م‬
Y1 Y2
[ ]
[ ]
[ ]
Table 2. Decomposition of the List of Consonants
The pattern:
List of consonant (including the slots for root) : [
List of Diacritical marks:
Figure 5. Decomposition of Patterns Into a List of Consonants and a List of
The LC list of a given pattern will be
represented by the following structure:
Morphological Analyzer
[ X1 [ X2 [ X3 ] ] ] * [ Y1 ] * [ Y2 ] * [
[Y3] * [[Y4] * ] ] [ Z1 [ Z2 [ Z3 ] ] ]
The main components of the proposed
Morphological Analyzer (MAAW) are
shown in Figure 8. It has three analytical
components: the ‘rules’ component, the
‘lexical’ component, and the ‘patterns’
First, the rules component consists of an
engine containing the rules used to extract
diacritics, and the rules used to extract the
patterns and roots. Second, the pattern
component lists the standard patterns,
where we associate with each entry all the
possible and acceptable configurations of
diacritical marks, the number of
configurations is limited to a maximum of
5. Third, the lexicon has a classical form
and lists the roots of the Arabic language,
and for each root the possible patterns that
can be applied to generate words from the
root. The lexicon is used to verify the
correctness of the analysis performed by
the other components of MAAW. If the
word-correctness is verified , the extracted
root, pattern and list of diacritics will be
used by the lexicon to identify its possible
The characters ‘*’ represent slots where
consonants can be inserted to form a real
word. Table 3 shows examples of the
representation of morphological patterns
using this schema. A comparison of
Tables 2 and 3 shows that the words of
Table 2 share the same prefix, infix and
postfix parts with the patterns of Table 3,
which means that the words of Table 2 are
generated according to the corresponding
patterns of Table 3.
Morphological patterns can be regrouped
into classes according to their list of
consonants. Patterns of the same class
share the same list of consonants and they
differ one from the other according to the
list of diacritical marks. Table 4 shows an
example of three different patterns of the
same class; these patterns have the same
list LC and different lists LV. The set of
patterns will be represented by the set of
consonant lists LC, where we associate
with each entry all the possible and correct
combinations of diacritical marks LV. The
couplet LC and LV will determine the
morphology of the word.
The List PLC
[ ‫] س ي *** و ن‬
[‫] * ا ** ون‬
[ *‫] م*ا* ي‬
[ ]
[ ‫]م‬
Y1 Y2
[ ]
[ ]
Table 3. Examples of Pattern Representation
‫يـ ْفـعـلُ ْـو ْن‬
‫يُـ ْفـعـلُ ْـو ْن‬
‫يـ ْفـ ّعـلً ْـو ْن‬
List of Consonants
[ ‫] ي *** و ن‬
[ ‫] ي *** و ن‬
[ ‫] ي *** و ن‬
List of Diacritical Marks
[ ْ َْ
ْ َ ]
[ ْ َْ ُ َْ َُ ]
[ ْ َْ َُ ّ َْ َُ ]
Table 4. Grouping Patterns According to Their List of Consonants
The recursive rule ‘Decompose’ performs
the decomposition of the word into two
lists; one for consonants, LC, and the
second for diacritics, LV. Decompose
calls another rule In. The rule ‘In’ returns
TRUE only if the character H is one of the
diacritical marks of the Arabic language. It
marks the absence of diacritics by adding
the EXTRA_SECOUN mark ‘dot.’ The
recursive rule Decompose can be
described by the following Prolog style
code [Figure 6].
The step of identification of the root and
pattern is realized by a recursive procedure
‘Match’ that takes the list LC of the input
word and returns the list PLC of
consonants of the pattern and the root
ROOT. The Prolog-style description of the
recursive rule Match is presented in
[Figure 7].
Applying the rules relaying the pattern to
the slots of the root letters identifies the
root of the word. The rule defined by
‘FindSlot’ returns a list of integers
determining the position of the letters of
the root in the given pattern. It is
necessary to use two separate rules to
identify the root, to accommodate cases
where one of the letters of a root is
dropped or changed.
The lexical componant of the system
receives the results of the precedentanalysis: the root, the list of consonant of
the pattern PLC and the list of diacritics of
the word LV. The lists LV and PLC
determine the pattern of the analyzed
word. It then verifies the correctness of the
word. An Arabic word is correct lexically
if its root is an entry of the lexicon and its
pattern is among the acceptable patterns of
this root. If the word is correct, its
meaning or meanings are provided by the
Decompose (word, LC, LV, Flag):
Decompose ([ ] , _ , _ , False ).
// Basic case when the decomposition is terminated
Decompose ([ ] , _ , T2 , True ):
// The last consonant is not
Decompose([ ] , _ , [‘.’ | T2] , False).// followed by a diacritc
Decompose ([H|T], _ , T2, _ ): In (H, DiacriticsList). // Detection of a diacritic
Decompose(T , _ , [H|T2] , False);
Decompose ([H|T], T1 , _ , False ): // Detection of a consonant at
Decompose(T , [H|T1] , _ , True); // the first call of the rule or
// after detection of a diacritic.
Decompose ([H|T], _ , T2 , True): // detection of 2
Decompose([H|T] , _ , [‘.’,T2] , False ) //consecutive consonant
Figure 6. The recursive Rule Decompose
Match (LC, PLC , ROOT):
FindPattern (LC , PLC),
FindSlots (PLC , [list_of_slots]),
FindRoot (LC , [List_of_slots], ROOT , 1);
FindPattern (LC , PLC ):
FindPattern ([],[]).
FindPattern ([Head|Tail1], [‘*‘|Tail2]): FindPattern (Tail1, Tail2).
FindPattern ([Head|Tail1], [Head|Tail2]): FindPattern (Tail1, Tail2).
FindRoot (LC , [List_of_slots], ROOT, Pos):
FindRoot (LC,[],[], _ ).
FindRoot ([Head|Tail1], [H|T], [Head|Tail2], X):
X = H,
FindRoot (Tail1, T, Tail2, X+1).
FindRoot ([Head|Tail1], L1, L2, X): FindRoot (Tail1, L1, L2, X+1).
Figure 7. The recursive Rule March
Input word
) ‫( مـعـلـِمـاْت‬
List LC
)‫(م ع ل م ا ت‬
iL t iL
ْ ِ
) ‫(ع ل م‬
)‫ا ت‬
‫( م‬
* * *
Valid Word ? Yes
Root ( ‫ ) ع ل م‬ Teach
Pattern ( ٌ ‫ ) م * َ * ِ * َ ْ ت‬ ( noun, plural, feminine,
Final Meaning : Teachers (Feminine)
Figure 8. Components of MAAW
6. Experiments
7. Conclusion
The Morphological Analyzer proposed in
this paper can be applied in different ways.
It can be used as an independent system or
as a part of one of the NLP applications.
The output of the Analyzer determines
weather the word is generated from a root
or not. If it is generated from a root
according to a pattern, this information
may be sent to a lexicon to extract the
meaning or meanings of the word. The
richness of the lexicon determines the
ultimate performance of the complete
Figure 9 gives a complete example of the
application of the rules of MAAW. The
proposed Analyzer gives accurate results
for fully diacritisized Arabic text. In the
case of the absence of diacritical marks, it
produces a list of consonants that
correspond to the morphological patterns.
In these cases, the definitive list of
diacritics replacing the missing diacritics
requires advanced syntactical analysis.
The Morphological Analyzer of Arabic
words presented in this paper aims to
prepare Arabic text for natural language
processing applications. It analyzes Arabic
words in order to extract their
morphological structures. This task poses
many problems related to the specific
features of the Arabic language, such as
the presence of diacritics and the
elimination of some letters in the
generation of words.
In order to solve these problems, we
introduced a rule-based system that takes a
word and determines its morphology. The
system has three components: the rules,
the lexicon and the morphological patterns
of the language. The morphological
analyzer proceeds by matching to
determine the root and the morphological
pattern of the word. In the case of missing
diacritics, more than one pattern may be a
candidate to the final output.
Future work will focus on an expansion of
the Morphological Analyzer toward the
use of syntactical information in order to
determine the definitive morphological
pattern used to build the word in case of
the absence of diacritical marks.
‫يـ ْلـعـب ْـون‬
[ ‫َُ و ْ ن‬
The input word:
List of characters:
َ ‫ي ل ْع‬
List of consonants:
List of diacritical marks:
‫]ي ل ع‬
َ َْ
The pattern that will be detected: [ ‫] ي * * * و ن‬
Positions of the root letters:
[2 ,3,4 ]
The root will be:
‫]ل ع‬
The Lexicon output:
 Play
PATTERN  Verb , Present, Plural, Masculine
Figure 9. Complete Example of a Word Analyzed by MAAW
ACL Special Interest Group in
Computational Phonology, Luxembourg,
pp. 1-12, August 2000.
[1] N. Ali, N Hegazi and E. Abed, “A
Morphology Based Data Compression
Technique For Arabic Text”, Computer
Communications–AFRICOM84, pp. 241251, 1984.
[6] L. Breidt and F. Segond, “IDAREX:
Formal Description of German and French
Multi-Word Expression with Finite State
Technology”, MLTT-022, Novembre
[2] E. L. Antworth, “Morphological
Parsing with a Unification-Based Word
Grammar”, North Texas Natural Language
Processing Workshop, University of Texas
pckimmo/ ntnlp94.html, May 1994.
[7] D. Carter, “Rapid development of
Morphological Descriptions for Full
per.html, 1997.
[3] A. Awajan, “Low-Level NLP
Technique for Arabic Text Processing”,
The Proceedings of the ISCA 16th
International Conference on Computers
Washington USA, pp. 287-289, March
[8] J. P.Chanod, “Finite State Composition
of French Verb Morphology”. MLTT
ttech.html, November 1994.
[4] K. R. Beesley, “Arabic Finite-State
Morphological Analysis And Generation”,
The 16th International Conference On
computational Linguistics, Proceeding.
Vol. 1, pp. 89-94, August 1996.
[9] G. Grefensette and P. Tapanainen,
“What is a word, What is a sentence,
Problems of Tokenization”, The 3rd
Lexicography and Text Research.
Complex ’94, Budapest, July 1994.
[5] K. R. Beesley and L. Karttunen,
Proceeding of the 5th Workshop of the