Boulbaba's picture
Upload 210 files
21baa2f verified
'''
Created on ู ูขโ€/ู ูงโ€/ูขู ูกู 
@Created by: Muhammad Altabba
'''
from ...Morphology.Cliticlization.CliticsGrammers import CliticsGrammers;
from ...Morphology.Cliticlization.EncliticGrammer import EncliticGrammer;
from ....Models.Lexicon.LettersConstants import DiacriticsConstants;
from ....Models.Tagging.POSTags.ParticlePOS import ParticlePOSConstants;
from ....Models.Tagging.POSTags.POS import POSConstants;
from ....Models.Tagging.POSTags.CliticlessPOS import CliticlessPOSConstants;
from ....Models.Tagging.POSTags.VerbalPOS import VerbalPOSConstants;
from ....Models.Tagging.POSTags.NominalPOS import NominalPOSConstants;
class EncliticsGrammers(CliticsGrammers):
'''
classdocs
'''
GrammersDict = {};
def __init__(self):
'''
Constructor
'''
# Nominative_Pronoun
# Accusative_or_Genitive_Pronoun
# pronounSubClass = 0, \
# gender = CliticlessPOSConstants.Gender.all_Cases, \
# number = CliticlessPOSConstants.Number.all_Cases, \
# person = CliticlessPOSConstants.Person.all_Cases, \
#
# CliticlessPOSConstants.CaseAndMood.all_Cases, \
# CliticlessPOSConstants.Gender.all_Cases, \
# CliticlessPOSConstants.Number.all_Cases, \
# CliticlessPOSConstants.Person.all_Cases, \
# VerbalPOSConstants.Aspect.all_Cases, \
# VerbalPOSConstants.Activeness.all_Cases
# NominalPOSConstants.Definiteness.all_Cases):
'''
ุฌู…ูŠุน ุงู„ุถู…ุงุฆุฑ ุงู„ู…ูˆุฌูˆุฏุฉ ู‡ู†ุง ู‡ูŠ ุถู…ุงุฆุฑ ู†ุตุจ ู„ุฃู† ุถู…ุงุฆุฑ ุงู„ุฑูุน ู…ูˆุฌูˆุฏุฉ ุถู…ู† ุงู„ุฃูˆุฒุงู†:
ุงู„ู‚ูˆุงุนุฏ ุงู„ู…ุณุชุฎุฏู…ุฉ:
ุถู…ุงุฆุฑ ุงู„ู†ุตุจ ู„ุง ุชุฃุชูŠ ู…ุน ุงู„ุฃูุนุงู„ ุงู„ุงุฒู…ุฉ
ุถู…ุงุฆุฑ ุงู„ู…ุฎุงุทุจ ู„ุง ุชุฃุชูŠ ู…ุน ูุนู„ ุงู„ุฃู…ุฑ
ู…ุน ุงู„ู…ุจู†ูŠ ู„ู„ู…ุฌู‡ูˆู„ ุชุฃุชูŠ ุฌู…ูŠุน ุงู„ุถู…ุงุฆุฑ (ููŠ ุงู„ุฎู„ูŠู„ ู„ุง ูŠุฃุชูŠ ู…ุน ุงู„ู…ุจู†ูŠ ู„ู„ู…ุฌู‡ูˆู„ ุถู…ุงุฆุฑ) ู„ุง ุฃุฏุฑูŠ ู„ู…ุงุฐุง
ุถู…ุงุฆุฑ ุงู„ู†ุตุจ ู„ุง ุชุฃุชูŠ ู…ุน ุงู„ู…ุนุฑู‘ู ุจุฃู„ ุฃูˆ ุงู„ู†ูƒุฑุฉ, ูู‡ูŠ ุชุฃุชูŠ ู…ุน ุงู„ุฃุณู…ุงุก ููŠ ู…ุญู„ ุฌุฑ ุจุงู„ุฅุถุงูุฉ ูˆุงู„ุงุณู… ู‚ุจู„ู‡ุง ู…ุนุฑู‘ู ุจุงู„ุฅุถุงูุฉ
'''
#ูƒูŽ
Masculine_Singular_Second_Person = EncliticGrammer(NominalPOSConstants.SubClass.Accusative_or_Genitive_Pronoun, \
NominalPOSConstants.Gender.Masculine, \
NominalPOSConstants.Number.Singular, \
NominalPOSConstants.Person.Second_Person, \
CliticlessPOSConstants.CaseAndMood.all_Cases, \
CliticlessPOSConstants.Gender.all_Cases, \
CliticlessPOSConstants.Number.all_Cases, \
CliticlessPOSConstants.Person.all_Cases, \
VerbalPOSConstants.Aspect.all_Cases - VerbalPOSConstants.Aspect.Imperative, \
VerbalPOSConstants.Activeness.all_Cases, \
VerbalPOSConstants.Transitive.all_Cases - VerbalPOSConstants.Transitive.Intransitive, \
NominalPOSConstants.Definiteness.Definite_by_Another);
#ูƒู
Feminine_Singular_Second_Person = EncliticGrammer(NominalPOSConstants.SubClass.Accusative_or_Genitive_Pronoun, \
NominalPOSConstants.Gender.Feminine, \
NominalPOSConstants.Number.Singular, \
NominalPOSConstants.Person.Second_Person, \
CliticlessPOSConstants.CaseAndMood.all_Cases, \
CliticlessPOSConstants.Gender.all_Cases, \
CliticlessPOSConstants.Number.all_Cases, \
CliticlessPOSConstants.Person.all_Cases, \
VerbalPOSConstants.Aspect.all_Cases - VerbalPOSConstants.Aspect.Imperative, \
VerbalPOSConstants.Activeness.all_Cases, \
VerbalPOSConstants.Transitive.all_Cases - VerbalPOSConstants.Transitive.Intransitive, \
NominalPOSConstants.Definiteness.Definite_by_Another);
#ูƒู…ุง
all_Cases_Dual_Second_Person = EncliticGrammer(NominalPOSConstants.SubClass.Accusative_or_Genitive_Pronoun, \
NominalPOSConstants.Gender.all_Cases, \
NominalPOSConstants.Number.Dual, \
NominalPOSConstants.Person.Second_Person, \
CliticlessPOSConstants.CaseAndMood.all_Cases, \
CliticlessPOSConstants.Gender.all_Cases, \
CliticlessPOSConstants.Number.all_Cases, \
CliticlessPOSConstants.Person.all_Cases, \
VerbalPOSConstants.Aspect.all_Cases - VerbalPOSConstants.Aspect.Imperative, \
VerbalPOSConstants.Activeness.all_Cases, \
VerbalPOSConstants.Transitive.all_Cases - VerbalPOSConstants.Transitive.Intransitive, \
NominalPOSConstants.Definiteness.Definite_by_Another);
#ูƒู…
Masculine_Plural_Second_Person = EncliticGrammer(NominalPOSConstants.SubClass.Accusative_or_Genitive_Pronoun, \
NominalPOSConstants.Gender.Masculine, \
NominalPOSConstants.Number.Plural, \
NominalPOSConstants.Person.Second_Person, \
CliticlessPOSConstants.CaseAndMood.all_Cases, \
CliticlessPOSConstants.Gender.all_Cases, \
CliticlessPOSConstants.Number.all_Cases, \
CliticlessPOSConstants.Person.all_Cases, \
VerbalPOSConstants.Aspect.all_Cases - VerbalPOSConstants.Aspect.Imperative, \
VerbalPOSConstants.Activeness.all_Cases, \
VerbalPOSConstants.Transitive.all_Cases - VerbalPOSConstants.Transitive.Intransitive, \
NominalPOSConstants.Definiteness.Definite_by_Another);
#ูƒู†
Feminine_Plural_Second_Person = EncliticGrammer(NominalPOSConstants.SubClass.Accusative_or_Genitive_Pronoun, \
NominalPOSConstants.Gender.Feminine, \
NominalPOSConstants.Number.Plural, \
NominalPOSConstants.Person.Second_Person, \
CliticlessPOSConstants.CaseAndMood.all_Cases, \
CliticlessPOSConstants.Gender.all_Cases, \
CliticlessPOSConstants.Number.all_Cases, \
CliticlessPOSConstants.Person.all_Cases, \
VerbalPOSConstants.Aspect.all_Cases - VerbalPOSConstants.Aspect.Imperative, \
VerbalPOSConstants.Activeness.all_Cases, \
VerbalPOSConstants.Transitive.all_Cases - VerbalPOSConstants.Transitive.Intransitive, \
NominalPOSConstants.Definiteness.Definite_by_Another);
#ู‡
Masculine_Singular_Third_Person = EncliticGrammer(NominalPOSConstants.SubClass.Accusative_or_Genitive_Pronoun, \
NominalPOSConstants.Gender.Masculine, \
NominalPOSConstants.Number.Singular, \
NominalPOSConstants.Person.Third_Person, \
CliticlessPOSConstants.CaseAndMood.all_Cases, \
CliticlessPOSConstants.Gender.all_Cases, \
CliticlessPOSConstants.Number.all_Cases, \
CliticlessPOSConstants.Person.all_Cases, \
VerbalPOSConstants.Aspect.all_Cases, \
VerbalPOSConstants.Activeness.all_Cases, \
VerbalPOSConstants.Transitive.all_Cases - VerbalPOSConstants.Transitive.Intransitive, \
NominalPOSConstants.Definiteness.Definite_by_Another);
#ู‡ุง
Feminine_Singular_Third_Person = EncliticGrammer(NominalPOSConstants.SubClass.Accusative_or_Genitive_Pronoun, \
NominalPOSConstants.Gender.Feminine, \
NominalPOSConstants.Number.Singular, \
NominalPOSConstants.Person.Third_Person, \
CliticlessPOSConstants.CaseAndMood.all_Cases, \
CliticlessPOSConstants.Gender.all_Cases, \
CliticlessPOSConstants.Number.all_Cases, \
CliticlessPOSConstants.Person.all_Cases, \
VerbalPOSConstants.Aspect.all_Cases, \
VerbalPOSConstants.Activeness.all_Cases, \
VerbalPOSConstants.Transitive.all_Cases - VerbalPOSConstants.Transitive.Intransitive, \
NominalPOSConstants.Definiteness.Definite_by_Another);
#ู‡ู…ุง
all_Cases_Dual_Third_Person = EncliticGrammer(NominalPOSConstants.SubClass.Accusative_or_Genitive_Pronoun, \
NominalPOSConstants.Gender.all_Cases, \
NominalPOSConstants.Number.Dual, \
NominalPOSConstants.Person.Third_Person, \
CliticlessPOSConstants.CaseAndMood.all_Cases, \
CliticlessPOSConstants.Gender.all_Cases, \
CliticlessPOSConstants.Number.all_Cases, \
CliticlessPOSConstants.Person.all_Cases, \
VerbalPOSConstants.Aspect.all_Cases, \
VerbalPOSConstants.Activeness.all_Cases, \
VerbalPOSConstants.Transitive.all_Cases - VerbalPOSConstants.Transitive.Intransitive, \
NominalPOSConstants.Definiteness.Definite_by_Another);
#ู‡ู…
Masculine_Plural_Third_Person = EncliticGrammer(NominalPOSConstants.SubClass.Accusative_or_Genitive_Pronoun, \
NominalPOSConstants.Gender.Masculine, \
NominalPOSConstants.Number.Plural, \
NominalPOSConstants.Person.Third_Person, \
CliticlessPOSConstants.CaseAndMood.all_Cases, \
CliticlessPOSConstants.Gender.all_Cases, \
CliticlessPOSConstants.Number.all_Cases, \
CliticlessPOSConstants.Person.all_Cases, \
VerbalPOSConstants.Aspect.all_Cases, \
VerbalPOSConstants.Activeness.all_Cases, \
VerbalPOSConstants.Transitive.all_Cases - VerbalPOSConstants.Transitive.Intransitive, \
NominalPOSConstants.Definiteness.Definite_by_Another);
#ู‡ู†
Feminine_Plural_Third_Person = EncliticGrammer(NominalPOSConstants.SubClass.Accusative_or_Genitive_Pronoun, \
NominalPOSConstants.Gender.Feminine, \
NominalPOSConstants.Number.Plural, \
NominalPOSConstants.Person.Third_Person, \
CliticlessPOSConstants.CaseAndMood.all_Cases, \
CliticlessPOSConstants.Gender.all_Cases, \
CliticlessPOSConstants.Number.all_Cases, \
CliticlessPOSConstants.Person.all_Cases, \
VerbalPOSConstants.Aspect.all_Cases, \
VerbalPOSConstants.Activeness.all_Cases, \
VerbalPOSConstants.Transitive.all_Cases - VerbalPOSConstants.Transitive.Intransitive, \
NominalPOSConstants.Definiteness.Definite_by_Another);
#ู†ูŠ - ูŠ
all_Cases_Singular_First_Person = EncliticGrammer(NominalPOSConstants.SubClass.Accusative_or_Genitive_Pronoun, \
NominalPOSConstants.Gender.all_Cases, \
NominalPOSConstants.Number.Singular, \
NominalPOSConstants.Person.First_Person, \
CliticlessPOSConstants.CaseAndMood.all_Cases, \
CliticlessPOSConstants.Gender.all_Cases, \
CliticlessPOSConstants.Number.all_Cases, \
CliticlessPOSConstants.Person.all_Cases, \
VerbalPOSConstants.Aspect.all_Cases, \
VerbalPOSConstants.Activeness.all_Cases, \
VerbalPOSConstants.Transitive.all_Cases - VerbalPOSConstants.Transitive.Intransitive, \
NominalPOSConstants.Definiteness.Definite_by_Another);
#ู†ุง
all_Cases_DualPlural_First_Person = EncliticGrammer(NominalPOSConstants.SubClass.Nominative_Pronoun, \
NominalPOSConstants.Gender.all_Cases, \
NominalPOSConstants.Number.Dual & NominalPOSConstants.Number.Plural, \
NominalPOSConstants.Person.First_Person, \
CliticlessPOSConstants.CaseAndMood.all_Cases, \
CliticlessPOSConstants.Gender.all_Cases, \
CliticlessPOSConstants.Number.all_Cases, \
CliticlessPOSConstants.Person.all_Cases, \
VerbalPOSConstants.Aspect.all_Cases, \
VerbalPOSConstants.Activeness.all_Cases, \
VerbalPOSConstants.Transitive.all_Cases - VerbalPOSConstants.Transitive.Intransitive, \
NominalPOSConstants.Definiteness.Definite_by_Another);
#ุญุฑู ุฒุงุฆุฏ
appendix = EncliticGrammer(ParticlePOSConstants.SubClass.Appendix);
#ุฑุจู…ุง ูŠู†ุชุญ ุญุฑู ุงู„ูˆุงูˆ ููŠ ุงู„ู„ูˆุงุญู‚ ุนู† ุฅุดุจุงุน ุงู„ุถู…
self.GrammersDict = {};
self.GrammersDict['ูˆ'] = {};
self.GrammersDict['ูˆ'][DiacriticsConstants.Sukoon] \
= [appendix];
self.GrammersDict['ูŠ'] = {};
self.GrammersDict['ูŠ'][DiacriticsConstants.Sukoon] \
= [all_Cases_Singular_First_Person];
self.GrammersDict['ู†ูŠ'] = {};
self.GrammersDict['ู†ูŠ'][DiacriticsConstants.Kasra, DiacriticsConstants.Sukoon] \
= [all_Cases_Singular_First_Person];
self.GrammersDict['ู†ุง'] = {};
self.GrammersDict['ู†ุง'][DiacriticsConstants.Fatha, DiacriticsConstants.Sukoon] \
= [all_Cases_DualPlural_First_Person];
self.GrammersDict['ูƒ'] = {};
self.GrammersDict['ูƒ'][DiacriticsConstants.Fatha] \
= [Masculine_Singular_Second_Person];
self.GrammersDict['ูƒ'][DiacriticsConstants.Kasra] \
= [Feminine_Singular_Second_Person];
self.GrammersDict['ูƒู…ุง'] = {};
self.GrammersDict['ูƒู…ุง'][DiacriticsConstants.Damma, DiacriticsConstants.Fatha, DiacriticsConstants.Sukoon] \
= [all_Cases_Dual_Second_Person];
self.GrammersDict['ูƒู…'] = {};
self.GrammersDict['ูƒู…'][DiacriticsConstants.Damma, DiacriticsConstants.Sukoon] \
= [Masculine_Plural_Second_Person];
self.GrammersDict['ูƒู†'] = {};
self.GrammersDict['ูƒู†'][DiacriticsConstants.Damma, DiacriticsConstants.Shadda] \
= [Feminine_Plural_Second_Person];
self.GrammersDict['ู‡'] = {};
self.GrammersDict['ู‡'][DiacriticsConstants.Damma] \
= [Masculine_Singular_Third_Person];
self.GrammersDict['ู‡ุง'] = {};
self.GrammersDict['ู‡ุง'][DiacriticsConstants.Fatha, DiacriticsConstants.Sukoon] \
= [Feminine_Singular_Third_Person];
self.GrammersDict['ู‡ู…ุง'] = {};
self.GrammersDict['ู‡ู…ุง'][DiacriticsConstants.Damma, DiacriticsConstants.Fatha, DiacriticsConstants.Sukoon] \
= [all_Cases_Dual_Third_Person];
self.GrammersDict['ู‡ู…'] = {};
self.GrammersDict['ู‡ู…'][DiacriticsConstants.Damma, DiacriticsConstants.Sukoon] \
= [Masculine_Plural_Third_Person];
self.GrammersDict['ู‡ู†'] = {};
self.GrammersDict['ู‡ู†'][DiacriticsConstants.Damma, DiacriticsConstants.Shadda] \
= [Feminine_Plural_Third_Person];