русско-эсперанто словарь Бокарёва в Dict-формате (создаем из plain-text)

Полезные советы и программы от пользователей нашего форума.

Модератор: Модераторы разделов

Ответить
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

русско-эсперанто словарь Бокарёва в Dict-формате

Сообщение sash-kan »

довольно объемный словарь.
тот, что лежит в альтовской сборке, вроде поменьше будет.
ввиду того, что никаких упоминаний о лицензии/правах/ограничениях на нашел, на всякий случай привожу здесь только ссылку.
http://cybercom.net/~dcoffin/bokarev/bokar...peranto.txt.bz2
вот размеры и md5-суммы архива и словаря:

Код: Выделить всё

$ du -b bokarev_rusa_esperanto.txt*
1515965 bokarev_rusa_esperanto.txt
365689  bokarev_rusa_esperanto.txt.bz2
$ md5sum bokarev_rusa_esperanto.txt*
f1196d2fcbfaaa85dcb8bb5a88cd345a  bokarev_rusa_esperanto.txt
fa6c63f26cb8f4744c9cceb7f1dd053c  bokarev_rusa_esperanto.txt.bz2

а вот собственно и инструкция по перекодированию plain-text в формат dict.
выполнена в виде скрипта. в неизменном виде скрипт работоспособен под debian.
в других дистрибутивах не проверял. две дистрибутивозависимых строчки выделены восклицательными знаками.
естественно, dictd должен быть установлен перед выполнением скрипта. да и perl не помешает (:

Код: Выделить всё

#!/bin/bash
# распаковываю архив в текущий каталог
bunzip2 bokarev_rusa_esperanto.txt.bz2
# отделяю сам словарь от вступления и приложения
cat bokarev_rusa_esperanto.txt | sed -n '281,17368p' > bokarev_rusa_esperanto.txt.body
# формирование headword-ов
perl -i -C -ne 'use utf8;($a,$b)=split /--/;($b,$c)=split /[IVX]+/,$a; \
  ($c,$d)=split /[\|,:!]/,$b;$b=~s/~/$c/g;print $b,"\n ",$_' bokarev_rusa_esperanto.txt.body
# сливаю вместе вступление/приложение и сам словарь
cat <(sed -n '1,280p;17369,$p' bokarev_rusa_esperanto.txt| sed '3,$s/^/ /') \
  bokarev_rusa_esperanto.txt.body > bokarev_rusa_esperanto.txt.all
# построение собственно словаря в понятном для dictd формате.
# создаются два файла bokarjovrueo-big.dict и bokarjovrueo-big.index
cat bokarev_rusa_esperanto.txt.all | dictfmt -u 'unknown' -s 'RUSA-ESPERANTA VORTARO' \
  --utf8 --headword-separator ', ' --without-headword -f bokarjovrueo-big
# упаковываю словарь, чтобы ускорить к нему доступ
dictzip bokarjovrueo-big.dict
# копирую словарь и индекс в каталог dictd
# !!!дистрибутивоспецифично!!!
sudo cp bokarjovrueo-big.{dict.dz,index} /usr/share/dictd/
# переконфигурация словарей и перезапуск dictd
# !!!дистрибутивоспецифично!!!
sudo dictdconfig -w && sudo /etc/init.d/dictd restart
# убираю промежуточные файлы
rm bokarev_rusa_esperanto.txt.*
# вот и все (:

# теперь можно посмотреть, например, информацию о словаре.
# в эту информацию входит и вступление и приложение, сами собой представляющие
# прекрасное учебно-справочное пособие по эсперанто:
# $ dict -h localhost -i bokarjovrueo-big
# или поискать перевод слов:
# $ dict -h localhost -d bokarjovrueo-big эсперанто
# $ dict -h localhost -d bokarjovrueo-big -s re общ[иа]
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: русско-эсперанто словарь Бокарёва в Dict-формате

Сообщение sash-kan »

отрезал флейм и перенес в эсперанто
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Ответить