Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Processamento de texto

Olá, tudo bem?

Pessoal alguém pode me dar uma idéia sobre como se processa texto,
por exemplo no Word ou libre office, se se usa banco de dados,
no caso se existir banco de dados se ele é relacional ou não,
façam um resuminho da história por favor.
(Obs.: Não precisa ser inteligência artificial)

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
3 respostas

Olá! Tudo bem?

O processamento de texto em aplicativos como o Microsoft Word ou o LibreOffice Writer funciona de maneira bastante interessante. Esses programas são projetados para manipular documentos de texto, permitindo que os usuários criem, editem e formatem textos de maneira eficiente.

  1. Armazenamento de Dados: Ao contrário do que acontece em sistemas que utilizam bancos de dados, o processamento de texto em programas como Word ou LibreOffice geralmente não depende de um banco de dados para armazenar o conteúdo do documento. Em vez disso, o texto e as informações de formatação são armazenados em arquivos específicos (como .docx para Word e .odt para LibreOffice). Esses arquivos contêm não apenas o texto, mas também metadados sobre a formatação, estilos, imagens incorporadas, etc.

  2. Formato de Arquivo: Os formatos de arquivo usados por esses processadores de texto são geralmente baseados em XML, que é uma linguagem de marcação que permite descrever a estrutura e a formatação do documento de maneira legível para máquinas. Por exemplo, um arquivo .docx é na verdade um arquivo compactado que contém vários arquivos XML e outros recursos, como imagens.

  3. Histórico: O processamento de texto evoluiu bastante ao longo dos anos. Nos primórdios da computação, os processadores de texto eram bastante básicos, focando apenas na entrada e edição de texto simples. Com o tempo, eles foram incorporando recursos mais avançados, como formatação rica, verificação ortográfica, inserção de imagens e tabelas, entre outros.

  4. Banco de Dados: Embora o processamento de texto em si não use um banco de dados, muitos aplicativos podem integrar funcionalidades que interagem com bancos de dados para, por exemplo, realizar mala direta ou extrair dados para preencher documentos automaticamente. Nesse caso, o tipo de banco de dados pode variar, podendo ser tanto relacional quanto não relacional, dependendo da necessidade específica.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Vou te dar uma exemplo do que estava procurando, vou usar a edição de uma frase como exemplo:

"Eu vou pegar emprestado aquela tua bicicleta hoje, e vou te entregar amanhã de manhã."

Cada letra pode ser separada da palavra e cada palavra pode ser separada, editada, apagada ou criada na frase, bem como a verificação de problemas de sintaxe e ortografia e morfologia também pode ser feita, a minha dúvida no processamento de texto é: Como essa estrutura de edição e correção de palavras pode ser feita?

  1. A minha primeira idéia era de que um banco de dados temporário poderia ser usado dentro do programa para edição, mas como você disse não existe banco de dados.

  2. Então a minha segunda idéia com a sua ajuda era de que o arquivo XML que o programa usa separa palavras e letras (em estruturas maiores e menores) e só dentro do programa (quando o arquivo está aberto) se faz uma análise de sintaxe ortografia e morfologia, relacionando as palavras dentro dele para uma análise micro e macro da frase e das palavras.

Por favor analise minha segunda idéia.

Obrigado.

solução!

Oi! Tudo certo?

Sobre sua última dúvida: Sua ideia faz sentido, veja como ajustar: processadores de texto não usam banco de dados para editar cada letra/palavra. Eles carregam o arquivo (DOCX/ODT), que é um ZIP com XML, em estruturas de dados em memória para edição rápida e rodadas de análise (ortografia, gramática, morfologia).

O XML não separa letras por si; ele guarda parágrafos, “runs” (trechos com o mesmo estilo), tabelas, etc. A separação em letras/palavras e as correções acontecem enquanto o documento está aberto, via buffers de texto e tokenizadores incrementais, sem IA.

Pontos importantes para uma implementação técnica (sem IA):

  • Edição: use um piece table (ou rope / gap buffer) para inserir/apagar sem copiar o texto inteiro.
  • Tokenização incremental: ao digitar, re-tokenize só a região afetada (ex.: a palavra atual e vizinhos).
  • Ortografia: dicionários + regras de afixos (Hunspell-like) para marcar palavras desconhecidas.
  • Morfologia: lemmatização/stemming (ex.: FSTs) para reconhecer variações (pegar, peguei).
  • Gramática/estilo: regras (regex/AFDs) e análise de POS leve (sem IA) para vírgulas, concordância básica, etc.
  • Layout: motor de quebra de linha (line breaking) e hifenização (padrões ao estilo TeX).
  • Salvar: serialize o modelo em memória de volta para o XML dentro do ZIP.

Fico à disposição!