Esempio n. 1
0
    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
        ]
Esempio n. 2
0
 def process_foreigns(self,word, root, mb):
   soften_flag=False
   if root in self.foreigns_dict:
     rootpro_lis = self.foreigns_dict[root]
   else:
     rootpro_lis = [word_to_sampa.map_foreigns(root)]
   return [word_to_sampa.unite_root_and_suffix_seq(word, root, mb, pro, soften_flag) for pro in rootpro_lis]    
Esempio n. 3
0
 def process_foreigns(self, word, root, mb):
     soften_flag = False
     if root in self.foreigns_dict:
         rootpro_lis = self.foreigns_dict[root]
     else:
         rootpro_lis = [word_to_sampa.map_foreigns(root)]
     return [
         word_to_sampa.unite_root_and_suffix_seq(word, root, mb, pro,
                                                 soften_flag)
         for pro in rootpro_lis
     ]
Esempio n. 4
0
  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]
Esempio n. 5
0
    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
        ]
Esempio n. 6
0
  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]