Цель заморожена
Автор цели 04 мая 2017 года заморозил цель
Утилита для поддержки чтения книги на англ.языке
Читаю очень сложную древнюю книгу на английском в качестве ДЗ. И по заданию нужно помимо прочтения:
- выписывать незнакомые слова
- написать к ним определения
- выбрать предложения, где это слово встречается
- написать свои примеры употребления слова
Все пункты кроме 1 и 4 автоматизируются, по идее, почему бы это не сделать? Книжку читаю со старенького китайского планшета (android 4.4) на eBookDroid, весьма неплохая читалка, как по мне. Так вот, там есть функция выделения слов и эти слова потом можно отправить на перевод сторонней программе и т.п. Кроме всего прочего, слово можно добавить в Дневник книги, что очень примечательно. Дневник привязывается к странице и можно видеть каждое слово, добавленное на этой странице. А по списку слов легко переходить на страницу, где это слово было добавлено, в общем, как якоря в html.
Дальше, программа позволяет экспортировать (и по идее импортировать) эти дневники в некий формат eaz, который на поверку оказался простым zip-архивом, а так интересующее меня содержимое хранится в формате json.
Итак, задача состоит из этапов (см. план действий):
Критерий завершения
написана утилита, хорошо функционирует
Личные ресурсы
Время, IDE, Java, Maven, Rest-сервис для переводов/толкований слов
Экологичность цели
Кунг-фу программирования растёт
-
Найти бесплатный REST-сервис для поиска определений анг. слов и/или перевода
Иногда хочется на русском тоже посмотреть что слово значит, да и на будущее. Но основная задача - поиск определений. Желательно с поддержкой сотен архаизмов.
-
Решить задачу приведения слова к нормальной форме
В книге часто попадаются слова в разных формах: smote -> smite, beloved -> belove и т.п.
И нечасто в словаре можно найти измененное слово, нужно находить нормальную форму.
-
Десериализация json файла
Представить json файл в виде коллекции POJO классов.
-
написать модельки
-
найти библиотеку для маршаллинга в json и обратно
-
собственно, десериализация из json в модельные классы
-
-
Сериализация в json файл того же формата
-
Соединяем вместе
Итак, план такой, этап 3 с помощью сервиса из этапа 1 изменяет объекты затем с помощью этапа 4 записывает обратно в файл.
Можно еще автоматическую упаковку-распаковку в zip присобачить.
-
[Опционально] Разбор формата mobi
Чтобы выдергивать примеры употребления слов и контекст, в идеале нужно уметь разобрать mobi файл - формат той самой книги и надергать оттуда предложений.
-
Сделать кеширование переводов в БД
Создать БД для хранения уже переведенных слов, чтобы не переводить одно и то же слово дважды и продолжать обработку файла с сохраненного места.
БД предполагается быть встроенной, типа h2.
Возможно, в этом месте понадобится уже какой-нибудь Spring Framework.
-
Реализовать структуру в БД
-
Сущости
-
DAO
-
- 1017
- 02 февраля 2017, 14:22
Не пропустите новые записи!
Подпишитесь на цель и следите за ее достижением