VocIT, вставка перевода английских слов в FB2
Goto page 1, 2, 3, 4, 5  Next
 
Libroom Forum IndexПрограммное обеспечение
AuthorMessage

Vat
Бывалый участник форума

Бывалый участник форума



Joined: 24 Jan 2008
Posts: 122


Location: Киев

Posted: 11.05.2008 18:38    

Корни программы растут из libroom.net/viewtopic.php?p=144576#144576.

Кому нужна:
Тем, кто читает в электронных читалках, основанных на электронных чернилах, где не существует возможность встроенного словаря или очень трудно пользоваться словарем.

Идея:
1. Программой открывается англоязычный FB2 файл "имя_файла.fb2".
2. Файл парсится, и получаем список всех слов, использованных в файле.
3. Ищется перевод на каждое слово в приложенном словаре (использован словарь Мюллера, 24-е издание).
Если слово не найдено, то программа пытается привести слово к его оригинальному короткому написанию, отбрасывая суффиксы -s, -ed, -ing, и по этому слову найти перевод.
4. Путем нажатия кнопки "Сохранить FB2 файл", сохраняется файл "имя_файла_trnsl.fb2", где на каждое слово из списка "Найденные слова" создается ссылка на перевод (сноска), и также создается блок "notes" сносок, где будут перечислены переводы на необходимые слова.
Если "notes" существует, то переводы будут дополнены к текущим сноскам.

Фичи:
а) Создаваемый файл создается в формате UTF-8.
б) Пользователь может (и должен Smile) создавать список слов, которые он знает, и на эти слова не будет создаваться перевод.
в) Список знакомых слов виден во вкладке "Знакомые слова", а также представляет собой txt-файл "known_words.txt". Поскольку это txt файл, то его можно редактировать из удобной Вам программы.
Формат: 1 слово в одной строке.
г) Если пользователь убрал ряд слов из списка "Найденные слова", и сохранил файл с переводом, то автоматически убранные слова добавляются в список "Знакомые слова", и этот список тоже сохраняется. Есть возможность отключить это свойство.
д) Картинки из исходного файла сохраняются и в файле с переводом.
е) ОС: Windows XP, Windows Vista. Наверняка пойдет и под Windows 2000.

Программа не годится для чтения для полных новичков, поскольку для всех слов в тексте генерится огромное кол-во сносок, и читать подобный текст, мягко говоря, не комфортно.
Настойчиво рекомендую создать список знакомых слов.

Также, поскольку словарь Мюллера дает на многие слова очень большую расшифровку, то текст сносок для всех слов тоже очень и очень большой.

Поэтому, буду благодарен за словарь со словарным запасом более 40000, и где перевод дан вкратце, без длинных пояснений.

Известные проблемы:
При огромном кол-ве устанавливаемых сносок (как следствие большого текста и большого кол-ва незнакомых слов), FB2Any вообще наотрез может отказаться конвертировать полученный файл в ваш любимый формат, BookDesigner может очень долго его открывать.

Совет #1:
Начните с рассказов, не стоит переходить сразу на романы.
Совет #2:
Файл known_words.txt, который идет с программой, содержит уже подготовленный список слов, который, по мнению Santehnik, наиболее часто встречается Smile. Есть рекомендация предварительно его просмотреть, чтобы убедиться, что все эти слова действительно Вам известны.

Последняя версия 0.2.5 от 6 июля 2008.
Ссылка на архив: http://ifolder.ru/7244563
Архив создан WinRar 3.51.
В архиве три файла: программа, словарь, и файл известных слов.
Без словаря программа не запустится Smile.

Сама программа, без словаря: http://ifolder.ru/7244576
(Это для тех, кто уже скачивал программу со словарем)

Предыдущая версия 0.2.0 от 22 мая 2008.
Ссылка на архив: http://ifolder.ru/6676464
Сама программа, без словаря: http://ifolder.ru/6676381

Вот вроде и все. Пожелания, вопросы и прочее можете смело писать сюда.

P.S. Не гарантирую регулярного обновления и улучшения, но что обновлять буду - точно.


Last edited by Vat on 06.07.2008 21:22; edited 6 times in total
 
View user's profile ^

Marina_Ch
Член клуба The eBook

Член клуба The eBook



Joined: 12 Apr 2006
Posts: 5407


Location: Москва

Posted: 11.05.2008 18:45    

Уууууу, какая вещь! Респектище!
Порадую дочку!
_________________
REB 1100, REB 1200, SE P910i, Qtek 2020i, Sony Librié, Lbook v3 Ext
 
View user's profile ^

lunohod
Член клуба The eBook

Член клуба The eBook



Joined: 10 Jan 2007
Posts: 4283


Location: Stuttgart, Germany

Posted: 11.05.2008 19:11    

что именно добавляется в fb2 - сноски или ссылки?
_________________
V3, n516, PRS-505, iLiad, eSlick, Samsung E60, K3, K4NT, Onyx M90, PB 912, Kobo Mini
 
View user's profile ^

Vat
Бывалый участник форума

Бывалый участник форума



Joined: 24 Jan 2008
Posts: 122


Location: Киев

Posted: 11.05.2008 20:11    

Сноски, ссылки... По идее, это называется сносками. Smile
На сколько я знаю, fb2 формат на текущий момент понимает только body name="notes" и a type="note" l:href="#link".
Вот это и создается.
Поправил текст, "ссылки" заменил на "сноски", благодарю.
 
View user's profile ^

lunohod
Член клуба The eBook

Член клуба The eBook



Joined: 10 Jan 2007
Posts: 4283


Location: Stuttgart, Germany

Posted: 11.05.2008 22:18    

"Обычно используется для ссылок на сноски, при этом атрибут type имеет значение "note".

При отсутствии атрибута type используется для перекрёстных ссылок в электронных документах. "

я просто подумал, что может быть это реализовано именно в виде перекрёстных ссылок.
можно выложить какой-нибудь пример работы программы? я не могу попробовать сделать сам, так как не имею windows.
_________________
V3, n516, PRS-505, iLiad, eSlick, Samsung E60, K3, K4NT, Onyx M90, PB 912, Kobo Mini
 
View user's profile ^

alexiley
Guest









Posted: 12.05.2008 01:39    

Был бы тоже благодарен за книгу - пример. С тем, что бы оценить юзерабилити такого решения.
 
^

Santehnik
Зрелый участник форума

Зрелый участник форума



Joined: 29 Feb 2008
Posts: 31


Location: Brisbane, AU

Posted: 12.05.2008 09:07    

Vat, программа просто супер!!! Уже сейчас можно пользоваться - недостатки все несущественные!
Скопировал в программу свой словарный запас из программы BX_Language (для изучения слов) и сделал себе рассказ Азимова. Ощущения непередаваемые - читаешь книгу и как только встречаешь незнакомое слово, кто-то заботливый, к нему уже подставил ссылку с переводом! Smile
Из замеченных багов пока лишь то, что программа "прихватывает" хвосты к словам (например, .". (именно так - точка-кавычка-точка) или апостроф вначале слова). Кроме того, прихватываются цифры и адреса эл. почты.
Из хотелок, если не лень заниматься, пока только две:
1) возможность изменения размера шрифта в окне найденных слов (их приходится просматривать, а они черезчур мелкие на мониторах с высоким разрешением)
2) возможность устанавливать сколько раз давать перевод одного и того же слова в книге. Т.е., допустим, пользователь устанавливает 5 раз и слово будет переведено только первые 5 раз, а после этого до конца текста оно будет считаться знакомым пользователю.

Для тех кому лень делать свой словарь с нуля, можете попробовать в качестве основы словари общеупотребительных слов с сайта http://bxmemo.narod.ru/

Мне лично не жалко места под полную словарную статью, т.к. далеко не всегда можно понять смысл слова. Что касается сокращенного словаря для желающих, то его можешь взять с того же сайта (я думаю автор не будет против). Только, пожалуйста, не убирай словарь с полными статьями - пусть будет опционально. Smile

Еще раз огромное спасибо за программу - показал жене результат, теперь придется заказывать книжку и ей, т.к. до этого она читала на КПК из-за словарей Very Happy

2Vat: увидел себя в "О программе" Smile Спасибо большое, я там первый раз оказался Smile
 
View user's profile ^

Mar00k
Постоянный участник форума

Постоянный участник форума



Joined: 04 Sep 2007
Posts: 170


Location: Минск, Беларусь

Posted: 12.05.2008 11:06    

Большое спасибо автору программы. Сам пока не пробовал, но наконец-то будет удобно читать английские тексты.

Самое большое спасибо за:
1. идею (действительно гениально просто и универсально. при этом любой девайс, поддерживающий любой формат со ссылками и конвертацией из fb2 получает огромные возможности.)
2. реализацию. хотя собственно реализацию ещё не проверил.

Просьба - сделайте пожалуйста описание проекта на сайте fictionbook.org - больше людей узнает про такие нужные возможности.
_________________
Крутые и странные ©
 
View user's profile ^

Vat
Бывалый участник форума

Бывалый участник форума



Joined: 24 Jan 2008
Posts: 122


Location: Киев

Posted: 12.05.2008 11:58    

lunohod, на днях попробую сделать книгу для примера. Но на самом деле все итак вроде понятно: для незнакомых слов ставится сноска вверху слова, которая ведет на перевод этого слова. Смотря как сконвертирована книжка в финальном формате из fb2, мы получаем:
а) текст сноски на каждой странице.
б) все сноски вконце текста.
В случае (б) все прекрасно, в случае (а) из-за того что переводы и пояснения некоторых слов занимают значительное место, то читать может быть не очень комфортно. Но если незнакомых слов не много, то и вариант (а) хорош. Ну или если найти словарь где перевод дан лаконично, а не развернуто.

Насчет перекрестных ссылок. Как много программ работы с fb2 понимают перекрестные ссылки? Мне кажется, что ноль. Поэтому делать то, что не поддерживается, считаю лишенным смысла. Почему и пошел по варианту сносок.

alexiley, а самому попробовать? Smile Все зависит от словарного запаса каждого конкретного человека.

Santehnik, про "хвосты" и апостроф - очень интересно. Можешь выслать этот текст в fb2 мне на мыло? Я на трех текстах проверял программу, вроде пофиксил подобное...
Цифры и прочий мусор (email), который появляется в "Найденных словах" - это неизбежность Smile. На него программа перевод не даст, и нет смысла их добавлять в "Знакомые слова". Но вообще, как-нибудь, постараюсь убрать их вообще из вывода для юзера.
Про хотелки:
1. Ок, сделаю.
2. Вот блин. Вот так мои идеи для дальнейшей разработки и становятся известны раньше срока Smile. Не поверишь, но именно эту фичу я и собирался внедрять в ближайшем будущем. Также к этой фиче думал сделать еще фичу, чтобы можно было перевод делать не для всех подряд идущих слов, а, допустим, для каждого второго, третьего... То есть, допустим, слово "cat" у нас встречается 100 раз, так сноска будет у 1,3,5,7,9 и так далее слова, а не у 1,2,3,4,5... Ну и эту фичу совместить с предложенной тобой, про 5 слов.

А мне жаль места для полной словарной статьи, потому что сноски люблю читать на той странице, где находится слово, к которой дана сноска. И большие статьи несколько... ээээ.. уродуют текст. Smile Вот в поисках короткого словаря, или хотя бы нужно придумать алгоритм чтобы из Мюллера выкинуть мусор...

На bxmemo слишком уж короткие словари. 1 перевод на слово. Это мрачно и печально Sad

Всегда пожалуйста Smile

Mar00k, попробуйте программу, покритикуйте, будем улучшать.

В ближайшее время доберемся и до fictionbook.org Smile
 
View user's profile ^

Santehnik
Зрелый участник форума

Зрелый участник форума



Joined: 29 Feb 2008
Posts: 31


Location: Brisbane, AU

Posted: 12.05.2008 14:46    

Vat wrote:
2. Вот блин. Вот так мои идеи для дальнейшей разработки и становятся известны раньше срока Smile.

Very Happy Кстати, твою идею с переводом слов через одно можно также дополнить фичей не давать перевод слова, если оно встретилось до этого n-слов назад (20, 50, 100 - на усмотрение пользователя). Это позволит избежать того, что на одной странице несколько одинаковых переводов одного слова. Wink
 
View user's profile ^

supotnitskiy
Искушенный участник форума

Искушенный участник форума



Joined: 01 Jan 2008
Posts: 49



Posted: 12.05.2008 20:10    

великолепная идея
 
View user's profile ^

Petrovitch2
Член клуба The eBook

Член клуба The eBook



Joined: 11 May 2008
Posts: 920


Location: Ы-Петербург

Posted: 13.05.2008 01:14    

Спасибо, доведется - будет вещщщь!
Пока вот запустил первую книжк, страниц 200, поскольку слов незнакомых все-таки меньше гораздо, чем незнакомых (вряд ли вообще есть смысл читать, если иначе), в данном случае (книга по любимой теме), их может и вообще не быть, то
Стер все слова из первой вкладки и нажал кнопку ...хммм не могу сказать, как она называлась - про то что вставить удаленные слова в список знакомых. И...висит прога.

Сие пожелания - нижайще просим:
1. наоборот может все таки - НИКАКИЕ слова не входят изначально. Т.Е. Имеется вкладка УЖЕ знакомых, затем вкладка найденных отсутствующих для данной книги в первом списке, затем выбираешь уже из них действительно незнакомые, а потом именно они и только они попадают в главный список для обработки.

Ну в крайнем случае сделать это опционально, хотя по любому - так будет быстрее готовить.

2. Только Первые 5 повторений и другие опции+1

3. Выбор слов для переноса бы ускорить кликом + Key, и чразу чтобы переносилось, а то копипастить долговато получается.

4. В моем случае (книга по психологии) мусором было только аббревиатуры всякие, одиночные буквы и цифры. Их же вроде так просто исключить? аббревиатуры правда иногда словарем переводятся, но ИМХО их надо все исключать, это все-таки специальная вещь, не язык

Готов помогать вовсю и тестить. Спасибо за проект!!!!

ЗЫ - уж минут 10 на двухпроцессорном компе при 50 % загрузки думает о своем, может остановить ее, страшнооо, чего она там?
 
View user's profile ^

Santehnik
Зрелый участник форума

Зрелый участник форума



Joined: 29 Feb 2008
Posts: 31


Location: Brisbane, AU

Posted: 13.05.2008 03:34    

В процессе изготовления книг понял, что ты складываешь в "Найденные слова" все слова, которых нет в "Знакомых". Я вот пробовал сделать большую книгу и статистика дала, что:

Исходных слов - 9126
Уникальных - 7551
...проигнорировано - 2618
...осталось - 4933
Слов с переводом - 2734


Получается, что надо просматривать 4933 слов, когда из них только 2734 реально могут быть переведены (остальное мусор - цифры, названия, имена, сокращения, слэнг и пр.). Можно почти вдвое сократить время просмотра слов, если выкинуть оттуда все, что все равно не будет переведено. Реально это реализовать?
 
View user's profile ^

Vat
Бывалый участник форума

Бывалый участник форума



Joined: 24 Jan 2008
Posts: 122


Location: Киев

Posted: 13.05.2008 09:06    

Ага, есть такое дело, когда в большом тексте мы удаляем все слова из списка "Найденные слова", и нажимаем кнопку "Добавить удаленные слова в знакомые слова", оно долго, возможно даже _очень_ долго делает. Тут забыл оптимизировать процесс, когда изменил алгоритм работы с поиском слов. Исправлю сегодня-завтра.

1. Не совсем понял. Исправлю тормоза, который ты описал, и все будет прекрасно Smile
2. Ага, в будущем.
3. Куда что копипастить? Достаточно просто удалить в первом списке, и нажать на "Добавить удаленные слова в знакомые слова", оно сразу все удаленное перенесет туда. Просто сейчас это тормозит Smile
4. Аббревиатуры, которые есть в Мюллере, должны переводиться. И их не исключить :-/. Пока вообще, честно говоря, ничего не исключить, при текущей архитектуре это не совсем просто. Ради экономии места в памяти я старался не плодить излишки массивов со словами, и списки, которые есть в программе - являются своего рода массивами, рабочими.

Хе-хе Smile. Вчера у меня тоже появилась мысль в "Найденные слова" складывать только те, по которым есть перевод, но которые не отмечены как "знакомые", а не просто все, которые не нашел в "знакомых". Да, это убыстрит работу с пополнением слов для "знакомых слов". Также это избавит нас от мусора, как то: неизвестные аббревиатуры, цифры, e-mail-ы и прочее.

Так, to-do лист уже хороший.... Smile

Тестируй, будем улучшать. Кстати, всего 10 человек скачали файл.
 
View user's profile ^

Mar00k
Постоянный участник форума

Постоянный участник форума



Joined: 04 Sep 2007
Posts: 170


Location: Минск, Беларусь

Posted: 13.05.2008 09:34    

Попробовал использовать для большого романа. Как и было предсказано, результат не конвертируется из-за огромного количества сносок. А свой словарь забивать реально долго.
1. Можно ли по умолчанию добавить словарь известных слов простейших?
2. Добавить поддержку профилей. Для каждого профиля отдельно хранить список известных слов. Очень полезно, т.к. например я и жена знаем английский на разном уровне и это было бы реально полезно.
3. Не совсем понятна логика с местом хранения файла "known_words.txt". На мой взгляд, он должен лежать рядом с файлом программы и пополняться постоянно. Сейчас же он кладётся рядом с книгой, что не есть логично. Можно это как-то поправить?

Добавлено спустя 4 минуты 36 секунд:

4. Кстати ещё вопрос по запуску программы - если открывать fb2 как "открыть с помощью..", то выдаётся "файл vocabulary.txt не найден". Видимо та же проблема пути что и с известными словами

Добавлено спустя 35 минут 37 секунд:

Даже интереснее - файл со знакомыми словами ищет в своей папке, а сохраняет потом рядом с книгой.
Но эта мелочь я думаю весьма легко поправляема.
_________________
Крутые и странные ©
 
View user's profile ^

Vat
Бывалый участник форума

Бывалый участник форума



Joined: 24 Jan 2008
Posts: 122


Location: Киев

Posted: 13.05.2008 11:46    

Mar00k,
1). Пусть кто-то сделает такой словарик, внедрю, без проблем. Формат: 1 слово на строку. Не обязательно по алфавиту.
2). Ага, есть такое в to-do, будет реализовано, обязательно. Просто сейчас есть немного более насущная проблема. На текущий момент как вариант можно иметь два(три, четыре...) файла known_words.txt (под разными именами), и подставлять (то есть переименовывать в known_words.txt ) для каждого юзера свой. Да, неудобно, но как вариант Smile.
3). Да, это баг. Описан в первом же посте тут. Сам только вчера его нашел. :-/. Когда тестировал, книги лежали в корне самой программы, поэтому даже и не видел, что есть такая проблема. В следующей версии будет пофиксено.
4). Хм, понял, поищу. Спасибо!

"Даже интереснее - файл со знакомыми словами ищет в своей папке, а сохраняет потом рядом с книгой."
EmbarassedLaughing Да, открывает файл знакомых слов из корня программы, а сохраняет в последнюю открытую директорию. Это все тот же баг с сохранением не туда Smile. Открывает откуда надо, а вот сохраняет.... Будет исправлено.

Сегодня вечером ждите новой версии Smile
 
View user's profile ^

Mar00k
Постоянный участник форума

Постоянный участник форума



Joined: 04 Sep 2007
Posts: 170


Location: Минск, Беларусь

Posted: 13.05.2008 12:14    

По результирующему файлу:

1. Нельзя вставлять ссылки в название книги, фио автора, жанра и т.п. Это не допускается стандартом fb2. По сути вставлять можно только внутри body, да и то не везде.
2. В один момент получил вот такую конструкцию:
<a>note<a>[4758]</a> 1</a>
т.е. был дан перевод к служебному слову note, что также не кажется необходимым =)
3. Оказалась куча ссылок внутри картинок, т.е. в части <binary> (где собственно картинки находятся) встретилось " GiL " - программа с радостью подобрала перевод. Из-за этого наверное все конвертеры и не работали в первую очередь. Решение - опять-таки переводить только слова внутри тэга <body>
4. Все переводы даны как 1 строка. Мне кажется это одна из причин, по которой конвертеры шизеют. Нужно наверное как-то разбивать на куски, иначе действительно романы делать не получится, а хотелось бы.
_________________
Крутые и странные ©
 
View user's profile ^

Vat
Бывалый участник форума

Бывалый участник форума



Joined: 24 Jan 2008
Posts: 122


Location: Киев

Posted: 13.05.2008 12:27    

1. Ага, ну мне же легче, разбирать только body. Будет исправлено. Я думал что можно туда ставить. (исправлю в первом же фиксе)
2. Ага, сноска на сноску. Интересный вариант. Smile По идее, не валидный xml на выходе получаем. Учтем, благодарю Smile
3. Это вообще странно. У меня бинари игнорируется(!). Можете выслать fb2 файл? на ravevat зябла yahoo тчк ком. Конверторы, наверняка, не будут работать по этой причине, но реально они не работают от огромного количества установленных ссылок.
4. Конверторы рассматривают fb2 как xml-файл, и пусть там все теги будут в одну строку, или через переносы, один фик. Так как конверторы понимают xml, в котором переносы есть(то есть игнорируют whitespaces), следовательно, они _обязаны_ понимать xml, где все в одну строку.
Минус того, что в одну строку, только один: визуально просматривать такой fb2 файл сложновато Smile.

P.S. Хотя, судя по тому, что Oxygene и ряд других редакторов не очень хорошо открывают такую длинную xml строку, возможно, проблема таки именно тут.
Вообще странно, что там нет переносов :-/. Должны были бы быть. Корректно создаю все.
Спасибо, будем думать.
 
View user's profile ^

Mar00k
Постоянный участник форума

Постоянный участник форума



Joined: 04 Sep 2007
Posts: 170


Location: Минск, Беларусь

Posted: 13.05.2008 14:24    

Ещё кстати хотелка - сортировать список найденных слов. На сейчас лично мне удобнее всего сделать так:
выгрузить список копи-пейстом в эксель
отсортировать
удалять все знакомые слова (быстрее чем в тексте в разы)
удалить все пустые строки
скопировать это всё обратно в vocit
нажать "добавить удаленные слова в знакомые слова"

Звучит длинно, а на самом деле самый удобный способ составить список известных слов.

Добавлено спустя 9 минут 19 секунд:

что касается длинной строки - они-то конечно обязаны понимать, но вот у меня получилась строка длиной порядка 2,5 млн. знаков. Меня терзают смутные подозрения, что на такую длину не рассчитывал ни один создатель программы. Хотя fb2any единственный, кто отрабатывает нормально. Но это не греет, т.к. нужен в результате lrf.
_________________
Крутые и странные ©
 
View user's profile ^

Vat
Бывалый участник форума

Бывалый участник форума



Joined: 24 Jan 2008
Posts: 122


Location: Киев

Posted: 13.05.2008 14:40    

"удалять все знакомые слова (быстрее чем в тексте в разы) "
Согласен. Программа показывает слова скорее для проформы, для реальной работы нужно задействовать какой-то сторонний текстовый редактор, с поиском по набору символов и все такое прочее.

"удалить все пустые строки"
По идее, этот пункт делать не обязательно, программа пустые строки автоматически откидывает. (в теории Smile)

"сортировать список найденных слов."
Вот тут даже не знаю.
Сейчас оно показывает самое часто используемое слово в тексте первым, наименее используемое - последним. В "статистике" показывает, какое слово сколько раз встретилось. То есть мы сперва видим самые часто встречаемые в тексте слова, важность определения для которых "знаю/не знаю", на порядок важна, чем для слов, которые встретились наименее кол-во раз, и которые находятся в списке ниже. Ну, это мне так кажется.
 
View user's profile ^
Libroom Forum IndexПрограммное обеспечениеAll times are GMT + 4 Hours
Goto page 1, 2, 3, 4, 5  Next
Page 1 of 5

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© Libroom, 2021