Inserting data in python

0

How can I make the file below do what you need in print?

import glob, os, codecs, sys, codecs

# =================================
# Metodos para Indexacao
# =================================

def tokenizacao(documento): # retorna list    
    return documento.split(" ")

def remover_repetidas(lista_palavras): # retorna list

    # a funcao 'filter' serve para aplicar algum filtro
    # em cada entrada de uma list
    return sorted(filter(None,list(set(lista_palavras))))

def stopwords(lista_palavras, _stopwords): # retorna list    
    nova_lista = []
    # para cada palavra do doc
    for p in lista_palavras:
        if p not in _stopwords:
            nova_lista.append(p)

    return nova_lista

def normalizacao(lista_palavras): # retorna list
    nova_lista = []
    simbolos = list('.,+/?:;!@#$%')

    # transformou palavras para minusculas
    for p in lista_palavras:
        p = p.lower()

        # procura e remove caracteres especiais
        for s in simbolos:
            if s in p:
                p = p.replace(s,'')
        nova_lista.append(p)

    return nova_lista

def indexar(lista_palavras, arq, dic):

    # para cada palavra na lista
       # testa se ela existe no dicionario
          # se existir, obtem a lista de docs e faz append
          # se nao existir, cria uma nova entrada no dicionario

    for p in lista_palavras:
        ## teste se existe no dicionario
        if p in dic:
            docs = dic[p]
            docs.append(arq)
        else:
            dic[p] = [arq]

# ================================= 
# FUNCAO PRINCIPAL (inicio do app)
# =================================
def main():
    print("== IMED-EDD | INDEXADOR DOCUMENTOS == ")

    dic = dict() # dicionario vazio    
    pasta = "docs/*.txt"

    ## Carrega arquivo de stopwords em uma list
    _stopwords = [] 
    nome_arq = 'stopwords.txt'

    arq = codecs.open(nome_arq, "r", "UTF-8") # abrir arquivo para leitura
    linhas = arq.readlines()
    for linha in linhas:
        _stopwords.append(linha.replace('\n', '').strip().lower())

    arq.close() # fechar arquivo
    #########

    # para cada arquivo txt em uma pasta, fazer:
    for arq in glob.glob(pasta):
        print("[Processando arquivo: {}]".format(arq))
        documento = ''

        # Abrir arquivo
        f = codecs.open(arq, "r", "UTF-8-sig")
        linhas = f.readlines()

        for linha in linhas:
            # remove espaços em branco no inicio e fim de cada linha lida
            documento += linha.replace("\r\n", " ")
        f.close()

        ## Executa as funcoes que representam as etapas da indexacao     
        nova_lista = tokenizacao(documento)
        nova_lista = normalizacao(nova_lista)        
        nova_lista = remover_repetidas(nova_lista)
        nova_lista = stopwords(nova_lista, _stopwords)
        #print(nova_lista)       

        ## Insere/Atualiza o dicionario com novos termos e documentos
        indexar(nova_lista, arq, dic)        
        print("== Fim processamento ==")

    # Imprime o indice invertido
    for key in dic.keys():
        print("{} => {}".format(key, dic[key]))


if __name__ == '__main__':
    main()

I have this information:

Create a start menu that will contain the options:

------- INDEXING -------

  • Create Document
  • Remove Index Document
  • Index '.txt' documents in the docs /
  • Find terms
    • 4.1. Using OR Operator
    • 4.2. Using AND operator
  • Show Inverted Index
  • Details:

    • In item 1: When creating the new document, prompt the user: filename (including txt extension) and request that content be typed.
    • In item 2: Do not remove the document from the docs / folder and yes just delete entries present in the index; It should go through each document list of each term, removing the entry with the filename of each of them.
    • In item 3: Read the .txt documents for indexing a folder called docs /, clearing the current index, if it already contains entries, before indexing.
    • In item 4.1, an example search is: brazil deputy
      • Show the list of documents that have any of these terms.
    • In item 4.2, an example search is: Brazil AND deputy
      • Show the list of documents that have both terms.
    • Implement a way to intersect strings present in lists.

    Search Google for: Python Intersection Lists

    • In item 5: To display the index, simply use Python's print in the variable that represents the list of terms and documents:
    asked by anonymous 19.11.2018 / 23:05

    0 answers