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
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
def obter_lista_categoria(self, categoria): url = self.url_base + '/wordlist/en/registers=Rare;domains=' + categoria inicio = time.time() resultado = Util.requisicao_http(url, self.headers) fim = time.time() print('Tempo gasto para a URL %s: %s' + (url, str(fim - inicio))) return resultado
def obter_frequencia(self, palavra): dir_cache = self.configs['caminho_bases']+'/'+self.configs['oxford']['cache']['frequencias'] todos_arquivos_cache = Util.list_arqs(dir_cache) todos_arquivos_cache = [c.split("/")[-1] for c in todos_arquivos_cache] if palavra + ".json" in todos_arquivos_cache: path = dir_cache+'/'+palavra + '.json' obj = Util.abrir_json(path) return obj['result']['frequency'] else: url = self.url_base + '/stats/frequency/word/en/?corpus=nmc&lemma=' + palavra obj_req = Util.requisicao_http(url, self.headers) path = dir_cache+'/'+palavra + '.json' Util.salvar_json(path, obj_req.json()) try: return obj_req.json()['result']['frequency'] except Exception, e: return 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
def obter_antonimos(self, palavra): url = "%s/entries/en/%s/antonyms" % (self.url_base, palavra) return Util.requisicao_http(url, self.headers)