Text Analysis — add-on do Orange
Add-on do Orange Data Mining para limpar, traduzir e classificar textos (ex.: análise de sentimento) com modelos do Hugging Face. Os widgets aparecem na categoria Text Analysis da barra lateral do Orange.
Requisitos
- Orange 3 (testado com a versão 3.40) e Python 3.9 ou superior
- Orange3-Text (opcional, recomendado): fornece o widget Corpus e os demais widgets de texto
Bibliotecas Python (instaladas automaticamente com o add-on):
| Biblioteca | Para que é usada |
|---|---|
transformers |
Carregar e executar os modelos do Hugging Face |
torch |
Motor de execução dos modelos (CPU ou GPU) |
sentencepiece |
Tokenizadores de modelos multilíngues (XLM-RoBERTa, T5, M2M100) |
protobuf |
Leitura dos arquivos de tokenizador SentencePiece |
ftfy |
Correção de codificação quebrada (ex.: péssimo → péssimo) |
emoji |
Remoção de emojis e conversão em texto em português |
Instalação
O add-on deve ser instalado no mesmo Python que o Orange usa.
Pelo terminal, dentro da pasta do projeto (troque python pelo
executável do Python do Orange, se for outro):
python -m pip install .
Pelo próprio Orange, colando no widget Python Script e clicando em Run (ajuste o caminho da pasta):
import sys, subprocess
pasta = "/caminho/para/orange3-text-analysis"
r = subprocess.run([sys.executable, "-m", "pip", "install", pasta],
capture_output=True, text=True)
print(r.stdout[-1500:]); print(r.stderr[-1500:])
Depois, reinicie o Orange.
Para desenvolvimento, instale em modo editável (as alterações no código valem após reiniciar o Orange, sem reinstalar):
python -m pip install -e .
Atualizando a partir do
orange3-sentimento: desinstale o pacote antigo compython -m pip uninstall orange3-sentimento, senão os widgets aparecem duplicados. Modelos.pkclssalvos com o pacote antigo precisam ser gerados de novo.
Widgets
Limpeza de Texto
Limpa o texto e cria uma nova coluna com o resultado, mostrando uma prévia
antes/depois. Opções: corrigir codificação quebrada, remover HTML, links,
e-mails e menções (remover ou trocar pelos marcadores http, email e
@user), hashtags, emojis (remover ou converter em texto), números,
caracteres repetidos (muuuuito → muuuito), espaços excessivos,
minúsculas, acentos e pontuação, além de descartar textos curtos e
duplicados.
Tradução
Traduz textos com unicamp-dl/translation-pt-en-t5 (português → inglês),
unicamp-dl/translation-en-pt-t5 (inglês → português) ou
facebook/m2m100_418M (100 idiomas, com listas de idioma de origem e
destino). Pode criar uma nova coluna ou substituir o texto original. Divide
textos longos em frases, roda em segundo plano com barra de progresso e usa
a GPU, se houver.
Modelo Hugging Face
Transforma um modelo de classificação de texto do Hugging Face (ex.:
cardiffnlp/twitter-xlm-roberta-base-sentiment) em um modelo do Orange,
compatível com Predictions, Save Model e Load Model. Lê os rótulos do
próprio modelo, aceita parâmetros avançados em JSON e, ao receber o corpus
rotulado na entrada, usa a variável-alvo dele para que o Predictions
calcule as métricas de avaliação.
Fluxo de exemplo
Corpus → Limpeza de Texto ─┬─► Modelo Hugging Face ──► Predictions
└─────────────────────────► Predictions
Para usar um modelo disponível só em inglês, inclua o widget Tradução (português → inglês) depois da Limpeza de Texto.
Estrutura do projeto
orange3-text-analysis/
├── README.md
├── pyproject.toml
├── docs/
├── tests/
└── src/
└── text_analises/
├── modelo.py # adaptador Hugging Face → modelo do Orange
├── limpeza.py # funções de limpeza de texto
├── traducao.py # funções de tradução
└── widgets/
├── owsentimentohf.py
├── owlimpezatexto.py
├── owtraducao.py
└── icons/
Observações
- Cada modelo é baixado do Hugging Face no primeiro uso (de centenas de MB
a cerca de 2 GB) e fica em cache em
~/.cache/huggingface. - Em sistemas com vírgula decimal (ex.: português do Brasil), o add-on
ajusta temporariamente a formatação numérica ao carregar os modelos,
evitando o erro do
protobufcom tokenizadores SentencePiece.
Metadata
Release files for orange3-text-analysis 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| orange3_text_analysis-0.0.1.tar.gz | 34.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| orange3_text_analysis-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 72.1 kB
Release files / orange3_text_analysis-0.0.1.tar.gz
| Download URL | orange3_text_analysis-0.0.1.tar.gz |
|---|---|
| Size | 34.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f9ec8e0c288df85663ca4b9776d20f9ee7f0bf019d58bd841eb69c4697a4eee6
|
|
BLAKE2b-256 checksum How to use checksums |
048d7168f411f75c6aae23d50bae345a8c20ecbc310d97915fc81424e6da4d3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / orange3_text_analysis-0.0.1-py3-none-any.whl
| Download URL | orange3_text_analysis-0.0.1-py3-none-any.whl |
|---|---|
| Size | 38.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a8486a3090bc9162552f4442bddbda1304e281a3df343fcf33d45c521404371d
|
|
BLAKE2b-256 checksum How to use checksums |
8cc16144f66439c2bc5edeb758cff20c60b9bf4cc33695b1458c894ca2f2b4f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for orange3-text-analysis 0.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.