bengali-nlp
Faz seu agente processar textos em bengali. Ajuda a entender e trabalhar com a língua, normalizando o texto e lidando com suas características únicas.
O que ela faz
Esta ferramenta ajuda a processar textos em bengali (Bangla). Ela garante que o texto seja exibido e armazenado corretamente, separa palavras e lida com números e caracteres específicos do idioma.
Quando usar
- ✓Quando você tem textos em bengali para analisar.
- ✓Ao criar aplicativos para pessoas que falam bengali.
- ✓Ao trabalhar com conteúdo educacional em bengali.
Exemplo do que pedir para a IA
“Por favor, processe este texto em bengali para mim: 'আমি বাংলায় গান গাই।'”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta usa regras específicas para organizar os caracteres bengalis, separando as palavras corretamente e lidando com os números no formato bengali. Ela também garante que o texto esteja em um formato padrão para evitar problemas.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add affaan-m/ECC --skill bengali-nlpOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/pi/core/skills/bengali-nlp/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Padrões de PLN para Bengali (Bangla)
Melhores práticas para processar, armazenar e exibir texto em Bengali em aplicações de software e sistemas de IA.
Quando Ativar
- Trabalhando com dados de texto em Bengali/Bangla
- Construindo aplicativos voltados para usuários falantes de Bengali
- Processando conteúdo educacional do NCTB (National Curriculum and Textbook Board)
- Implementando busca, autocompletar ou entrada de texto em Bengali
- Treinando ou ajustando LLMs com dados em Bengali
- Construindo chatbots ou IA conversacional em Bengali
- Lidando com texto misto Bengali-Inglês (Banglish)
Manipulação de Unicode e Script Bengali
Faixa Unicode
O script Bengali ocupa U+0980–U+09FF. Classes de caracteres chave:
U+0981–U+0983 Chandrabindu, Anusvara, Visarga
U+0985–U+0994 Independent vowels (অ আ ই ঈ উ ঊ ঋ ঌ এ ঐ ও ঔ)
U+0995–U+09B0 Consonants (ক–র)
U+09B2 ল
U+09B6–U+09B9 শ ষ স হ
U+09DC, U+09DD, U+09DF Additional consonants (ড়, ঢ়, য়)
U+09BC Nukta
U+09BE–U+09C8 Dependent vowel signs (কার): া ি ী ু ূ ৃ ে ৈ
U+09CB–U+09CC Dependent vowel signs: ো ৌ
U+09CD Hasanta (virama) — forms conjuncts
U+09CE Khanda Ta (ৎ)
U+09D7 AU length mark
U+09E0–U+09E3 Extended vowels
U+09E6–U+09EF Bengali digits: ০১২৩৪৫৬৭৮৯
U+09F0–U+09F1 Assamese letters: ৰ (ra with middle diagonal), ৱ (ra with lower diagonal)
U+09F2–U+09F3 Rupee mark ৲ and rupee sign ৳
U+09F4–U+09F9 Historic currency numerators ৴ ৵ ৶ ৷ ৸ and denominator ৹
U+09FA Isshar ৺
Normalização
Sempre normalize o texto em Bengali para NFC antes de comparar, armazenar ou pesquisar:
import unicodedata
def normalize_bangla(text: str) -> str:
"""Normalize Bengali text to NFC form."""
return unicodedata.normalize("NFC", text)
# NFC composes characters: base + combining marks -> precomposed
text_nfd = "ক\u09C7\u09BE" # decomposed form of "কো"
text_nfc = normalize_bangla(text_nfd)
assert text_nfc == "কো"
assert text_nfc == normalize_bangla(text_nfc) # idempotent
// JavaScript
function normalizeBangla(text) {
return text.normalize('NFC');
}
Consoantes Conjuntas (যুক্তবর্ণ)
Conjuntos Bengali são formados com Hasanta (্) entre consoantes:
ক + ্ + ষ = ক্ষ (ksha)
স + ্ + ত = স্ত (sta)
ন + ্ + ত + ্ + র = ন্ত্র (ntra)
Nunca divida strings no meio de um conjunto. Use limites de cluster de grafemas:
import regex # pip install regex
def grapheme_length(text: str) -> int:
"""Count user-perceived characters (grapheme clusters)."""
return len(regex.findall(r"\X", text))
# "ক্ষ" is 1 grapheme but 3 code points (ক + ্ + ষ)
assert grapheme_length("ক্ষ") == 1
assert len("ক্ষ") == 3 # code point count — wrong for display
// JavaScript — use Intl.Segmenter for grapheme-safe operations
function graphemeLength(text) {
const segmenter = new Intl.Segmenter('bn', { granularity: 'grapheme' });
return [...segmenter.segment(text)].length;
}
Dígitos Bengali
Lide com dígitos Bengali (০-৯) e ASCII (0-9):
BANGLA_DIGITS = "০১২৩৪৫৬৭৮৯"
ASCII_DIGITS = "0123456789"
def bangla_to_ascii_digits(text: str) -> str:
table = str.maketrans(BANGLA_DIGITS, ASCII_DIGITS)
return text.translate(table)
def ascii_to_bangla_digits(text: str) -> str:
table = str.maketrans(ASCII_DIGITS, BANGLA_DIGITS)
return text.translate(table)
Tokenização
Detecção de Limite de Palavra
Bengali usa espaços entre palavras, mas palavras compostas e posposições podem complicar a tokenização:
import re
def tokenize_bangla(text: str) -> list[str]:
"""Basic Bengali tokenizer — split on whitespace and punctuation."""
# Remove Bengali and ASCII punctuation, but preserve decimal points
text = re.sub(r'(?<!\d)\.|\.(?!\d)|[।,;:!?\-\'"()\[\]{}]', ' ', text)
return [token for token in text.split() if token]
# For production, use a trained tokenizer:
# - bnlp (pip install bnlp_toolkit)
# - stanza with Bengali model
# - spaCy with Bengali pipeline
Usando o Toolkit bnlp
from bnlp import NLTKTokenizer
tokenizer = NLTKTokenizer()
tokens = tokenizer.word_tokenize("আমি বাংলায় গান গাই।")
# ['আমি', 'বাংলায়', 'গান', 'গাই', '।']
Lidando com Posposições e Marcadores de Caso
Posposições Bengali se anexam a substantivos. Tokenizadores devem estar cientes de sufixos comuns:
-এর (possessive), -তে (locative), -কে (accusative)
-র (possessive after vowel), -য় (locative variant)
Padrões de Processamento de Texto
Detecção de Script
import re
def is_bangla(text: str) -> bool:
…
Perguntas frequentes
O que é normalização de texto?
Normalização é o processo de garantir que o texto bengali esteja em um formato consistente, combinando caracteres que podem ser escritos de maneiras diferentes, mas que significam o mesmo.
O que são 'conjuncts'?
Conjuncts são letras bengalis que se juntam para formar um único som ou caractere, como 'ক্ষ'. A ferramenta garante que essas letras sejam tratadas como uma unidade.
Por que preciso me preocupar com os números bengalis?
O bengali tem seus próprios dígitos (০১২৩৪৫৬৭৮৯). Esta ferramenta pode converter esses números para os números que usamos normalmente (0-9) e vice-versa, se necessário.
Detalhes
Descrição original do autor
Bengali (Bangla) text processing patterns including Unicode normalization, script detection, tokenization, conjunct handling, and Bangla-specific NLP best practices for AI applications.
repo: affaan-m/ECC
Popularidade
- Estrelas no GitHub
- 280 mil
- Posição no ranking
- #18
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
accessibility
Ajuda seu agente a criar interfaces que todos possam usar. Garante que sites e aplicativos funcionem bem para pessoas com deficiência, como cegos ou com mobilidade reduzida.
affaan-m/ECC
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC
Skills parecidas
enhance-prompt
Melhora os comandos de texto com detalhes de design e vocabulário técnico. É útil para obter resultados visuais mais precisos e claros.
nexu-io/open-design
advanced-evaluation
Ajuda seu agente a criar avaliações para modelos de IA. Ele define critérios e compara resultados para medir a qualidade das respostas.
sickn33/agentic-awesome-skills
ai-prompt-regression-testing
Permite que seu agente teste mudanças em prompts de IA. Ele compara resultados e verifica se as alterações causaram regressões indesejadas.
sickn33/agentic-awesome-skills