Software de Kardex e Estoque

Kardex Tauro

O software de gestão de estoque Kardex Tauro® foi projetado para gerenciar seu armazém ou depósito de forma eficiente e pode ser aprendido em um curto período de tempo.

O Kardex Tauro é gratuito para uso não comercial.
Não requer conexão com a internet e funciona no Windows.

Código Python: medir o sentimento dos titulares com um léxico próprio

Código Python: medir o sentimento dos titulares com um léxico próprio

Quem toca um negócio pequeno, um depósito ou a contabilidade de uma microempresa vive cercado de titulares: o índice sobe com força, o petróleo cai, o banco central mantém a taxa, uma plataforma grande leva multa. Ler todos os dias é rápido; anotar um por um se o tom parece bom, ruim ou indiferente já é outro trabalho, e um trabalho que fica subjetivo no momento em que a gente se distrai. Esta oficina resolve isso com um programa curto de Python que mede o tom de trinta titulares e compara com um rótulo escrito à mão. O resultado é honesto: a regra coincide em vinte e sete dos trinta titulares e o programa mostra, sem maquiagem, os três casos em que erra. O ZIP traz o programa comentado em português, o arquivo com os trinta titulares, a saída real de exemplo e as instruções; não é preciso instalar mais nada, porque tudo usa a biblioteca padrão do Python.

⬇ Baixar o código (ZIP)

Aviso: este é material educativo, e não é uma recomendação de compra nem de venda de qualquer ativo. Os titulares e os preços de exemplo são inventados e não são notícias reais; servem apenas para praticar. Os dados históricos são citados só para fins de prática. Um resultado passado não garante nada no futuro. Antes de investir, consulte um profissional autorizado.

O que vem no ZIP

O pacote é pequeno e pode ser revisado inteiro antes de rodar. Tudo funciona sem conexão com a internet, sem contas e sem nenhum tipo de cadastro.

ArquivoO que éPara que serve
sentimiento_titulares.pyO programa, comentado linha por linha em portuguêsLê os titulares, mede, compara e grava o resultado
datos/titulares.csvOs trinta titulares de exemploÉ a entrada; pode ser trocada pelos seus próprios titulares
salida_ejemplo.txtA saída real, já executadaPara comparar com o que aparecer no seu computador
LEIAME.mdAs instruções do pacoteOs mesmos passos desta oficina, em versão curta

Ao rodar, o programa cria a pasta salida e grava dentro o arquivo sentimiento.csv, que abre direto no Excel ou em qualquer planilha.

O arquivo de entrada, coluna por coluna

ColunaExemploO que significa
data2026-04-06O dia do titular, no formato ano-mês-dia
titularO índice sobe com força e marca novo recorde de fechamentoO texto completo do titular, como apareceria no jornal
rotulopositivoA classificação escrita à mão: positivo, negativo ou neutro

A primeira linha do arquivo são os nomes das colunas e o programa os usa tal como estão: se você renomear uma coluna, o programa deixa de encontrá-la. Você pode colar os seus próprios titulares nesse mesmo arquivo, um por linha, e anotar na terceira coluna como classificaria cada um à mão; é essa coluna que depois mostra se o léxico acertou. Os titulares podem trazer vírgulas: o leitor respeita o texto e não o corta pela metade. Com esta tabela você já tem o necessário para trocar a pasta de dados pela sua e praticar com titulares do seu próprio setor.

O que o programa faz

O programa não adivinha e não aprende: aplica uma regra escrita em duas listas de palavras. Os passos, em ordem, são estes:

  1. Lê o arquivo de titulares e separa as três colunas: data, texto e rótulo manual.
  2. Limpa cada titular: passa o texto para minúsculas, tira acentos e pontuação e o parte em palavras soltas.
  3. Conta quantas dessas palavras aparecem na lista positiva e quantas na lista negativa.
  4. Calcula uma pontuação entre menos um e mais um: as positivas menos as negativas, dividido pelo total de coincidências.
  5. Classifica a pontuação com um limite: acima de zero vírgula dez é positivo, abaixo de menos zero vírgula dez é negativo e, no meio, é neutro.
  6. Compara essa classe com o rótulo manual que veio no arquivo e marca se acertou ou não.
  7. Mostra na tela a tabela dos trinta titulares, o resumo de acertos, os três mais positivos, os três mais negativos e a lista dos erros.
  8. Grava tudo em um arquivo de saída com números simples, prontos para somar e filtrar na planilha.

Como executar

É preciso Python 3.11 ou superior, e nada mais. Não se instala nenhuma biblioteca, não se pede e-mail nem cartão, e o programa não se conecta à internet em momento algum.

  1. Baixe o ZIP com o botão verde desta página e descompacte em uma pasta, por exemplo na área de trabalho.
  2. Instale o Python do site oficial se ainda não tem, marcando a caixa que adiciona o Python ao sistema durante a instalação.
  3. Abra o terminal do sistema: no Windows o prompt de comando ou o PowerShell; no Mac ou no Linux, o aplicativo Terminal.
  4. Digite cd, um espaço e o caminho da pasta que você descompactou, e aperte Enter.
  5. Digite python sentimiento_titulares.py e aperte Enter.

Se aparecer uma mensagem dizendo que o comando não é reconhecido, feche e abra o terminal de novo, ou instale o Python outra vez marcando a caixa de adicionar ao sistema. Se a mensagem disser que não encontra o arquivo de titulares, confira se o terminal está aberto na pasta certa: essa pasta precisa conter o programa e a pasta datos. Se você abrir o programa com dois cliques, a janela fecha ao terminar e não dá tempo de ler o resultado; rodar pelo terminal é sempre melhor.

O código, explicado

O coração do programa é um léxico próprio: um dicionário de bolso escrito à mão. Aqui não há inteligência artificial de nenhum tipo, nem modelo treinado, nem serviço na nuvem. São duas listas de palavras separadas por vírgulas, uma de tom bom e outra de tom ruim, e o programa só reconhece as palavras que estão dentro delas.

POSITIVAS = "sobe,recorde,otimismo,solida,impulsiona,recupera,cresce,ganho,ganhos,melhor,confianca,melhora,aprova,dispara,oportunidade,compra,compras,maximas,aceleram,alta".split(",")
NEGATIVAS = "cai,medo,baixa,minimas,incerteza,preocupacao,risco,recessao,queda,desabamento,perdas,fraca,enfraquece,alerta,multa,panico,corte,crise,falencia,sancao".split(",")
# # É exatamente por isso que falha: com a ironia e com qualquer palavra fora da lista.

Cada lista traz vinte palavras e está escrita em minúsculas e sem acentos de propósito, porque o programa limpa o titular do mesmo jeito antes de comparar. Essa decisão tem um preço: qualquer palavra que não esteja nas listas não acrescenta nada, e um titular ruim escrito com palavras novas fica sem sinal.

def contar(palabras: list[str]) -> tuple[int, int]:
    """Conta quantas palavras do léxico aparecem: as positivas e as negativas."""
    positivas = sum(1 for palabra in palabras if palabra in POSITIVAS)
    negativas = sum(1 for palabra in palabras if palabra in NEGATIVAS)
    return positivas, negativas

A contagem é literal: percorre as palavras e soma um para cada coincidência. Depois a pontuação divide a diferença pelo total de coincidências, para que um titular longo não ganhe só por ter mais texto. Com duas palavras positivas e uma negativa, a pontuação fica em zero vírgula trinta e três.

def clasificar(valor: Decimal) -> str:
    """Classifica a pontuação com o limite: positivo, negativo ou neutro."""
    if valor > UMBRAL:
        return CLASE_POS                 # # Mais positivas que negativas e acima do limite
    if valor < -UMBRAL:
        return CLASE_NEG                 # # Mais negativas que positivas e abaixo do limite
    return CLASE_NEU                     # # Empatadas, ou pouquíssimas palavras: não há sinal

A classificação usa um limite, e não um zero exato. Assim, um empate entre uma palavra boa e uma ruim cai no meio e é marcado como neutro, que é o mais prudente: quando os sinais se contradizem, o programa admite que não tem nada a dizer.

def trampas(filas: list[dict]) -> None:
    """Mostra onde o léxico falha e por quê (ironia e palavras fora da lista)."""
    fallos = [fila for fila in filas if not fila["acierto"]]
    print()
    print("=" * ANCHO_LINEA)
    print("ONDE O LÉXICO FALHA (DE PROPÓSITO)")
    print("=" * ANCHO_LINEA)
    print("Este léxico NÃO é inteligência artificial: são duas listas de palavras escritas à mão.")
    print("Falha com a IRONIA: o mesmo adjetivo pode soar positivo dentro de um titular que na")
    print("verdade é ruim, e também falha com as palavras que não estão na lista.")
    print("A oficina deixou 3 titulares-armadilha de propósito para que a falha apareça:")
    print(f"Titulares em que o léxico e o rótulo manual não coincidem: {len(fallos)}")
    for fila in fallos:
        print(f"  {fila['fecha']}  rótulo manual {fila['manual']} / o léxico diz {fila['clase']}"
              f"  {recortar(fila['titular'], 52)}")

Esta é a parte mais honesta da oficina: o programa não esconde as suas falhas, procura por elas, lista cada uma com a sua data e explica por que aconteceram. Uma ferramenta que informa onde erra é muito mais útil do que uma que só mostra os acertos.

Também vale saber de onde vêm os dados reais que esta família de oficinas usa como referência histórica de prática: o bitcoin é baixado do CoinGecko, em api.coingecko.com, e o índice vem da Reserva Federal de St. Louis, série SP500, cujo endereço é https://fred.stlouisfed.org/series/SP500. Os dois arquivos foram baixados em 2026-09-25 e são usados só para praticar cálculos. Nesta oficina o arquivo de entrada são titulares inventados, não preços, e o formato dele é o da tabela acima.

O que você vai ver na tela

A primeira coisa que aparece é o aviso do programa e o tamanho das duas listas. Em seguida vem a tabela dos trinta titulares, com a pontuação, a classe que o léxico calculou, o rótulo manual e uma última coluna que diz se acertou:

=======================================================================================================================
  SENTIMENTO DE TITULARES
  Código Python didático · Kardex Tauro · kardex-tauro.muisca.co
=======================================================================================================================
AVISO: material educativo. Não é recomendação de compra nem de venda.
Os titulares e os preços de exemplo são INVENTADOS; os históricos são citados só para praticar.
Um resultado passado não garante nada: consulte um profissional autorizado.
-----------------------------------------------------------------------------------------------------------------------
Titulares lidos: 30
Os 30 titulares de datos/titulares.csv são INVENTADOS para praticar: não são notícias reais.
Palavras positivas (20): sobe, recorde, otimismo, solida, impulsiona, recupera, cresce, ganho, ganhos, melhor, confianca, melhora, aprova, dispara, oportunidade, compra, compras, maximas, aceleram, alta
Palavras negativas (20): cai, medo, baixa, minimas, incerteza, preocupacao, risco, recessao, queda, desabamento, perdas, fraca, enfraquece, alerta, multa, panico, corte, crise, falencia, sancao
Léxico próprio: duas listas escritas à mão (sem inteligência artificial), mas falha com a ironia e com as palavras que não estão na lista.

Depois do quadro, o resumo deixa as contas à vista e confere se tudo fecha:

=======================================================================================================================
RESUMO
=======================================================================================================================
Acertos (o léxico coincide com o rótulo manual): 27
Erros: 3
Percentual de acerto: 90,00 %
acertos + erros = titulares lidos (30): FECHA
um titular sem palavras do léxico dá 0,00: FECHA
  Titular de teste: O mercado abre sem mudanças e o índice segue estável -> 0,00

E no fim chega a seção mais valiosa do exercício, onde o programa se entrega. Os três titulares-armadilha que a oficina deixou de propósito são estes:

=======================================================================================================================
Este léxico NÃO é inteligência artificial: são duas listas de palavras escritas à mão.
Falha com a IRONIA: o mesmo adjetivo pode soar positivo dentro de um titular que na
verdade é ruim, e também falha com as palavras que não estão na lista.
A oficina deixou 3 titulares-armadilha de propósito para que a falha apareça:
Titulares em que o léxico e o rótulo manual não coincidem: 3
  2026-05-25  rótulo manual negativo / o léxico diz NEUTRO  Perdas generalizadas: o índice apaga os ganhos do...
  2026-06-01  rótulo manual negativo / o léxico diz NEUTRO  Investigam um fundo por suposto uso de informação...
  2026-06-25  rótulo manual neutro / o léxico diz POSITIVO  O preço cai mas analistas veem oportunidade de co...

Olhe com calma, porque aí está todo o limite da ideia. "Perdas generalizadas: o índice apaga os ganhos do mês" é um titular claramente negativo para qualquer leitor, mas o programa encontra uma palavra positiva e uma negativa, empata as duas e conclui que o tom é neutro. "Investigam um fundo por suposto uso de informação privilegiada" também não traz nenhuma palavra das listas, então passa sem sinal e fica neutro. E o erro vai na outra direção: "O preço cai mas analistas veem oportunidade de compra" tem duas palavras boas e uma ruim, de modo que o programa o chama de positivo, embora à mão o tenhamos rotulado como neutro, porque o titular mostra os dois lados da notícia.

Em números redondos: vinte e sete acertos de trinta, ou seja, cerca de noventa por cento. Parece alto, e é alto para um punhado de palavras escritas à mão; mas não é mágica, é aritmética, e os três erros que você acabou de ver são os que aparecem sempre que o idioma fica criativo.

Erros comuns e dicas

  • Se o terminal diz que python não é reconhecido, em alguns computadores o comando se chama py ou python3: teste essas variantes antes de reinstalar qualquer coisa.
  • Rode o programa a partir da pasta que você descompactou; se o lançar de outra pasta, ele não vai encontrar o arquivo de titulares.
  • A coluna de rótulo manual não aceita outras palavras: escreva sempre positivo, negativo ou neutro, em minúsculas e sem acentos.
  • Não acrescente colunas extras ao arquivo de entrada; se quiser guardar anotações, deixe-as em um arquivo separado.
  • Se um titular ficar como neutro e você não concordar, verifique primeiro se as palavras dele estão na lista: quase todas as surpresas vêm daí.
  • O arquivo de saída é sobrescrito cada vez que você roda o programa; se quiser guardar duas versões, renomeie o arquivo antes de rodar de novo.
  • Trabalhe com trinta ou quarenta titulares por vez. Com muito mais, a conferência à mão fica pesada e as conclusões ficam frágeis.
  • Amplie as listas com palavras do seu próprio setor, mas guarde uma cópia antes de mexer nelas: assim você compara o antes e o depois no mesmo arquivo de titulares.

Quando isso não basta

Um léxico escrito à mão é um bom ponto de partida e uma má ferramenta de decisão. Mede muito bem um vocabulário fixo e se perde assim que o titular brinca com o idioma. Além disso, titulares não são estoque: não dizem quantas unidades há no depósito nem quanto custou a última compra, e nenhuma lista de palavras vai fechar um saldo. Quando o negócio cresce, quando há vários depósitos, quando é preciso cruzar compras, vendas e estoque com a contabilidade, o passo seguinte não é outra lista de palavras, mas um sistema de verdade. Kardex Tauro é grátis e organiza o estoque de uma microempresa sem obrigá-la a escrever código, e o software é a resposta para quando a planilha ou um script caseiro já não bastam.

Aviso: vale repetir, porque é o mais importante desta página: este é material educativo e não é uma recomendação de compra nem de venda; os titulares de exemplo são inventados e não são notícias reais; os dados históricos são citados só para praticar e um resultado passado não garante nada. A fonte dos dados reais, CoinGecko e a Reserva Federal de St. Louis com a série SP500, está citada acima com o endereço visível, e o ZIP traz o aviso por escrito para você guardar junto ao código. Antes de investir, consulte um profissional autorizado.

⬇ Baixar o código (ZIP)

Baixe o pacote, rode primeiro com os titulares de exemplo e depois com os seus: a parte mais valiosa do exercício é descobrir as palavras que a sua lista ainda não conhece.

Compartilhar
Link copiado
Microsoft Store da Microsoft StoreBaixar grátis
Chatea por WhatsApp