Um dos programas mais úteis em um PC e smartphone, no meu entendimento, é um dicionário eletrônico. Naqueles tempos antigos, quando aprendi uma língua estrangeira, tive que procurar todas as palavras em um dicionário de papel. Eu fiz essa operação trivial centenas de vezes e algumas palavras maliciosas tiveram que ser observadas repetidamente, desde que consegui esquecer o significado delas. Que insulto! Seja o caso agora, rapidamente e traduza diante de seus olhos na tela do monitor. Histórico de pesquisa, caso a palavra de pesquisa não tenha sido movida do campo de memória de curto prazo para longo prazo.

Vamos criar um dicionário eletrônico para os programas StarDict / GoldenDict por conta própria. Para isso, você pode precisar de muitas ou poucas horas de trabalho, dependendo da qualidade do material de origem.
Etapa 1: OCR
Ao contrário do alpinismo, o passo mais difícil na digitalização de um dicionário não é o último, mas o primeiro. Se você precisar executar um OCR de um dicionário de papel com páginas desbotadas impressas muito finamente, com vários artefatos de uso descuidado ou em um idioma exótico, mesmo o FineReader não ajudará muito. Em algumas páginas, a diferença de tempo entre a digitação manual e o OCR com correção de erros é insignificante.
Aconselho que você salve tudo em arquivos de texto simples , já que pesquisa avançada e correção de erros, marcação, conversão de classificação e outras operações com uma matriz de texto são inimagináveis para serem executadas com um arquivo binário .
Nesta etapa, é importante determinar a estrutura das entradas do dicionário. No caso mais simples, haverá apenas dois campos: uma chave e um valor . Isso é suficiente, mas se você precisar destacar vários elementos de artigos, precisará rotular todos esses elementos de uma certa maneira.
É hora de falar um pouco sobre formatos. Existem muitos formatos de dicionários eletrônicos, aqui está uma lista deles.
Não analisaremos todos os formatos aqui, pois a maioria é proprietária. Estamos interessados em padrões abertos e software de código aberto.
Dictd
Surgiu em uma época em que os protocolos de rede TCP / IP se multiplicavam livremente e dictd
agora é apenas de interesse arqueológico. Este é um protocolo de servidor cliente que usa a porta TCP 2628, definida na RFC 2229 .
O arquivo de origem do dicionário está formatado da seguinte maneira.
::
Por exemplo, esse dicionário
:catalysis: "increase in the rate of a chemical reaction due to the participation of an additional substance called a catalyst, which is not consumed in the catalyzed reaction and can continue to act repeatedly. " <a href="is.gd/v6a22Q">ref</a>. :deconstruction: :rendered: eg. "rendered irrelevant." :reading: cf. 'reading of' :minor: a minor reading.
O arquivo finalizado para o dicionário é criado pelo comando dictfmt
.
dictfmt --utf8 -s " " -j dict-name < mydict.txt
Como resultado, dois arquivos são formados: dict-name.index
e dict-name.dict
. Destes, o primeiro é obviamente um arquivo de índice, você não precisa fazer nada com ele e o segundo pode ser compactado com o comando dictzip
. Este comando compacta o arquivo * .dict usando o utilitário gzip
. Surge imediatamente a pergunta: por que então é necessário se existe um gzip
regular?
O fato é que o dictzip
usa bytes extras no cabeçalho do arquivo dictzip
para fornecer acesso pseudo-aleatório ao arquivo.
Por fim, os arquivos são colocados nos diretórios de perfil, /usr/lib/dict
, reiniciamos o serviço dictd
e voila. A sintaxe da pesquisa é simples, basta digitar
ditar PALAVRA.
Movimentar-se através de links dictd assemelha-se a um safari na rede da Internet dos anos 90, está vivo e ainda chuta!
Sdict
Uma tentativa ousada de Alexei Semenov de mudar o mundo para melhor com a ajuda da magia Perl, numa época em que a Microsoft ainda não havia distorcido o Linux e a comunidade de código aberto, e os piratas do ABBYY Lingvo eram a principal fonte de dicionários.
O cabeçalho do arquivo de dicionário de origem.
<header> title = Sample 1 test dictionary - dictionary name; copyright = GNU Public License - copyright information; version = 0.1 - version; w_lang = en - language for words; a_lang = fi - language for articles. For further information about language codes refer 'C:\Sdict\share\doc\iso639.htm' file; # charset = ... - use if your source file is not in UTF-8 encoding. </header>
O corpo está formatado da seguinte maneira:
word___article
Você pode baixar a versão para o sistema operacional Symbian, se houver. O projeto não está mais ativo, e até os próprios dicionários podem ser aprendidos apenas com a Time Machine .
Xdxf
Bem, tudo, estamos ligados à arqueologia e passamos a formatos e programas de dicionário adequados para o uso do IRL.
O XDXF tem todas as vantagens e desvantagens do formato XML, que é. Toda sintaxe e exemplos de formato podem ser vistos aqui .
O esqueleto do arquivo de dicionário se parece com isso, consiste em 2 partes: meta_info
e lexicon
.
<xdxf ...> <meta_info> : , . </meta_info> <lexicon> <ar> 1</ar> <ar> 2</ar> <ar> 3</ar> <ar> 4</ar> ... </lexicon> </xdxf>
Há um grande número de dicionários nesse formato. A grande vantagem do formato é que não há necessidade de converter mais nada. GoldenDict reconhece arquivos XDXF junto com um grande número de outros formatos suportados.
TSV / StarDict
O StarDict e seus clones não são muito sobre o formato de dicionário eletrônico, mas sobre software de alta qualidade para visualizá-los, convertê-los e criá-los.
Para criar um dicionário eletrônico usando o StarDict, basta um arquivo TSV, que eu escolhi para uma cópia digital do dicionário russo-armênio .
No entanto, é possível alguma formatação e marcação do arquivo de dicionário, mas não pode ser comparado com o XDXF
.
a 1\n2\n3 b 4\\5\n6 c 789
O formato define o caractere de quebra de linha \n
, no caso em que o artigo é dividido em parágrafos.
Etapa 2: ajuste
Após o primeiro passo, provavelmente haverá dezenas ou mesmo centenas de ortografia, gramática e todos os tipos de outros erros, caracteres estranhos e outros artefatos de OCR.
A peculiaridade dos dicionários é que a ortografia é necessária simultaneamente em dois idiomas. Mesmo agora em 2018, surpreendentemente poucos editores de texto e até suítes de escritório são capazes de executar essa ação simples.
Não é um holivar, eu recomendo o processamento de teska para produzir com o Vim . Se o seu editor de texto favorito não piorar, é legal. Com o Vim, uma equipe é suficiente.
:setlocal spell spelllang=en,ru
para verificar a ortografia em dois dicionários, neste caso, russo e inglês. A seguir está uma lista de ancinhos.
- A classificação de texto funciona de qualquer maneira para locais não latinos, especialmente quando escrever uma carta requer mais de um caractere, como armênio
ու = ո + ւ
. Nesses casos, é necessário ordenar a lista de palavras usando um Perl simples ou outro script. - A correspondência de padrões também pode funcionar inesperadamente em alguns códigos de idioma, mesmo que o texto em si e o console estejam em UTF-8.
- Ao digitalizar um dicionário impresso, é necessário estar preparado não apenas para erros de digitalização, mas também para erros no próprio dicionário impresso. Eles podem conter muito!
- Se o título do artigo estiver escrito em letras maiúsculas, talvez seja necessário convertê-lo para letras minúsculas ao digitalizar. Nem todas as letras têm caracteres maiúsculos; na verdade, nem todas as localidades têm letras maiúsculas.
Etapa três: compilação de dicionário
Para o formato XDXF
, como já mencionado, esta etapa não é necessária. Basta colocar o arquivo na /usr/share/goldendict
, onde o programa o /usr/share/goldendict
.
Para o arquivo TSV, é usado o utilitário stardict-editor
, que acompanha o kit de ferramentas StarDict .

Na saída, o programa cria os seguintes arquivos, como o antigo Dict.
- somedict.ifo
- somedict.idx ou somedict.idx.gz
- somedict.dict ou somedict.dict.dz
- somedict.syn (opcional)
Os arquivos são copiados para o /ysr/share/stardict/dic
e é tudo.
PS Para a plataforma móvel Android, o GoldenDict de repente foi pago, mas você ainda pode encontrar a versão gratuita mais recente na Internet.