Ir ao conteúdo

Posts recomendados

Postado

Oi, pessoal, estou aproveitando essa quarentena para digitalizar alguns livros que tenho e converter outros de imagem para texto para ler no Kindle. No entanto, o que está me dando muito trabalho são as palavras separadas por hifens e as quebras de parágrafos inadequadas. As palavras estão separadas no livro físico quando o Abby faz a digitalização, o reconhecimento de caracteres, igual como está no livro, por essa razão as palavras ficam divididas e algumas partes de alguns parágrafos quebram para a próxima página.

 

 

Quero saber se tem como fazer uma macro para juntar apenas as palavras que não devem ter hífen. Por exemplo, a palavra "psica-nalítico" está separada indevidamente e muitas outras no arquivo, mas tem outras que quero deixar como estão. O que posso fazer para resolver isso automaticamente?

 

1800093704_separaoporhfen.png.22bee3d3797b2d75f5056dd6e32dfc03.png

 

 

Em relação a quebra de parágrafos, o texto é digitalizado igual com o livro físico aí as vezes um paragrafo fica dividido também, uma parte no meio da página e a continuação no início da outra página. Como posso resolver esse problema automaticamente?

1313769532_QuebradeParagrafo.thumb.png.7fcbca2df3fdbaf9bfa5be080f85a1b4.png

  • Curtir 1
Postado

Isso talvez não seja tão simples de resolver,

 

Mas para manipular as linhas do ebook acho melhor trabalhar no formato Txt em vez de Doc, assim você poderá usar FileSystemObject no VBA para tratar o arquivo texto original e ir gerando outro com as correções.

 

Sobre a quebra de parágrafos, manipulando um txt linha a linha você pode verificar se o último caractere não for um ponto final e assim juntar com a próxima linha

 

Para resolver a questão do hífen fiz essa macro que funcionou nesse caso, não testei em um ebook completo para ver se tem algum problema.

 

Sub Macro()
    Dim Texto       As String
    Dim NovoTexto   As String
    Dim I           As Integer
    Dim N           As Integer
    
    Texto = "auto-escola tradição anteior de radicalismo psica-   nalítico para-    quedas micro-ondas"
        
    For I = 1 To Len(Texto)
        If Mid(Texto, I, 1) = "-" And Mid(Texto, I + 1, 1) = " " Then
            N = I + 1
            While Mid(Texto, N, 1) = " "
                N = N + 1
            Wend
            Texto = Mid(Texto, 1, I - 1) & Mid(Texto, N - 1, Len(Texto))
        Else
            NovoTexto = NovoTexto & Mid(Texto, I, 1)
        End If
    Next I

    MsgBox NovoTexto
End Sub

 

Postado

@Midori Muito obrigado, tem algum tutorial sobre como usar o FileSystemObject? Dá para manter a formatação no formato de arquivo txt, notas de rodapé, negrito, itálico...? Desculpa a falta de conhecimento, comecei a fazer isso nessa quarentena.

Postado

Bom dia, @LeandroRT e demais colegas

 

Tem como você anexar aqui mesmo um trecho desse conteúdo em que acontece essa hifenização para vermos que tipo de caracteres o OCR do ABBYY está gerando?

Essa substituição, tanto em relação à hifenização quanto às quebras de parágrafo, provavelmente poderá ser feita com o Localizar e Substituir do Word, mas usando coringas (modo avançado), só que para isso é necessário verificar quais caracteres são esses, pois há vários tipos de espaços em branco, hifens e quebras de linha.

Sua conversão pelo OCR está gerando um .docx mesmo ou .txt (ou .pdf)?

Postado

Bom dia, @Edson Luiz Branco. Eu anexei uma parte do arquivo, a hifenização acontece no arquivo inteiro, então teve um tipo de separação que eu consegui arrumar rapidamente. Era um traço desse tipo "¬", deu para substituir porque ele apareceu apenas em palavras que não deviam ser separadas. O problema é justamente para corrigir os hifens porque eles aparecem em palavras que devem ser separadas e em palavras que não devem ser separadas. Estou convertendo para .docx. Muito obrigado.

Exemplo de algumas palavras
 

dife-x renciar
auto-inte- resse
gover¬namental
“so- brevivencialismo”
auto-explo- ração
consumis- mo 

distin-
guir

recla-
mam 

 

Exemplo.docx

Postado

Obs.: mantenha ativo o "Mostrar Tudo" (pé-de-mosca ou pi) durante toda a aplicação das sugestões abaixo para que os caracteres ocultos possam ser revelados e faça as substituições na ordem, usando o Localizar e Substituir do Word (Ctrl+U ou botão Substituir na guia "Página Inicial", grupo "Editando").

 

1 - Para eliminar os caracteres "¬" (= hífen opcional):

  • Mantenha desativada a opção "Usar caracteres curinga"
  • Em Localizar: "^-"  (circunflexo e hífen)
  • Em Substituir: (deixe em branco)

Quanto às quebras de página (que na verdade no documento enviado são quebras de seção), tenha em mente que o texto em relação a numeração das páginas não será mais como o original escaneado, o que pode ser um problema em caso de se querer fazer um trabalho acadêmico num futuro (citações). O que poderia ser feito nesse caso é reduzir o formato/tamanho da página e só substituir (pró-forma) as quebras de seção (^q) por quebras de página manual (^p).

 

2 - Para substituir as quebras de seção:

  • Ative a opção "Usar caracteres curinga" e
  • Em Localizar: ".^12([A-Z])" (ponto, circunflexo, 1, 2, abre parênteses... até fecha parênteses)
  • Em Substituir: ".^p\1" (ponto, circunflexo, p, barra, 1)
  • Em Localizar: Idem, mas insira um espaço em branco entre o "12" e o "(" em Localizar
  • Em Substituir: Idem
  • Em Localizar: "-^12" (hífen, circunflexo, 1 e 2)
  • Em Substituir: (deixe em branco)
  • Em Localizar: "^12([a-z])" (circunflexo, 1, 2, abre parênteses... até fecha parênteses)
  • Em Substituir: " \1" (espaço em branco, barra, 1)
  • Em Localizar: "^12" (circunflexo, 1 e 2)
  • Em Substituir: "^p" (circunflexo e p minúsculo). Caso queira que, ao invés de quebrar parágrafo, quebrar página, ao invés de "^p", use "^m".

Para eliminar os hifens desnecessários, tem que antes fazer um pequeno estudo de caso no documento analisado: por exemplo no seu texto, percebe-se que onde eles ocorrem geralmente há um espaço em branco após o hífen, com raras exceções.
Para minimizar os efeitos dessas exceções, fazer uma sequência de substituições até obter o texto final desejado.
Uma dessas exceções com algumas ocorrências é quando há um hífen antes de um ponto em final de sentença, por exemplo em:
...individual dos problemas”-. Com não pouca...
...holo¬causto nuclear-. “As ...

 

3 - Para eliminá-los:

  • Ative a opção "Usar caracteres curinga" e
  • Em Localizar: "-(. [A-Z^0147"])"  (hífen, abre parênteses, ponto, espaço em branco, abre colchetes A hífen Z circunflexo 0147, aspas simples, fecha colchetes e fecha parênteses)
  • Em Substituir: "\1" (barra e 1)

Antes de prosseguir substituindo todas as ocorrências de hífen+espaço por nada, seria interessante tratar algumas partículas de palavras compostas que ocorrem com mais frequência como os prefixos auto-, porta-, pós-, pseudo- e os sufixos -nos, -se, -me...

 

4 - Para isso, com os coringas ativados, por exemplo para o prefixo "auto-":

  • Localizar: "<auto>- "(sinal de menor, prefixo auto, sinal de maior, hífen, espaço em branco)
  • Substituir: "auto-" (prefixo auto e hífen)

Para os sufixos, idem aos prefixos, envolvendo-os em sinais de maior e menor, como L:"- <nos>" S:"-nos".


5 - Feito isso, substitua o restante das ocorrências, agora sem curinga:

  • L: "- "
  • S: deixar em branco

6 - E finalmente, eliminar os hifens antes de marcas de parágrafo, ligando com a linha seguinte (coringa ativado😞

  • L: "-^13"
  • S: "^p"

Mesmo com tudo isso, alguns vão passar, pois OCR não é 100% confiável.

 

Uma metodologia mais efetiva caso o volume de conversões seja significativo seria usando Expressões Regulares ou Regex  (dentro do próprio VBA do Word ou mesmo fora, por exemplo no Regex101 que é on-line), mas demandaria um pouco mais de tempo e conhecer um pouco a sintaxe, embora não seja tão mais diferente do que essa pseudo-regex do Word...

  • Amei 1
  • 2 meses depois...
Postado

Remova Todas As Quebras de Seção Usando O VBA

Além do recurso acima Find e Replace, você também pode remover rapidamente todas as quebras de seção do documento atual com o VBA no Word. Faça o seguinte:

1. pressione Alt + F11 chaves juntas para abrir o Microsoft Visual Basic para aplicação janela;

2. Clique inserção > Módulo e cole os seguintes códigos VBA na nova janela do módulo.

VBA: remova todas as quebras de seção no Word

 

Sub DeleSectionBreaks()

Selection.Find.ClearFormatting

Selection.Find.Replacement.ClearFormatting

With Selection.Find

.Text = "^b"

.Replacement.Text = ""

.Forward = True

.Wrap = wdFindContinue

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchByte = False

.MatchAllWordForms = False

.MatchSoundsLike = False

.MatchWildcards = False

.MatchFuzzy = False

End With

Selection.Find.Execute Replace:=wdReplaceAll

End Sub

 

3. Então clique corrida ou pressione F5 chave para executar o código. E então as quebras de seção serão removidas em massa de uma só vez.

 

REMOVA TODAS AS LINHAS EM BRANCO

Pressione CTRL + U e digite:

em Localizar: ^p^p

em Substituir por: ^p

  • 2 semanas depois...
Postado

Olá, tenho uma pequena contribuição quanto às quebras de linha. Estive procurando a solução para o mesmo problema. Estou digitalizando livros com o ABBYY Fine Reader, e ao gerar o arquivo do Word os mesmos ficam com quebras de linhas indevidas. A solução é bem mais simples do que parece. Corrigimos isso com a função "Localizar e Substituir".

 

1 - Abra o documento no Word;

2 - Vá em "Substituir" (ou ALT+C+S+U, se for o Office 365), ou na guia "Página Inicial", seção "Editando", "Substituir";

3 - Na janela "Localizar e Substituir" que será aberta, digite no campo "Localizar" a seguinte informação (sem as aspas): "^l" (letra L minúscula);

4 - No campo "Substituir", digite a seguinte informação (também sem as aspas): " " (espaço);

5 - Depois é só clicar em "Substituir" ou "Substituir Tudo" e ver a mágica acontecendo!

 

Enfim, espero ter ajudado. Criei conta no fórum só pra responder a essa publicação, já que estive na mesma situação que a sua. Espero que seja bastante útil. Até mais!613325131_substituirquebraporespao.JPG.89fe3ef615818ae82481c3d9fd359980.JPG

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!