Pular para o conteúdo
Skillpedia
Prompts e LLMs280 mil · #18

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

https://github.com/affaan-m/ECC/blob/main/pi/core/skills/bengali-nlp/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/affaan-m/ECC/blob/main/pi/core/skills/bengali-nlp/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-nlp

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/pi/core/skills/bengali-nlp/SKILL.md -o SKILL.md
Conteú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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas