예제 #1
0
    def obter_sinonimos(self, palavra):
        if palavra in self.obj_urls_invalidas_sinonimos:
            Util.print_formatado('\tClienteOxford: URL evitada: ' + palavra)
            return None

        dir_bases = self.configs['caminho_bases']
        dir_cache_oxford = dir_bases + '/' + self.configs['oxford']['cache'][
            'sinonimos']
        dir_obj_json = dir_cache_oxford + '/' + palavra + '.json'

        if os.path.isfile(dir_obj_json):
            return Util.abrir_json(dir_obj_json)

        try:
            url = self.url_base + "/entries/en/" + palavra + "/synonyms"
            obj = Util.requisicao_http(url, self.headers).json()
            obj_json = {}

            for entry in obj['results'][0]['lexicalEntries']:
                pos = entry['lexicalCategory']
                if not pos in obj_json:
                    obj_json[pos] = []
                for sense in entry['entries'][0]['senses']:
                    obj_json[pos].append(sense)

            print('Salvando em cache: ' +
                  str(Util.salvar_json(dir_obj_json, obj_json)))

            return obj_json
        except:
            self.obj_urls_invalidas_sinonimos[palavra] = ""
            #print('URL ERRADA: ' + url)
            return None
예제 #2
0
    def obter_sinonimos(self, palavra):
        if palavra in self.obj_urls_invalidas_sinonimos:
            Util.print_formatado('\tClienteOxford: URL evitada: ' + palavra)
            return None

        dir_bases = self.configs['caminho_bases']
        dir_cache_oxford = dir_bases+'/'+self.configs['oxford']['cache']['sinonimos']        
        dir_obj_json = dir_cache_oxford+'/'+palavra+'.json'

        if os.path.isfile(dir_obj_json):
            obj_tmp = Util.abrir_json(dir_obj_json)
            if obj_tmp != None and obj_tmp != { }:
                return obj_tmp

        try:
            url = self.url_base+"/thesaurus/en/"+palavra
            obj = Util.requisicao_http(url, self.headers, admite_404=True).json()
            obj_json = { }

            try:
                for entry in obj['results'][0]['lexicalEntries']:
                    pos = entry['lexicalCategory']
                    if not pos in obj_json:
                        obj_json[pos] = [ ]
                    for sense in entry['entries'][0]['senses']:
                        obj_json[pos].append(sense)
            except Exception, e:
                if "error" in obj_json:
                    if "No entries were found" in obj_json['error']:
                        raise Exception(obj_json['error'])

            print('Salvando em cache: ' + str(Util.salvar_json(dir_obj_json, obj_json)))

            return obj_json
예제 #3
0
    def obter_definicoes(self, palavra, lematizar=True):
        if palavra in self.obj_urls_invalidas_definicoes:
            return None

        dir_bases = self.configs['caminho_bases']
        dir_cache_oxford = dir_bases + '/' + self.configs['oxford']['cache'][
            'definicoes']
        dir_obj_json = dir_cache_oxford + '/' + palavra + '.json'

        if os.path.isfile(dir_obj_json):
            return Util.abrir_json(dir_obj_json)

        try:
            url = self.url_base + "/entries/en/" + palavra

            #Util.print_formatado('\nRequerindo URL %s' % url)
            obj = Util.requisicao_http(url, self.headers).json()

            saida_tmp = []
            saida = {}

            for e in obj['results'][0]['lexicalEntries']:
                saida_tmp.append(e)
            for entry in saida_tmp:
                if not entry['lexicalCategory'] in saida:
                    saida[entry['lexicalCategory']] = []
                for sense in entry['entries'][0]['senses']:
                    saida[entry['lexicalCategory']].append(sense)

            print('\tClienteOxford URL certa: ' + url)
            print('\tClienteOxford: Salvando em cache: ' +
                  str(Util.salvar_json(dir_obj_json, saida)))

            return saida
        except Exception, e:
            self.obj_urls_invalidas_definicoes[palavra] = ""
            Util.print_formatado('\tClienteOxford: URL errada: ' + palavra,
                                 visivel=False)
            return None