Contagem de palavras hifenizadas e suas contrapartes não-hifenizadas em arquivos de látex

6

Eu tenho uma tese de aproximadamente 100.000 palavras, digitadas em látex. De certa forma inconsistentemente hifenizei algumas das palavras, por exemplo, "medo da aranha" e "medo da aranha".

Eu gostaria de obter uma lista de todas as palavras nos arquivos tex que são hifenizados (junto com uma contagem) e, em seguida, Eu também gostaria de contar o número de vezes que a versão não hifenizada também aparece .

Presumivelmente usando uma ferramenta como awk, grep ou sed?

    
por Frank_Zafka 09.12.2013 / 19:57

1 resposta

3

Você pode fazer isso por meio de um programa Perl elegante, texcount.pl, que pode ser baixado em este site. página . Este programa conta palavras em documentos do TeX (ou letras, ou fórmulas matemáticas, ...), uma tarefa não trivial dada a presença de palavras-chave específicas do TeX que devem ser excluídas da contagem. O programa tem vários recursos e opções (que, no entanto, eu nunca usei), mas o que você precisa é:

   texcount.pl -freq myfile.tex

que retornará a lista completa de palavras usadas (para saída padrão) com sua frequência de aparição. Você pode facilmente analisar isso para ver quando você usou combinações hifenizadas ou não hifenizadas. Observe que o programa pode incluir facilmente projetos com vários arquivos, em que seções, apêndices, bibliografia e assim por diante são armazenados em arquivos diferentes. Não vai, no entanto, (ou pelo menos, AFAIK) apontar para a localização precisa das palavras: você terá que caçá-las uma a uma.

Editar:

Uma solução rápida, mas parcial, para encontrar todas as ocorrências das expressões sem hífen é a seguinte:

  grep 'spider *fear' file.tex -n

que procura as duas palavras separadas por zero ou mais (o * símbolo) espaços e retorna o número da linha (a opção -n) dessa ocorrência. Isso é rápido, mas está incompleto porque o uso do grep implica automaticamente que não é possível localizar as expressões spider fear sempre que elas forem divididas em duas ou mais linhas. Como para expressões arbitrárias isso pode ocorrer mesmo dentro de palavras, encontrar essas ocorrências exigirá um pouco mais de trabalho do que estou disposto a fazer.

Editar 2:

Outra parte da solução é a seguinte:

   grep 'spider *$'  -A 1 filename | grep '^ *fear' -n

Isto irá procurar por todas as linhas que terminam com spider seguido por um número não especificado de espaços em branco, seguido por outra linha que começa com um número não especificado de espaços e depois a palavra medo. Ao fazer isso, ele também mostrará o número da linha dessa ocorrência.

Lembre-se de que, em todos os casos anteriores, você está procurando somente por expressões em minúsculas. Se você deseja incluir maiúsculas, basta substituir grep -i por grep .

A única parte que falta agora é quando as palavras são quebradas entre linhas diferentes, como em

    spi
    der
    
por 09.12.2013 / 20:22

Tags