New user registration is currently disabled due to spam abuse / Регистрация новых пользователей в настоящее время приостановлена из-за злоупотреблений спаммерами

Не может проиндексировать словарь Multitran 2009

Обсуждение мобильной версии

Re: Не может проиндексировать словарь Multitran 2009

Postby ikm » Wed Feb 15, 2012 9:05 am

Я так же уже писал, что открывать чужие закрытые форматы в планы не входит.
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am

Re: Не может проиндексировать словарь Multitran 2009

Postby moytra » Wed Feb 15, 2012 9:48 am

Про запрещённый контент я всё понял :)... Теперь вопрос про MultiTran. Тулсу и код я написал... словарик мультитрана парсится успешно, конвертится в DSL. Я считаю, что утилитка легальная, учитывая то, что древние исходники мультитрана были выложены в GPL на http://multitran.sourceforge.net/, а значит формат и внутренние алгоритмы мультитрана якобы открыты на обозрение... :) Потому вот выдаю утилитку, а счастливые обладатели мультитрана могут на свою базу натравить её и получить DSL. Инструкции в ReadMe.txt. Ссылка http://dl.dropbox.com/u/60488655/share/tmp/multitran_tool.7z, дополнительные вспомогательные тулсы (iconv): http://dl.dropbox.com/u/60488655/share/tmp/iconv.7z. Закоммиченный код на https://code.google.com/p/multitran-tool/... Все, кто желают, можете самостоятельно всё заюзать. Получается ikm, что DSL уже нельзя выдавать ссылки от мультитрана, правильно понял? Вообщем если чё лишнего налинковал удаляй и поясни пожалуйста :). Если чё, кидайте сообщения ЛС ;).
moytra
 
Posts: 18
Joined: Fri Feb 10, 2012 6:53 pm

Re: Не может проиндексировать словарь Multitran 2009

Postby quicktrick » Wed Feb 15, 2012 10:05 am

moytra, круто, спасибо! Скачал файлы, не нахожу файла ReadMe.txt в архивах. Сейчас так попробую.

upd
Аа, сорри, во вложенном архиве нашел. Сейчас буду пробовать.

upd
Требует MSVCP100.dll Где взять? Погуглил -- сейчас скачаю откуда-нибудь.
И MSVCR100.dll тоже требует. Скачал обе библиотеки -- их как-то регистрировать надо? Пока не удается запустить программу, ругается на MSVCR100.dll, что-то там не находит.
Last edited by quicktrick on Wed Feb 15, 2012 10:23 am, edited 1 time in total.
quicktrick
 
Posts: 37
Joined: Thu Jul 01, 2010 2:38 pm

Re: Не может проиндексировать словарь Multitran 2009

Postby moytra » Wed Feb 15, 2012 10:23 am

За последними исходниками делаем
Code: Select all
git clone https://code.google.com/p/multitran-tool/
. Компилим используя Boost Build: http://www.boost.org/boost-build2/: в папке исходников делаем [url]bjam release[/url]. Нужен компилятор, качаем под винду MS VC++ Express http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express либо gcc из Cygwin http://www.cygwin.com или из Mingw http://www.mingw.org/. Для MS VC делаем "bjam release toolset=msvc" для gcc "bjam release toolset=gcc", но Boost и так должен выбрать подходящий тулсет.... Дебаг версию если компилить, она всё проверяет и будет раз в 10 медленней, там нужно на кусочке только базы а не всей тестировать, потому только release для скорости... Дальнейшие рабочие релизы помещаю на http://code.google.com/p/multitran-tool/downloads/list, баги постить сюда http://code.google.com/p/multitran-tool/issues/list
moytra
 
Posts: 18
Joined: Fri Feb 10, 2012 6:53 pm

Re: Не может проиндексировать словарь Multitran 2009

Postby quicktrick » Wed Feb 15, 2012 10:28 am

Брат, прости, я программированием последний раз занимался лет 25 назад, сложно сейчас в это вникать. А готовую сразу программку под Windows не можешь выложить, чтобы компилировать ничего не нужно было? Или то, что ты дал, будет работать, если поставить MS VC++ Express?
quicktrick
 
Posts: 37
Joined: Thu Jul 01, 2010 2:38 pm

Re: Не может проиндексировать словарь Multitran 2009

Postby moytra » Wed Feb 15, 2012 10:39 am

Обновил на DropBox на статическую компиляцию... это означает MSVCP/R DLL не требуются больше... Google Code мне кидает 404 ошибки (нет страницы), не могу туда релиз залить... А так в дальнейшем рабочая версия тут будет http://code.google.com/p/multitran-tool/downloads/list.
А пока тут последняя рабочая версия будет лежать, http://dl.dropbox.com/u/60488655/share/tmp/multitran_tool.7z
Update
Победил гуглу :) Теперь http://code.google.com/p/multitran-tool/downloads/list будет хранить последнюю рабочую версию тулсы...

PS. Кстати, программистский прикол про МультиТрановую базу - она разряжённая, страницами не до конца занятыми организована. Так вот, они когда базу писали, память не чистили, в итоге пол страницы только используется остальная половина просто данные старые из памяти, мусор вообщем :) ну и конечно он не нужен и не используется, а вот сжимать базу от этого хуже получается :) реально только на 60% занят файл полезной нагрузкой...
moytra
 
Posts: 18
Joined: Fri Feb 10, 2012 6:53 pm

Re: Не может проиндексировать словарь Multitran 2009

Postby quicktrick » Wed Feb 15, 2012 11:56 am

Ура!!! Получилось! :)

Взял обновление Мультитрана от 02.12.2011, eng_rus. Конвертировалось на моем компьютере минут 15. Получил dsl 323 мега. Сжал dictzip-ом до 86 мегов. Подсунул Голдендикту десктопному (старая какая-то версия у меня 1.0.1-68...). Индекс строился минут 5. В общем, вижу словарь. Он, правда, названия не имеет -- пустая иконка в Голдендикте. И есть только направление английский-русский (ну, так оно, очевидно, и должно быть). Ну, и классно всё, в общем! :) Вроде 5 млн. 230 тыс. словарных статей. Круто!

moytra -- ты герой! :) Поздравляю! :)

Я так понимаю, еще что-нибудь там дошлифовывать будешь в программе? И как теперь название словаря прописать, чтобы отображался в Голдендикте? Надо еще попробовать на Андроид его кинуть. Сейчас попробую.

upd
На мобильном тоже отлично работает!

moytra, спасибо тебе огромное! :)

Осталось довести это дело до совершенства. :)
quicktrick
 
Posts: 37
Joined: Thu Jul 01, 2010 2:38 pm

Re: Не может проиндексировать словарь Multitran 2009

Postby Tvangeste » Wed Feb 15, 2012 1:55 pm

moytra wrote: Компилим используя Boost Build: http://www.boost.org/boost-build2/

У меня на винде с mingw не компилится, ругается на
Code: Select all
multitran_parser.hpp:47: error: 'memcpy' was not declared in this scope

Добавил в util.hpp вот такое, и все зарабоатало:
Code: Select all
#include <cstring>
Tvangeste
 
Posts: 893
Joined: Thu Jun 02, 2011 11:42 am

Re: Не может проиндексировать словарь Multitran 2009

Postby moytra » Wed Feb 15, 2012 3:13 pm

Странно, что у меня при компиляции не ругнулось :). У себя тоже поправил.
Говоря об улучшении, прямо сейчас я просто по основной базе статей прохожусь по всем и извлекаю статьи, потом сортирую и объединяю с одинаковым именами. Это короткий путь. Мультитран делает вначале простой морфологический анализ - отрезает окончания (согласно базе end.LANG), потом находит остаток в базе основ (stem.LANG) и исходя из этого уже получает список статей (ещё проходя через дополнительный поисковый индекс dict.xxD). При выделении основ он получает части речи. Т.к. я таким путём не иду, у меня сейчас части речи не известны для слов. Для них нужно ещё те несколько баз тоже парсить и подключить.
Что сейчас довольно доступно, так это transcr.LANG - база транскрипций, это простое отображение из слова в транскрипцию (по ихнему закодированную), потому её можно довольно быстро подключить, она и памяти не особо жрёт ввиду мелкого размера. Разве что нужно будет разбираться, как лингво кодирует в DSL транскрипцию...
По поводу названия словаря, как понимаю, для полноценного DSL нужно ещё несколько вещей с метаинфой, это 1) шапка чтобы была в DSL:
#NAME "MultiTran"
#INDEX_LANGUAGE "English"
#CONTENTS_LANGUAGE "Russian"
2) файл аннтоаций (для лингво) .ann и 3) картинка словаря .bmp. Шапка в iconv.7z лежит, header.txt, а также её просто в блокноте создать и сохранить как юникод.
Кстати, как в ReadMe.txt говорилось, там пример что шапку вначале пристыковывать нужно. Тогда будет имя и всё остально работать :).

Ещё в МультиТране довольно много всякого трэшняка, когда язык местами перепутан, когда битые статьи (с левыми байтами данных) и т.п. Относительно всего объёма их может 1%, потому я просто выкидывал, кое что лингво при компиляции уже выкидывает (например язык направлением перепутан). Так что ещё вопрос, как и что зачищать...

Относительно направления перевода. Все МультиТрановые баз статей просто без направления, у них даже статей нету, это просто набор пар слов из двух языков + доп. инфа типа комментов. Так вот, можно сделать её и в направлении Russian->English, достаточно в multitran_tool поменять -to и -from, т.е. поставить "-from russian -to english", я это пока не пробовал, но должно получится просто словарь в обратном направлении :), правда пометки и комменты у него будут на русском языке в тексте английских статей :), лингво наверное обидится...
moytra
 
Posts: 18
Joined: Fri Feb 10, 2012 6:53 pm

Re: Не может проиндексировать словарь Multitran 2009

Postby Novikov » Wed Feb 15, 2012 3:28 pm

Не, файл аннотации необходимым не является, как и картинка. Необходим сам DSL.

В DSL, насколько я понимаю, нет специального "кодирования транскрипции" -- просто теми самыми символами она и записана.
Novikov
 
Posts: 164
Joined: Mon Jan 23, 2012 8:29 pm

PreviousNext

Return to Мобильная версия

Who is online

Users browsing this forum: Google [Bot] and 2 guests