-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Добавлена опция склейки параграфов до минимального значения в символах #31
Conversation
Правильно понимаю, что это значение отвечает за команду типа «обрабатывать все параграфы менее 800 символов»? Или сущность «мелкие параграфы» задана в алгоритме как-то иначе? |
Ну тут очевидно выигрыш в логике — «мелкие параграфы» это по большей части мусор, который при склейке обретает как минимум в теории какой-то смысл при обработке словосочетаний и расстояний. |
Логика такая, парсится параграф и проверяется его длина, если она менее 800 символов, то параграф не записывается в БД, а записывается в буфер, далее прасер читает следующий параграф и склеивает то, что было в буфере с тем что прочитал сейчас, сравнивает итоговую длину склеенных параграфов, если длина менее 800 символов, то операция повторяется, если длина более 800 происходит запись результата в БД. Значение 800 можем изменить, задать произвольное при запуске парсера. |
Ага — «склеиваем все параграфы, пока не наберём значение».
Да, отлично. Это и ожидалось.
Какие-то дивы обрезались и пролезли. Нужно по файлам пройтись c regex-ом. |
Позже могу обновить БД на сервере, и можно оценить , что получилось со склейкой и с новыми файлами, но ближе к вечеру. Если ок, оставляем вариант со склейкой, или скорректируем. Можно сейчас скорректировать длину параграфа 800 символов если есть предложения. При выборе значения 800, я руководствовался записями из это темы:
|
Это скорее всего результат работы regex где-то был сбой и поломалась html структура, например когда вырезаны были некоторые теги и с ними кавычки «"» эти кавычки обрамляют классы и дата атрибуты, если порядок нарушен, то стандартные парсеры xml не сможет адекватно прочитать строку и будут артефакты. Но это предположение, я когда картинку размещал, эти дивы видел, сейчас вы обратили внимание на них, значит надо проверить в БД и по файлу, из-за чего сбой и почему пролезли. Посмотрю. |
Я попытаюсь добить длинные параграфы и предлагаю уже обновлять с новыми файлами, я их подгружу туда же, и просто те что в архиве нужно будет заменить на новые (чтобы не собирать и не перекачивать весь архив).
Так всё верно — 1х = 800/100 символов/слов, 3х=2500/300 символов/слов, соответственно «средний» будет как раз 2х = 1500/200 символов/слов. У меня была указана вилка минимум/максимум, вы взяли по минимальной оценке, это логично, а я предлагаю взять по средней оценке, иными словами к параграфам «минимальным» будет добавляться обрезок например заголовок, таблица и так далее. Пусть все параграфы в целом усредняются, нам это ничем не мешает, только улучшает систематическое поведение алгоритмов по вхождению, расстоянию и тд. С той же целью бьются большие параграфы — чтобы улучшить поведение системы, выдавать более предсказуемые результаты. |
Посмотрел, сделал этот же запрос без |
Внутри файлов таких ошибок не нашлось, запрос Если мантикора ищет внутри тегов, тогда видимо логично, слэш |
Хотел протестировать локально, но так понимаю что соответствующий .exe пока ещё не собран. Буду ждать, интересно прогнать локально, посмотреть, что получится. |
да, не успел выгрузить, сделал выпуск: |
Добавлена опция склейки мелких параграфов до минимальной границы.
Значение по умолчанию установлено 800 символов.
Пул реквест пока повисит в статусе — открыт, позже сделаю слияние и выпуск.
При вызове парсера можно будет указать опцию
./book-parser.exe -m 250
и мелкие параграфы будут склеены до минимального размера, размер параграфа в символах станет не менее 250 символов.Так же можно указать значение 0 при вызове
./book-parser.exe -m 0
и склейка параграфов производиться не будет, все будет как и ранее.Вчера прогнал старый набор из 7733 файлов со склейкой параграфов до 800 символов, итоговое кол-во параграфов в БД уменьшилось до 4.6 миллионов вместо 22+ миллионов. Выигрыша в итоговом размере данных индекс и БД в Гб нет.
Немного уменьшилась БД postgess. но увеличился индекс мантикоры.
Планирую сегодня протестировать на локальном на фронтенде., как будет происходить поиск.
Я вчера сделал тестовый вариант, и потом было ваше сообщение, есть связь:
#27 (comment)