Если Вы хотите почитать Шекспира на английском, но ничего не понимаете, можно отформатировать оригинал и перевод на русский в две колонки: слева реплика на английском, справа ее перевод.
Удобные для парсинга английские варианты есть на
shakespeare.mit.edu. В HTML текст уже разделен на акты, сцены и пронумерованные реплики. Русские переводы есть на
lib.ru/SHAKESPEARE. HTML для парсинга неудобен, но plain text можно разбить на реплики регулярными выражениями.
Здесь находятся 3 скрипта, которые делают следующее:
- mit2xml: преобразует пьесу с mit.edu в XML.
- libru2xml: преобразует пьесу с lib.ru в XML.
- concat-en-ru: склеивает два XML по репликам и генерирует один HTML-файл.
Скрипты проверялись только на пьесе "Буря" (The Tempest):
en,
ru (и на других её переводах с lib.ru). URL исходных HTML прописываются в Makefile. Собрать выходной HTML с двумя колонками для "Бури" можно так:
$ make tempest
Необходимые перловые модули можно установить с помощью пакетного менеджера или так:
$ sudo make cpan
Результат можно посмотреть
здесь.
Для форматирования других пьес потребуется создать файл с переводом имен героев, по аналогии с
tempest_names.cfg. Он используется для нахождения соответствия между английскими и русскими репликами, которые не всегда идут один-в-один.
Список имен героев можно получить так:
$ perl mit2xml ... | grep '<actor>'
$ perl libru2xml ... | grep '<actor>'
Кроме этого, возможно, придется поколдовать в регулярными выражениями в
libru2xml, они могут не подходить для других пьес.