Download SourceCode/Controllers/Morphology/Compounding/CompoundParsing.py from kachaf/qutuf: direct link, hf CLI and curl.
- Browser
- Download file 2.88 kB
-
https://huggingface.co/spaces/kachaf/qutuf/resolve/main/SourceCode/Controllers/Morphology/Compounding/CompoundParsing.py
- Command line
-
hf download hf://spaces/kachaf/qutuf/SourceCode/Controllers/Morphology/Compounding/CompoundParsing.py
-
curl -L -o CompoundParsing.py https://huggingface.co/spaces/kachaf/qutuf/resolve/main/SourceCode/Controllers/Morphology/Compounding/CompoundParsing.py
2.88 kB
| ''' | |
| Created on ٢٨/٠٦/٢٠١٠ | |
| @Created by: Muhammad Altabba | |
| ''' | |
| from ....Controllers.General.ArabicStringUtility import *; | |
| from ....Controllers.Tokenization.TokenType import TokenType; | |
| from ....Controllers.Morphology.Entities.SurfaceFormMorphemes import *; | |
| class CompoundParsing(object): | |
| """ | |
| # PyUML: Do not remove this line! # XMI_ID:_q0LRgY35Ed-gg8GOK1TmhA | |
| """ | |
| ''' | |
| Parsing Compound words | |
| ''' | |
| def __init__(self): | |
| ''' | |
| Constructor | |
| ''' | |
| pass | |
| def Parsing(self, textEncapsulator, specialWords): | |
| compoundNounsDict = specialWords.CompoundNouns; | |
| for sentence in textEncapsulator.Sentences[:]: | |
| index = 0; | |
| while index < len(sentence.Words)-2: | |
| if(not (sentence.Words[index].TokenType.Id == TokenType.Constants.Id.ArabicText and \ | |
| sentence.Words[index+1].TokenType.Id == TokenType.Constants.Id.WhiteSpace and \ | |
| sentence.Words[index+2].TokenType.Id == TokenType.Constants.Id.ArabicText)): | |
| index += 1; | |
| continue; | |
| unvoweldForm = ' '.join([sentence.Words[index].SecondNormalizationForm , sentence.Words[index+2].SecondNormalizationForm]) ; | |
| firstNormalizationForm = ' '.join([sentence.Words[index].FirstNormalizationForm , sentence.Words[index+2].FirstNormalizationForm]) ; | |
| if unvoweldForm in compoundNounsDict.keys(): | |
| compound = compoundNounsDict[unvoweldForm]; | |
| if(not ArabicStringUtility.IsCompatible(ArabicStringUtility, firstNormalizationForm, compound.VoweledForm)): | |
| index += 1; | |
| continue; | |
| originalString = ' '.join([sentence.Words[index].OriginalString, sentence.Words[index+2].OriginalString]) ; | |
| #Compound: | |
| sentence.Words[index].OriginalString = originalString; | |
| sentence.Words[index].FirstNormalizationForm = compound.VoweledForm; | |
| sentence.Words[index].SecondNormalizationForm = compound.UnvoweledForm; | |
| sentence.Words[index].String = compound.UnvoweledForm; | |
| sentence.Words[index].MorphologicalParsingCompleted = True; | |
| sentence.Words[index].SurfaceFormMorphemes = []; | |
| sentence.Words[index].SurfaceFormMorphemes.append(SurfaceFormMorphemes([], compound.ReturnAsUnderivedCliticless(), [])); | |
| #remove space | |
| sentence.Words.remove(sentence.Words[index+1]); | |
| #remove second Part | |
| sentence.Words.remove(sentence.Words[index+1]); | |
| index += 1; | |
| pass | |