LINUX.ORG.RU

Сравнить словари DSL

 ,


0

1

Есть 3 больших словаря в формате DSL (~100000 статей, ~50M). Два почти идентичны, в третьем большая часть статей тоже совпадает с ними (может, 60%, может 90%, не знаю). Требуется, во-первых, сделать файлы с общими и с различающимися статьями, во-вторых, собрать их в один словарь. Есть ли готовые линуксовые инструменты для их сравнения и склейки с сортировкой?

Или может есть для других форматов, куда можно сконвертировать DSL?

DSL — один из форматов словарей Lingvo, также поддерживаемый открыто-свободными программами. Текстовый. Файл словаря — несколько строк заголовка и куча статей, в которых 1-я строка — название, а последующие начинаются с TAB. Пример словарной статьи:

corundum
        \[[t]°†'Ї….¬†Ґ[/t]\]
        [m1][p][i][c][com]сущ.[/i][/p]; [p][i]геол.[/com][/c][/i][/p][/m]
        [m1][trn]корунд, наждак[/trn][/m]
        [m1][*][b]Syn:[/b][/*][/m]
        [m1][*][ref]emery[/ref], [ref]diamond spar[/ref][/*][/m]

Чем такое лучше сравнивать? Помимо самописного скрипта на Питоне/Перле/чём-то ещё скриптовом.

★★★★★

Ответ на: комментарий от psv1967

https://stackoverflow.com/questions/7339446/parsing-a-text-file-with-a-specia...
первому напиши, может готовый парсек отдаст

Ссылки на давно сдохший сайт StarDict и руководство по парсингу XML регэкспами. Учитывая, что DSL в 16-битной кодировке (постоянной длины), и ключевые слова в нём отмечаются квадратными скобками, предлагаемые примеры бесполезны, всё надо писать с нуля. Общие идеи полезны, но ничего нового я пока не нашёл.

https://stackoverflow.com/questions/94952/python-implementation-of-parsec

Пока надеюсь обойтись без написания своего парсера DSL.

question4 ★★★★★
() автор топика
Ответ на: комментарий от psv1967

По первой ссылке регекспы. Парсек по второй. Ссылки большей частью протухли (но гуглятся легко).

Но как я уже сказал, парсер пока не требуется.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

ты бы уже за это время его с нуля описал и отладил :)

psv1967 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.