def completa_normalizacao(cadeia, codif='utf-8'): return Util.completa_normalizacao(cadeia, codif=codif)
def obter_frases_exemplo(palavra): ext = ExtratorWikipedia(None) url = Util.CONFIGS['wikipedia'][ 'url_desambiguacao'] % palavra.capitalize() duplicatas = set() frases_desambiguadads = {} todas_definicoes = {} instance = BaseOx.INSTANCE links_relevantes_tmp = ext.obter_links_relevantes_desambiguacao( url, palavra) pagina_desambiguacao = not links_relevantes_tmp in [None, [], {}] if pagina_desambiguacao == False: url = Util.CONFIGS['wikipedia'][ 'url_base_verbete'] + '/' + palavra.lower() links_relevantes_tmp = [url] links_relevantes_tmp = [ l for l in links_relevantes_tmp if not "dictiona" in l ] links_relevantes = [] todos_sins = [] lemas = {} url_lema = {} for def_iter in BaseOx.obter_definicoes(instance, palavra, pos=None): conj_sins = BaseOx.obter_sins(instance, palavra, def_iter, pos=None) todos_sins += conj_sins todos_sins = [palavra] + list(set(todos_sins)) for l in links_relevantes_tmp: for s in todos_sins: if s.lower() in l.lower() and not l in links_relevantes: links_relevantes.append(l) if not s.lower() in lemas: lemas[s.lower()] = [] lemas[s.lower()].append(l) url_lema[l] = s.lower() links_relevantes_tmp = None registros = [] for url in links_relevantes: if "wikipedia" in url: texto_wikipedia, todas_urls_referencias = ext.obter_texto( url, obter_referencias=True) plain_text = Util.completa_normalizacao(texto_wikipedia) if set(nltk.word_tokenize(plain_text)).intersection( set(todos_sins)): todas_sentencas = re.split('[.?!]', plain_text) descricao = todas_sentencas[0].replace('\n', ' ').strip(' ') todas_sentencas = todas_sentencas[1:] todas_sentencas = [ re.sub('[\s\n\t]', ' ', s) for s in todas_sentencas ] todas_sentencas = [ s for s in todas_sentencas if s.count(' ') > 1 ] for frase in todas_sentencas: if len(set(frase).intersection( set("<>{ }"))) > 0 or not '":"' in frase: if ExtratorWikipedia.filtrar_frase_bruta( frase, url_lema[url]) != None: nova_frase = frase.replace('\n', ' ').strip(' ') if not nova_frase in duplicatas: reg = palavra, descricao, url, nova_frase registros.append(reg) duplicatas.add(nova_frase) # Iterando referencias recuperadas for url_ref in todas_urls_referencias: for frase in ext.extrair_frases_pagina_comum( todas_urls_referencias, palavra): nova_frase = frase.replace('\n', ' ').strip(' ') if not nova_frase in duplicatas: reg = palavra, descricao, url + '@@@@' + url_ref, nova_frase registros.append(reg) duplicatas.add(nova_frase) return registros