Exemplo n.º 1
0
 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]    
Exemplo n.º 2
0
 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
     ]
Exemplo n.º 3
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
        ]
Exemplo n.º 4
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]