class_docstr: ISRI Arabic stemmer based on algorithm: Arabic Stemming without a root dictionary.
  Information Science Research Institute. University of Nevada, Las Vegas, USA.
  
  A few minor modifications have been made to ISRI basic algorithm.
  See the source code of this module for more information.
  
  isri.stem(token) returns Arabic root for the given token.
  
  The ISRI Stemmer requires that all tokens have Unicode string types.
  If you use Python IDLE on Arabic Windows you have to decode text first
  using Arabic '1256' coding.
class_docstr_tok: ["ISRI","Arabic","stemmer","based","on","algorithm",":","Arabic","Stemming","without","a","root","dictionary",".","Information","Science","Research","Institute",".","University","of","Nevada",",","Las","Vegas",",","USA",".","A","few","minor","modifications","have","been","made","to","ISRI","basic","algorithm",".","See","the","source","code","of","this","module","for","more","information",".","isri.stem","(","token",")","returns","Arabic","root","for","the","given","token",".","The","ISRI","Stemmer","requires","that","all","tokens","have","Unicode","string","types",".","If","you","use","Python","IDLE","on","Arabic","Windows","you","have","to","decode","text","first","using","Arabic","'1256","'","coding","."]
docstr: process length five patterns and extract length three roots
docstr_tok: ["process","length","five","patterns","and","extract","length","three","roots"]
code: def pro_w53(self):
      """process length five patterns and extract length three roots"""
      if (self.stm[2] in self.pr53[0]) & (
          self.stm[0] == "\u0627"
      ):  #  افتعل   -  افاعل
          self.stm = self.stm[1] + self.stm[3:]
          return self.stm
      elif (self.stm[3] in self.pr53[1]) & (
          self.stm[0] == "\u0645"
      ):  # مفعول  -   مفعال  -   مفعيل
          self.stm = self.stm[1:3] + self.stm[4]
          return self.stm
      elif (self.stm[0] in self.pr53[2]) & (
          self.stm[4] == "\u0629"
      ):  #  مفعلة  -    تفعلة   -  افعلة
          self.stm = self.stm[1:4]
          return self.stm
      elif (self.stm[0] in self.pr53[3]) & (
          self.stm[2] == "\u062a"
      ):  #  مفتعل  -    يفتعل   -  تفتعل
          self.stm = self.stm[1] + self.stm[3:]
          return self.stm
      elif (self.stm[0] in self.pr53[4]) & (
          self.stm[2] == "\u0627"
      ):  # مفاعل  -  تفاعل
          self.stm = self.stm[1] + self.stm[3:]
          return self.stm
      elif (self.stm[2] in self.pr53[5]) & (
          self.stm[4] == "\u0629"
      ):  #     فعولة  -   فعالة
          self.stm = self.stm[:2] + self.stm[3]
          return self.stm
      elif (self.stm[0] in self.pr53[6]) & (
          self.stm[1] == "\u0646"
      ):  #     انفعل   -   منفعل
          self.stm = self.stm[2:]
          return self.stm
      elif (self.stm[3] == "\u0627") & (
          self.stm[0] == "\u0627"
      ):  #   افعال
          self.stm = self.stm[1:3] + self.stm[4]
          return self.stm
      elif (self.stm[4] == "\u0646") & (
          self.stm[3] == "\u0627"
      ):  #   فعلان
          self.stm = self.stm[:3]
          return self.stm
      elif (self.stm[3] == "\u064a") & (
          self.stm[0] == "\u062a"
      ):  #    تفعيل
          self.stm = self.stm[1:3] + self.stm[4]
          return self.stm
      elif (self.stm[3] == "\u0648") & (
          self.stm[1] == "\u0627"
      ):  #     فاعول
          self.stm = self.stm[0] + self.stm[2] + self.stm[4]
          return self.stm
      elif (self.stm[2] == "\u0627") & (
          self.stm[1] == "\u0648"
      ):  #     فواعل
          self.stm = self.stm[0] + self.stm[3:]
          return self.stm
      elif (self.stm[3] == "\u0626") & (
          self.stm[2] == "\u0627"
      ):  #  فعائل
          self.stm = self.stm[:2] + self.stm[4]
          return self.stm
      elif (self.stm[4] == "\u0629") & (
          self.stm[1] == "\u0627"
      ):  #   فاعلة
          self.stm = self.stm[0] + self.stm[2:4]
          return self.stm
      elif (self.stm[4] == "\u064a") & (
          self.stm[2] == "\u0627"
      ):  # فعالي
          self.stm = self.stm[:2] + self.stm[3]
          return self.stm
      else:
          self.suf1()  # do - normalize short sufix
          if len(self.stm) == 5:
              self.pre1()  # do - normalize short prefix
          return self.stm
  
file_path: whoosh/src/whoosh/lang/isri.py
imports: from __future__ import unicode_literals
  import re
label_desc: Use image node_id 8 for calling the ISRIStemmer obj's underlying member method code with example usage: obj.pro_w53() and returns: self, self, self, self, self, self, self, self, self, self, self, self, self, self, self, self