def process_word(self, word, root, mb, flag): num_of_syl = syllabifier.syllabify(root) soften_flag = True if root in self.out_of_rules: soften_flag = False elif root.endswith(u"lç") or root.endswith(u"lk") or root.endswith( u"lp") or root.endswith(u"lt") or root.endswith( u"nç") or root.endswith(u"nt") or root.endswith( u"rç") or root.endswith(u"rk") or root.endswith( u"rp") or root.endswith(u"rs") or root.endswith( u"st") or root.endswith("rt") or root.endswith( "rk") or root.endswith("nk"): soften_flag = False if root in self.pronunce_dict: rootpro_lis = self.pronunce_dict[root] else: l = self.lookup_substrings(root) if l != -1: rootpro_lis = l else: rootpro_lis = [word_to_sampa.map_one_to_one(root)] if rootpro_lis == [[]]: rootpro_lis = [word_to_sampa.map_garbage(root)] return [ word_to_sampa.unite_root_and_suffix_seq(word, root, mb, pro, soften_flag) for pro in rootpro_lis ]
def process_word(self,word,root, mb, flag): num_of_syl = syllabifier.syllabify(root) soften_flag= True if root in self.out_of_rules: soften_flag=False elif root.endswith(u"lç") or root.endswith(u"lk") or root.endswith(u"lp") or root.endswith(u"lt") or root.endswith(u"nç") or root.endswith(u"nt") or root.endswith(u"rç") or root.endswith(u"rk") or root.endswith(u"rp") or root.endswith(u"rs") or root.endswith(u"st") or root.endswith("rt") or root.endswith("rk") or root.endswith("nk"): soften_flag=False if root in self.pronunce_dict: rootpro_lis = self.pronunce_dict[root] else: l = self.lookup_substrings(root) if l != -1: rootpro_lis = l else: rootpro_lis = [word_to_sampa.map_one_to_one(root)] if rootpro_lis ==[[]] : rootpro_lis = [word_to_sampa.map_garbage(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]