def process_abbrev(self,word, root,mb): soften_flag=False if root in self.abbrevs_dict: rootpro_lis = self.abbrevs_dict[root] else: rootpro_lis = [word_to_sampa.map_abbrevs(root)] return [word_to_sampa.unite_root_and_suffix_seq(word, root, mb, pro, soften_flag) for pro in rootpro_lis]
def process_abbrev(self, word, root, mb): soften_flag = False if root in self.abbrevs_dict: rootpro_lis = self.abbrevs_dict[root] else: rootpro_lis = [word_to_sampa.map_abbrevs(root)] return [ word_to_sampa.unite_root_and_suffix_seq(word, root, mb, pro, soften_flag) for pro in rootpro_lis ]
def process_rubbish_abbrev_foreign_word(self, word): if word in self.abbrevs_dict: return self.abbrevs_dict[word] if word in self.foreigns_dict: return self.foreigns_dict[word] flag = "rubbish" root = word soften_flag = True possible_suffixes = [ u"lerinden", u"larından", u"sindeki", u"sındaki", u"indeki", u"indeki", u"ındaki", u"lardan", u"lerden", u"deki", u"daki", u"teki", u"taki", u"taki", u"sinden", u"sından", u"sinde", u"sında", u"sine", u"sına", u"sini", u"sını", u"inde", u"ında", u"sıyla", u"siyle", u"sine", u"sına", u"yla", u"yle", u"la", u"le", u"ta", u"te", u"da", u"de", u"tan", u"ten", u"dan", u"den", u"nin", u"nın", u"ya", u"ye", u"yi", u"yı", u"si", u"sı", u"ini", u"ını", u"in", u"ın", u"a", u"e", u"i", u"ı", u"deydim", u"daydım", u"deydi", u"daydı", u"deydik", u"daydık", u"deydiniz", u"daydınız", u"ydi", u"ydı", u"layken", u"laydı", u"larken", u"lerken", u"dı", u"di", u"tı", u"ti" ] english_trigrams = [ u"land", u"ia", u"any", u"ania", u"the", u"and", u"ing", u"ion", u"tio", u"ent", u"ati", u"for", u"her", u"ter", u"hat", u"tha", u"ere", u"ate", u"his", u"con", u"res", u"ver", u"all", u"ons", u"nce", u"men", u"ith", u"ted", u"ers", u"pro", u"thi", u"wit", u"are", u"ess", u"not", u"ive", u"was", u"ect", u"rea", u"com", u"eve", u"per", u"int", u"est", u"sta", u"cti", u"ica", u"ist", u"ear", u"ain", u"one", u"our", u"iti", u"rat", u"eys", u"eyz", u"buk", u"ivi", u"tır", u"eyn", u"ırs", u"kon", u"iff", u"for", u"ation", u"ment", u"nfo", u"duc", u"uct", u"cti", u"wh", u"lic", u"ica", u"cat", u"ati", u"ope", u"era", u"org", u"str", u"ition", u"tion", u"pres", u"heir", u"able", u"ough", u"hich", u"ight", u"tive", u"some", u"ecti", u"ish", u"she", u"ph" ] for suffix in possible_suffixes: if word.endswith(suffix): part = word[:-len(suffix)] if part in self.abbrevs_dict: return self.process_abbrev(word, part, len(part) - 1) elif part in self.foreigns_dict: return self.process_foreigns(word, part, len(part) - 1) elif part in self.place_names: return self.process_word(word, part, len(part) - 1, flag="place") elif root in self.proper_nouns: return self.process_word(word, part, len(part) - 1, flag="proper noun") elif root in self.last_names: return self.process_word(word, part, len(part) - 1, flag="proper noun") if u"ğ" in word: part, s = word.rsplit(u"ğ", 1) part += "k" if part in self.abbrevs_dict: return self.process_abbrev(word, part, len(part) - 1) elif part in self.foreigns_dict: return self.process_foreigns(word, part, len(part) - 1) elif part in self.place_names: return self.process_word(word, part, len(part) - 1, flag="place") elif root in self.proper_nouns: return self.process_word(word, part, len(part) - 1, flag="proper noun") elif root in self.last_names: return self.process_word(word, part, len(part) - 1, flag="proper noun") for suffix in possible_suffixes: if word.endswith(suffix): rest = word[:-len(suffix)] if len(rest) == 2 or len(rest) == 3: root = rest flag = "abbrev" soften_flag = False break elif any(tri in english_trigrams for tri in rest): root = rest soften_flag = False flag = "foreign" break if flag == "rubbish": x = word_to_sampa.map_one_to_one(word) return [x] if x else [word_to_sampa.map_garbage(word)] rootpro_lis = [word_to_sampa.map_abbrevs(root)] if ( flag == "abbrev") else [word_to_sampa.map_foreigns(root)] return [ word_to_sampa.unite_root_and_suffix_seq(word, root, len(root) - 1, pro, soften_flag) for pro in rootpro_lis ]
def process_rubbish_abbrev_foreign_word(self, word): if word in self.abbrevs_dict: return self.abbrevs_dict[word] if word in self.foreigns_dict: return self.foreigns_dict[word] flag="rubbish" root=word soften_flag = True possible_suffixes = [u"lerinden", u"larından", u"sindeki", u"sındaki", u"indeki", u"indeki", u"ındaki", u"lardan",u"lerden", u"deki", u"daki", u"teki", u"taki", u"taki",u"sinden", u"sından", u"sinde",u"sında",u"sine",u"sına",u"sini", u"sını", u"inde", u"ında", u"sıyla", u"siyle", u"sine", u"sına", u"yla", u"yle", u"la", u"le", u"ta", u"te", u"da", u"de", u"tan", u"ten", u"dan", u"den", u"nin", u"nın", u"ya", u"ye", u"yi", u"yı", u"si", u"sı", u"ini", u"ını", u"in", u"ın", u"a", u"e", u"i", u"ı", u"deydim", u"daydım", u"deydi", u"daydı", u"deydik", u"daydık", u"deydiniz", u"daydınız", u"ydi", u"ydı", u"layken", u"laydı",u"larken",u"lerken",u"dı", u"di", u"tı", u"ti"] english_trigrams = [u"land", u"ia",u"any",u"ania", u"the", u"and", u"ing", u"ion", u"tio", u"ent", u"ati", u"for", u"her", u"ter", u"hat", u"tha", u"ere", u"ate", u"his", u"con", u"res", u"ver", u"all", u"ons", u"nce", u"men", u"ith", u"ted", u"ers", u"pro", u"thi", u"wit", u"are", u"ess", u"not", u"ive", u"was", u"ect", u"rea", u"com", u"eve", u"per", u"int", u"est", u"sta", u"cti", u"ica", u"ist", u"ear", u"ain", u"one", u"our", u"iti", u"rat", u"eys", u"eyz", u"buk", u"ivi", u"tır", u"eyn", u"ırs", u"kon" , u"iff", u"for", u"ation", u"ment", u"nfo", u"duc", u"uct", u"cti", u"wh", u"lic", u"ica", u"cat", u"ati", u"ope", u"era", u"org", u"str", u"ition", u"tion", u"pres", u"heir", u"able", u"ough", u"hich", u"ight", u"tive", u"some", u"ecti", u"ish", u"she", u"ph"] for suffix in possible_suffixes: if word.endswith(suffix): part = word[:-len(suffix)] if part in self.abbrevs_dict: return self.process_abbrev(word, part,len(part)-1) elif part in self.foreigns_dict: return self.process_foreigns(word, part,len(part)-1) elif part in self.place_names: return self.process_word(word,part, len(part)-1, flag="place") elif root in self.proper_nouns: return self.process_word(word,part, len(part)-1, flag="proper noun") elif root in self.last_names: return self.process_word(word,part, len(part)-1, flag="proper noun") if u"ğ" in word: part, s = word.rsplit(u"ğ", 1) part += "k" if part in self.abbrevs_dict: return self.process_abbrev(word, part,len(part)-1) elif part in self.foreigns_dict: return self.process_foreigns(word, part,len(part)-1) elif part in self.place_names: return self.process_word(word,part, len(part)-1, flag="place") elif root in self.proper_nouns: return self.process_word(word,part, len(part)-1, flag="proper noun") elif root in self.last_names: return self.process_word(word,part, len(part)-1, flag="proper noun") for suffix in possible_suffixes: if word.endswith(suffix): rest = word[:-len(suffix)] if len(rest) ==2 or len(rest) ==3: root=rest flag="abbrev" soften_flag=False break elif any(tri in english_trigrams for tri in rest): root=rest soften_flag=False flag="foreign" break if flag=="rubbish": x = word_to_sampa.map_one_to_one(word) return [x] if x else [word_to_sampa.map_garbage(word)] rootpro_lis = [word_to_sampa.map_abbrevs(root)] if (flag=="abbrev") else [word_to_sampa.map_foreigns(root)] return [word_to_sampa.unite_root_and_suffix_seq(word, root, len(root)-1, pro, soften_flag) for pro in rootpro_lis]