Skip to content

dm-bo/slicedlang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Что это

Движок сопоставления текстов на разных языках (человеческих, а не программирования). Создан по мотивам https://context.reverso.net из-за отсутствия там нужного языка. Код написан не имеющим большого опыта в пайтоне мной, и пишется не только для его написания, но и для моего обучения. Соответственно, качество кода пока не оч, кое-где встречаются ненужные тестовые куски и тому подобное. Со временем планирую привести всё к человеческому виду. Часть значительно более ценная — данные. Их ещё предстоит создать, пока же с кодом идёт пример данных на ~100 пар предложений.

Что умеет

Есть поиск, который выдаёт подходящие выражения из базы. Если пара выражений была нужным образом размечена составителем базы, то наведение курсора на слово подсвечивает соответствующее слово на другом языке.

Техническое

Построен на Flask, SQLite и Elasticsearch (ES).

Как запустить у себя

Ставим Python 3 и ES. К Python обавляем нужные библиотеки согласно requirements.txt (или чуть больше). Запускаем ES (это занимает некоторое время), запускаем экспорт данных:
cd path:\to\slicedlang
python export-lang.py
После окончания экспорта запускаем это приложение.

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

Формат данных

Сейчас это CSV с четырьмя значениями в строке (уникальный номер, выражение на языке 1, выражение на языке 2, примечание). В файле допускаются пустые строки и строки с комментариями, начинающиеся с решётки (#). Строки, имеющение не 4 значения, пропускаются. Если несколько строк имеют один номер, то в базе останется последняя обработанная строка с этим номером.

Для подсветки слов нужно в обоих выражениях отметить соответствующие слова одним тегом. Теги имеют вид #N, где N — число. Подстветка заканчивается на следующем символе # (то есть на следующем теге или одиночном символе #, который может использоваться для более эстетиченой разметки). Пример:

#1Однако, #2здравствуйте.

Так первое слово будет подсвечиваться вместе с запятой и пробелом, второе — вместе с точкой. Чтобы знаки препинания не подсвечивались (обычно по смыслу это не нужно), можно использовать одиночный символ #:

#1Однако#, #2здравствуйте#.

Допускается отмечать одним тегом несколько слов в предложении, если это необходимо по смыслу (например, когда слово одного языка на другой язык переводится двумя словами, расположенными не рядом). В таком случае все слова с одним тегом будут подсвечены одновременно.

Поскольку специального удобного редактора нет, формат разметки выбирался максимально удобным для редактирования в простом текстовом редакторе. В дальнейшем, с появлением редактора, формат может поменяться (с сохранением совместимости) на какой-нибудь стандартный и/или более близкий к HTML.

Прочее

  • Лицензия пока никакая, если кому-то это будет надо — заявлю какую-нибудь свободную
  • ШГ