I am not sure if there is a specific algorithm/soft computing model which has the ability of determine the pattern of the Arabic words. I think, there are two ways when you should start:
1- Bag of Words: even for the English words, there is a bag of words which contains thousands or maybe more of English words, each one with its own type. You may find a specific bag of words/dictionary contains all/most of Arabic words with there types. In case you could find such a dictionary, you can create a new one.
2- Steaming: Have you read about steaming? Steaming means convert the word into the original verb. for example (Played/Player/Playing -> Play || Going/Went/Gone -> Go) ... so on. In Arabic language, there is a specific type of steaming for doing so. I think, if you steamed the word and convert it into the original verb, then you can check the pre/post characters and check under which type or pattern does it fall?
These are ideas and suggestions, Hope they help you..
According to your suggestions, BOW could help in this manner, but finding a well and high quality of such lexicon or BOW is not easy, as lack of Arabic NLP resources is a strong challenge in this area.
According to Steaming, I think you mean stemming! I think that finding the root of words may be more helpful than stemming, since stemming removes the affixes attached to the word, for example: the stem of word "يلعبون" is "يلعب", while the root is "لعب", which will be more useful in finding the pattern of Arabic words.