From aef9a3698fe6d5c44fc5a5b75f866f8accdad341 Mon Sep 17 00:00:00 2001 From: Luka Dragar Date: Wed, 8 Apr 2026 15:19:40 +0200 Subject: [PATCH] Added static list of partial msds inside jos_specifications.pickle --- conversion_utils/jos_msds_and_properties.py | 26 +++++++++++++----- .../resources/jos_specifications.pickle | Bin 48597 -> 49153 bytes 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/conversion_utils/jos_msds_and_properties.py b/conversion_utils/jos_msds_and_properties.py index 604dd06..e4332b2 100644 --- a/conversion_utils/jos_msds_and_properties.py +++ b/conversion_utils/jos_msds_and_properties.py @@ -297,11 +297,24 @@ class Converter: self.specifications = parser.parse(xml_file_name) except: exit('Could not parse specifications xml file provided.') - + self.mte_to_ud_features = self._parse_msd_ud_conversion(MSD_TO_FEATURES) self.mte_to_ud_features_rules = self._parse_ud_rules(JOS_TO_UD_FEATURES_RULES) self.mte_to_upos_rules = self._parse_ud_rules(JOS_TO_UPOS_RULES) + def _get_partial_msd(self, msd): + properties = self.msd_to_properties(msd, msd.language) + category_char = msd.code[0].lower() + category = self.specifications.find_category_by_code(category_char, msd.language) + category_name = category.names.get(msd.language) + properties = Properties( + category=category_name, + lexeme_feature_map=properties.lexeme_feature_map, + form_feature_map={}, + language=msd.language + ) + return self.properties_to_msd(properties, msd.language).code + def _parse_msd_ud_conversion(self, file_name): """Parse file with direct conversions from English Msd to Universal Dependencies.""" conversion_map = defaultdict() @@ -329,13 +342,12 @@ class Converter: def get_msd_state(self, msd): """Determine if the Msd code is full, partial or unknown.""" - code_map = self.specifications.codes_map[msd.language] - if msd.code in code_map: + if msd.code in self.specifications.codes_map[msd.language]: return MsdState.FULL - for msd_code in code_map: - if msd_code.startswith(msd.code): - return MsdState.PARTIAL - return MsdState.UNKNOWN + elif msd.code in self.specifications.partial_codes_map[msd.language]: + return MsdState.PARTIAL + else: + return MsdState.UNKNOWN def check_valid_msd(self, msd, require_valid_flag, allow_partial=True): """If the Msd code is not valid, raise an exception or give a warning.""" diff --git a/conversion_utils/resources/jos_specifications.pickle b/conversion_utils/resources/jos_specifications.pickle index 6b0fdf026602e02d87c31d43b7970766f6fa9f61..1fe5f0e7ba7feecea33b498e44fdc9337c92e84d 100644 GIT binary patch literal 49153 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 literal 48597 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 z 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