File size: 3,691 Bytes
21baa2f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
'''
Created on ٢٩/٠٥/٢٠١٠
@Created by: Muhammad Altabba
'''
from ....Models.Tagging.POSTags.ParticlePOS import *;
from ....Controllers.Morphology.Entities.Particle import *;
class StandAloneParticle(object):
"""
# PyUML: Do not remove this line! # XMI_ID:_hULWSI34Ed-gg8GOK1TmhA
"""
'''
Particle
'''
VoweledForm = '';
UnvoweledForm = '';
PrefixeClasses = '';
SuffixeClasses = '';
POS = ParticlePOS();
def __init__(self):
'''
Constructor
'''
self.POS = ParticlePOS();
self.POS.MainClass = POSConstants.MainClass.Particle;
self.VoweledForm = '';
self.UnvoweledForm = '';
self.PrefixeClasses = '';
self.SuffixeClasses = '';
pass
def AssignFromAlKalilDB(self, unvoweledForm, voweledForm, prefixeClasses, suffixeClasses, type):
#سابقاً كان يتم تعبئته من الملف
#toolwords.xml
#ولاحقاً أصبح من
#standaloneparticles.xml
self.VoweledForm = voweledForm;
self.UnvoweledForm = unvoweledForm;
self.PrefixeClasses = prefixeClasses;
self.SuffixeClasses = suffixeClasses;
if(type == 'حرف جر'):
self.POS.SubClass = ParticlePOSConstants.SubClass.Preposition;
elif(type == 'حرف جزم'):
self.POS.SubClass = ParticlePOSConstants.SubClass.Apocopative;
elif(type == 'حرف نصب'):
self.POS.SubClass = ParticlePOSConstants.SubClass.Accusative;
elif(type == 'حرف ناسخ'):
self.POS.SubClass = ParticlePOSConstants.SubClass.Annuler;
elif(type == 'حرف عطف'):
self.POS.SubClass = ParticlePOSConstants.SubClass.Conjunction;
elif(type == 'حرف نداء'):
self.POS.SubClass = ParticlePOSConstants.SubClass.Vocative;
elif(type == 'حرف استثناء'):
self.POS.SubClass = ParticlePOSConstants.SubClass.Exceptive;
elif(type == 'حرف استفهام'):
self.POS.SubClass = ParticlePOSConstants.SubClass.Interrogative;
elif(type == 'حرف استقبال'):
self.POS.SubClass = ParticlePOSConstants.SubClass.Futurity;
elif(type == 'حرف شرط'):
self.POS.SubClass = ParticlePOSConstants.SubClass.Conditional;
elif(type == 'حرف تحقيق'):
self.POS.SubClass = ParticlePOSConstants.SubClass.RealizationORAlmost;
elif(type == 'حرف نصب فرعي'):
self.POS.SubClass = ParticlePOSConstants.SubClass.PartialAccusative;
elif(type == 'حرف تعليل'):
self.POS.SubClass = ParticlePOSConstants.SubClass.Causative;
elif(type == 'حرف نفي'):
self.POS.SubClass = ParticlePOSConstants.SubClass.Negative;
elif(type == 'حرف قسم'):
self.POS.SubClass = ParticlePOSConstants.SubClass.Jurative;
# elif(type == 'حرف استئناف'):
# #غير موجودة في الخليل وضعتها من أجل المستقبل
# self.POS.SubClass = ParticlePOSConstants.SubClass.Resumption;
#
else:
raise Exception('This type [' + type + '] is not known for a Particle!');
pass
def ReturnAsParticle(self):
pos = self.POS.Clone();
particle = Particle(self.UnvoweledForm, self.VoweledForm, ParticleConstants.State.StandAlone, pos);
return particle;
pass
|