Aqui, você aprenderá a importar arquivos de texto no Python, incluindo métodos nativos e NumPy, e a transformar esses dados em listas.
1. O Arquivo de Texto
Neste guia, usaremos um arquivo de texto simples chamado ‘nlp_wiki.txt,’ que contém o primeiro parágrafo da página da Wikipedia sobre Processamento de Linguagem Natural.
“Processamento de linguagem natural (PLN) é um subcampo interdisciplinar da linguística, ciência da computação e inteligência artificial que lida com as interações entre computadores e linguagem humana, especialmente como programar computadores para processar e analisar grandes quantidades de dados em linguagem natural. O objetivo é que um computador seja capaz de “entender” o conteúdo de documentos, incluindo nuances contextuais da linguagem presente neles. A tecnologia pode, então, extrair informações e insights contidos nos documentos, bem como categorizar e organizar os documentos em si. Desafios no processamento de linguagem natural frequentemente envolvem reconhecimento de fala, compreensão de linguagem natural e geração de linguagem natural.
2. Importando Dados de Texto em Python
Importando dados usando a função read_table() do Pandas
O Pandas possui a função read_table() para ler arquivos de texto com delimitação e exibir conteúdo em um DataFrame, facilitando a visualização.
import pandas as pd
pd.read_table('nlp_wiki.txt', header=None, delimiter=None)
Indicamos o nome do arquivo de texto e usamos dois argumentos na função read_table():
- header=None para dizer que a primeira linha é texto
- delimiter=None para manter os parágrafos em uma única coluna
No entanto, um DataFrame nem sempre é o melhor aqui. Os parágrafos são divididos em linhas, tornando difícil ver tudo. Uma alternativa é usar .to_list() na coluna.
pd.read_table('nlp_wiki.txt', header=None, delimiter=None)[0].to_list()
Isso retorna uma lista de listas que pode ser acessada como uma lista Python normal. Também imprime o texto completo.
Personalizando a importação com read_table()
A função read_table() tem argumentos opcionais, como:
- skiprows=n (pulando as primeiras n linhas)
- nrows=n (mantendo as primeiras n linhas)
- skip_blank_lines=True evita linhas vazias
Importando dados de texto com a função loadtxt() do NumPy
A função loadtxt() do NumPy lê linhas de texto de um arquivo, útil quando se trabalha com NumPy, pois gera uma matriz NumPy como saída.
import numpy as np
np.loadtxt('nlp_wiki.txt', dtype="str", delimiter="\0")
Evitamos dividir as linhas usando o caractere \0 como delimitador, permitindo que o texto seja lido sem divisões.
Definimos o tipo de dados da matriz como ‘str’, que retorna uma string, e podemos convertê-lo em uma lista usando .tolist().
3. Escrevendo Arquivos de Texto em Python
Aprenderemos a salvar arquivos de texto a partir do Python, útil após manipulações com arquivos.
Escrevendo arquivos de texto usando o método write() nativo
Use o método write() com open() e with para escrever arquivos de texto em Python de forma eficiente.
Este loop for usa uma compreensão de lista para interpretar cada linha usando quebras de linha (\n).
with open("arquivo.txt", "w") as file:
lines = [line.strip() for line in file]
Isso cria uma lista onde cada item é um parágrafo. Diferentemente dos exemplos do Pandas e do NumPy, temos três objetos aqui devido às quebras de linha entre os parágrafos.
4. Escrevendo Arquivos de Texto com o Pandas
Provavelmente, a maneira mais fácil de escrever um arquivo de texto usando o Pandas é usando o método to_csv(). Veja como funciona!
import pandas as pd
nlp_wiki = pd.read_table("nlp_wiki.txt", header=None, delimiter=None)
nlp_wiki.to_csv("nlp_wiki_pandas.txt", sep="\t", index=False)
Lemos um arquivo de texto e depois o salvamos usando tabulação como separador, excluindo o índice de linhas.
5. Recapitulando
Esperamos que você tenha gostado deste tutorial! Para recapitular, aqui está o que cobrimos:
- Importação de dados de texto com o Pandas e o NumPy em Python.
- Escrita de arquivos de texto usando as funções nativas do Python e o Pandas.
Com essas habilidades, você estará preparado para importar, manipular e analisar dados de texto em seus projetos de análise de dados usando Python.