orange3-text-analysis 0.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,29 @@
1
+ <!DOCTYPE html>
2
+ <html lang="pt-BR">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Text Analysis — add-on do Orange</title>
6
+ </head>
7
+ <body>
8
+ <h1>Text Analysis — add-on do Orange</h1>
9
+ <p>
10
+ Add-on do <a href="https://orangedatamining.com">Orange Data Mining</a>
11
+ para limpar, traduzir e classificar textos (ex.: análise de sentimento)
12
+ com modelos do <a href="https://huggingface.co">Hugging Face</a>.
13
+ Os widgets aparecem na categoria <strong>Text Analysis</strong> da barra
14
+ lateral do Orange.
15
+ </p>
16
+
17
+ <h2>Widgets</h2>
18
+ <ul>
19
+ <li><strong>Limpeza de Texto</strong> — limpa o texto e cria uma nova
20
+ coluna com o resultado.</li>
21
+ <li><strong>Tradução</strong> — traduz textos entre português, inglês e
22
+ outros idiomas.</li>
23
+ <li><strong>Modelo Hugging Face</strong> — transforma um modelo de
24
+ classificação de texto do Hugging Face em um modelo do Orange.</li>
25
+ </ul>
26
+
27
+ <p>Veja o <code>README.md</code> do projeto para detalhes de instalação e uso.</p>
28
+ </body>
29
+ </html>
@@ -0,0 +1,151 @@
1
+ Metadata-Version: 2.4
2
+ Name: orange3-text-analysis
3
+ Version: 0.0.1
4
+ Summary: Add-on do Orange: limpeza, tradução e classificação de textos com modelos do Hugging Face
5
+ Home-page: http://orange.biolab.si/download
6
+ Author: Mayki dos Santos Oliveira, Brasil BR
7
+ Author-email: maykioliveira97@gmail.com
8
+ Keywords: orange3 add-on
9
+ Requires-Python: >=3.12
10
+ Description-Content-Type: text/markdown
11
+ License-File: LICENSE
12
+ Requires-Dist: transformers
13
+ Requires-Dist: torch
14
+ Requires-Dist: sentencepiece
15
+ Requires-Dist: protobuf
16
+ Requires-Dist: ftfy
17
+ Requires-Dist: emoji
18
+ Requires-Dist: orange3>=3.40.0
19
+ Requires-Dist: pyqt5>=5.15.11
20
+ Dynamic: author
21
+ Dynamic: author-email
22
+ Dynamic: home-page
23
+ Dynamic: license-file
24
+
25
+ # Text Analysis — add-on do Orange
26
+
27
+ Add-on do [Orange Data Mining](https://orangedatamining.com) para limpar,
28
+ traduzir e classificar textos (ex.: análise de sentimento) com modelos do
29
+ [Hugging Face](https://huggingface.co). Os widgets aparecem na categoria
30
+ **Text Analysis** da barra lateral do Orange.
31
+
32
+ ## Requisitos
33
+
34
+ - **Orange 3** (testado com a versão 3.40) e **Python 3.9 ou superior**
35
+ - **Orange3-Text** (opcional, recomendado): fornece o widget Corpus e os
36
+ demais widgets de texto
37
+
38
+ Bibliotecas Python (instaladas automaticamente com o add-on):
39
+
40
+ | Biblioteca | Para que é usada |
41
+ |---|---|
42
+ | `transformers` | Carregar e executar os modelos do Hugging Face |
43
+ | `torch` | Motor de execução dos modelos (CPU ou GPU) |
44
+ | `sentencepiece` | Tokenizadores de modelos multilíngues (XLM-RoBERTa, T5, M2M100) |
45
+ | `protobuf` | Leitura dos arquivos de tokenizador SentencePiece |
46
+ | `ftfy` | Correção de codificação quebrada (ex.: `péssimo` → `péssimo`) |
47
+ | `emoji` | Remoção de emojis e conversão em texto em português |
48
+
49
+ ## Instalação
50
+
51
+ O add-on deve ser instalado **no mesmo Python que o Orange usa**.
52
+
53
+ **Pelo terminal**, dentro da pasta do projeto (troque `python` pelo
54
+ executável do Python do Orange, se for outro):
55
+
56
+ ```bash
57
+ python -m pip install .
58
+ ```
59
+
60
+ **Pelo próprio Orange**, colando no widget *Python Script* e clicando em
61
+ *Run* (ajuste o caminho da pasta):
62
+
63
+ ```python
64
+ import sys, subprocess
65
+ pasta = "/caminho/para/orange3-text-analysis"
66
+ r = subprocess.run([sys.executable, "-m", "pip", "install", pasta],
67
+ capture_output=True, text=True)
68
+ print(r.stdout[-1500:]); print(r.stderr[-1500:])
69
+ ```
70
+
71
+ Depois, **reinicie o Orange**.
72
+
73
+ Para desenvolvimento, instale em modo editável (as alterações no código
74
+ valem após reiniciar o Orange, sem reinstalar):
75
+
76
+ ```bash
77
+ python -m pip install -e .
78
+ ```
79
+
80
+ > **Atualizando a partir do `orange3-sentimento`:** desinstale o pacote
81
+ > antigo com `python -m pip uninstall orange3-sentimento`, senão os widgets
82
+ > aparecem duplicados. Modelos `.pkcls` salvos com o pacote antigo precisam
83
+ > ser gerados de novo.
84
+
85
+ ## Widgets
86
+
87
+ ### Limpeza de Texto
88
+
89
+ Limpa o texto e cria uma nova coluna com o resultado, mostrando uma prévia
90
+ antes/depois. Opções: corrigir codificação quebrada, remover HTML, links,
91
+ e-mails e menções (remover ou trocar pelos marcadores `http`, `email` e
92
+ `@user`), hashtags, emojis (remover ou converter em texto), números,
93
+ caracteres repetidos (`muuuuito` → `muuuito`), espaços excessivos,
94
+ minúsculas, acentos e pontuação, além de descartar textos curtos e
95
+ duplicados.
96
+
97
+ ### Tradução
98
+
99
+ Traduz textos com `unicamp-dl/translation-pt-en-t5` (português → inglês),
100
+ `unicamp-dl/translation-en-pt-t5` (inglês → português) ou
101
+ `facebook/m2m100_418M` (100 idiomas, com listas de idioma de origem e
102
+ destino). Pode criar uma nova coluna ou substituir o texto original. Divide
103
+ textos longos em frases, roda em segundo plano com barra de progresso e usa
104
+ a GPU, se houver.
105
+
106
+ ### Modelo Hugging Face
107
+
108
+ Transforma um modelo de classificação de texto do Hugging Face (ex.:
109
+ `cardiffnlp/twitter-xlm-roberta-base-sentiment`) em um modelo do Orange,
110
+ compatível com *Predictions*, *Save Model* e *Load Model*. Lê os rótulos do
111
+ próprio modelo, aceita parâmetros avançados em JSON e, ao receber o corpus
112
+ rotulado na entrada, usa a variável-alvo dele para que o *Predictions*
113
+ calcule as métricas de avaliação.
114
+
115
+ ## Fluxo de exemplo
116
+
117
+ ```
118
+ Corpus → Limpeza de Texto ─┬─► Modelo Hugging Face ──► Predictions
119
+ └─────────────────────────► Predictions
120
+ ```
121
+
122
+ Para usar um modelo disponível só em inglês, inclua o widget **Tradução**
123
+ (português → inglês) depois da Limpeza de Texto.
124
+
125
+ ## Estrutura do projeto
126
+
127
+ ```
128
+ orange3-text-analysis/
129
+ ├── README.md
130
+ ├── pyproject.toml
131
+ ├── docs/
132
+ ├── tests/
133
+ └── src/
134
+ └── text_analises/
135
+ ├── modelo.py # adaptador Hugging Face → modelo do Orange
136
+ ├── limpeza.py # funções de limpeza de texto
137
+ ├── traducao.py # funções de tradução
138
+ └── widgets/
139
+ ├── owsentimentohf.py
140
+ ├── owlimpezatexto.py
141
+ ├── owtraducao.py
142
+ └── icons/
143
+ ```
144
+
145
+ ## Observações
146
+
147
+ - Cada modelo é baixado do Hugging Face no primeiro uso (de centenas de MB
148
+ a cerca de 2 GB) e fica em cache em `~/.cache/huggingface`.
149
+ - Em sistemas com vírgula decimal (ex.: português do Brasil), o add-on
150
+ ajusta temporariamente a formatação numérica ao carregar os modelos,
151
+ evitando o erro do `protobuf` com tokenizadores SentencePiece.
@@ -0,0 +1,18 @@
1
+ orange3_text_analysis-0.0.1.data/data/help/orange3-text-analysis/index.html,sha256=jem4PyUt13238T_T_oIC8dNKelfHwxDN2tsN6oJRsMM,1025
2
+ orange3_text_analysis-0.0.1.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
3
+ text_analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ text_analysis/limpeza.py,sha256=Eo3HdFRbbyhav4FeEQBTKp3fI-ymQfN3-pXdNoo5FAw,4023
5
+ text_analysis/modelo.py,sha256=FL3LTVyp6ob_r0nH2hxa-YaSr7S1MuodA7r8tBQ1SPM,10455
6
+ text_analysis/traducao.py,sha256=AHc2zYxFo-h_6OqgRDtjl1-UChDy1dTApW9bigu2GZc,6548
7
+ text_analysis/widgets/__init__.py,sha256=TI_MlFgipZLG4dn_3nxAXi8V1fXdpfg6ItFphnsNSaE,266
8
+ text_analysis/widgets/owlimpezatexto.py,sha256=R2xE520jsmW2Ij2iEwAdgR73os0Z6jUhrk1_acQXFG0,11684
9
+ text_analysis/widgets/owsentimentohf.py,sha256=OUHBbj5JcmdWP8jeMEqK8xfza0-t6BNekaQHWkFg_E4,9435
10
+ text_analysis/widgets/owtraducao.py,sha256=O_WbYlP6ni9h3IkayQ1ZKh3xSkPtchti6cktWrHKbLo,12234
11
+ text_analysis/widgets/icons/limpeza.svg,sha256=p5OdvoF6vpYJfENk3AALAafViCxinOv9_MY6T2ftmkM,426
12
+ text_analysis/widgets/icons/sentimento.svg,sha256=81lF5J704xiCERZjtt9RI_UeyCgZGufIeul2bsuIRno,337
13
+ text_analysis/widgets/icons/traducao.svg,sha256=UMaILaGYPIkO4SrM-72Mw8HXcBoSz1Wx7tz6komOgv8,439
14
+ orange3_text_analysis-0.0.1.dist-info/METADATA,sha256=ao_qG6Monw2PQNN3dIEdvExxURuG_vZ16fXpgOjJ0bc,5393
15
+ orange3_text_analysis-0.0.1.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
16
+ orange3_text_analysis-0.0.1.dist-info/entry_points.txt,sha256=V9XPdxkFjxzXXJgjJY2gRXsIShqZGKJi2yUPVg3ggIQ,102
17
+ orange3_text_analysis-0.0.1.dist-info/top_level.txt,sha256=1Owxhl879ZlbNiyJnsxLqwxoOAeaPbXFP_RPwACP6HA,14
18
+ orange3_text_analysis-0.0.1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,5 @@
1
+ [orange.widgets]
2
+ Text Analysis = text_analysis.widgets
3
+
4
+ [orange3.addon]
5
+ text_analysis = text_analysis