示例#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):
            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
示例#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):
            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
示例#3
0
 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
示例#4
0
    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
示例#5
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
示例#6
0
 def obter_antonimos(self, palavra):
     url = "%s/entries/en/%s/antonyms" % (self.url_base, palavra)
     return Util.requisicao_http(url, self.headers)