-
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
Подготовлены толстые книги ВП СССР #9
Comments
Может пока на диск загрузить? Я не знаю, нужна ли работа с ними в гите. Сами docх не распознаются гитом и будут как целые файлы храниться, без версий. Можно сделать и репозиторий. Чисто технически я пока не вижу для чего они должны быть в гите. Т.е. пока видится, что в этом нет необходимости, программной. Но с другой стороны почему бы и нет. UPD: На ваш выбор. Если появиться необходимость перенесём. |
Репозиторий логичен в плане хронологии движения файлов внутри системы и какой-то централизации. Вопрос размещения в основном задан в векторе — а где книги после индексации будут храниться в принципе? Кроме проиндексированной базы нигде? Тогда исходники нужно сразу подтянуть к версии парсера, который книги обработает для представления на страницах выдачи, как-то так себе это представляю. Общий вес папки примерно 50 Мб, то есть книги за счёт удаления внутренних ссылок в сносках и картинок резко уменьшились раза так в три по сравнению с оригинальным размером архива медиамеры. В архив пока не добавлены «Основы социологии» и все аналитические записки, впрочем АЗ по большей часте включены в книги-сборники «Вехи» и «Концептуальная власть», но всё что вышло позже в любом случае потребуется обработать. Как будет момент пополню репозиторий. Предлагаю сделать версию репозитория парсера «под книги» и загрузить туда. |
Хорошо. Папка books. отправил приглашение |
Просто загружу папку VPSSSR в которой две директории DOCX и TXT, в них по 50 файлов, названных по-русски, это нормально? Или перевести в латиницу? |
Да, хорошо VPSSSR и пусть будут на русском названия, посмотрим как пойдет работа, чем будет мешать. |
Загружены толстые книги ВП СССР. |
Какие будут соображения по схеме записи в базу, схеме поиска? |
Книгу поделить на заголовки, параграфы, сноски (ещё есть таблицы и формулы, пока не знаю, что с ними делать технически). Надо решить: будем ли мы делать с книгами, что то типа как сейчас сделаны вопросы или большая сводная тема, т.е. будем ли дублировать у себя представление книги, чтобы ее можно было читать. Например, ссылка: перейти к книге, и ссылка, как вы писали в теме концепции связанности:
Во только как страницы сохранить и нужно ли их хранить? Т.е. не понятно, мы же не бумажные сканы оцифровываем и книги с isbn. В общем, со страницами не знаю. В электронной версии вроде бы и не нужны страниц, тем более, шрифт экран, страница это нечто гибкое плавающий параметр. Возможно надо давать ссылку на файл с которого оцифрована книга.
Ещё есть главы и разделы их по идее тоже можно выделить, но надо подумать как. они по сути своей могут быть в некотором виде категориями. Дерево категорий. в книге. Т.е. сущность можно назвать категория и создавать для каждого типа свои категории со своим ИД И этот справочник сделать общим для всех сущностей. Но я пока не знаю как это сделать парсером. Например, читать оглавление и создать категории, но внутри в xml нету привязки к страницам. они у каждого кто смотрит файл формируются индивидуально. Т.е. страницы - это вроде как не жестко зашитое в структуру книги правило. Со страницами надо разбираться. Я когда осенью смотрел и делал пробную версию, страниц в схеме xml не нашел. Ещё могут быть плоские списки - категории/тэги, без ветвления. Книга, Статья, МО, Архивный документ, (хотя это уже и типы могут быть). Т.е. по сути такая структура сейчас используется для хранения контента на сайтах. Как бы и ничего нового) Про структуру книги и вообще сущности надо бы подумать. Хорошо бы подогнать все под одну структуру, и события и новости и вопросы. т.е. сделать универсальную сущность но с типам. |
Технически в мантикору можно подключить для поиска сразу несколько таблиц. Т.е. можно создать под каждый тип контента свою таблицу( вопросы, книги, новости, документы). и так было бы проще работать и я надеюсь, что в процессе не выявится какого либо бага, но я тестировал подключал 2 таблицы одновременно, не больше 2х... Но структура таблиц (столбы) по хорошему должна быть идентичной, я не проверял, но это логично. Я подключал для теста у себя локально 2 словаря вместе концептуальный и обычный в один поиск и они работали. |
Иначе придется делать некий оркестратор над таблицами, управляющую структуру, которая буде принимать на вход запрос отправлять по нужным таблицам, собирать ответ и компоновать его в выдачу. Т.е. это все решаемо, будет очень сложно но решаемо) я так вижу. UPD Или собирать все в одну таблицу, но это миллионы записей, что будет если надо пересобрать индекс.. сколько это займет времени? Надо придумать более продвинутый и производительный способ, чем сейчас для обновления индекса, хотя сейчас это уже 10-15 мин, на локальном минут 7 и это 360к записей, а их будет в разы больше. Пересобрать весь индекс это может быть долго. Лучше делить на таблицы, и я надеюсь, для этого все предусмотрено в мантикоре, просто плохо написано в доках) |
Сейчас книги приведены более-менее к текстовому виду — книга это единый текст, в котором есть заголовки, абзацы и имена сносок римскими цифрами в квадратных скобках, сами сноски превращены в текст и являются примечаниями. Ворд как текстовый процессор не позволяет вернуть текст постраничной сноски внутрь текста (например в скобках или отдельной фразой после ключевого слова) — существует только возможность сделать из постраничных сносок глобальные в конце текста, а их далее превратить в текст, при этом присвоив им новые глобальные имена (римские цифры в квадратных скобках). Поэтому я думал, что позже можно будет заменить номера примечаний внутри основного текса на собственно текст примечаний. Пример:
Должно превратиться в:
Это будет за два порядка более читабельно, чем то, как представлены книги в текущий момент. К слову, пока редактировал было обнаружено, что бесконечным обилием сносок страдает подавляющее большинство книг, кроме буквально единиц. Например, «Домик в Коломне», которую по-видимому писал Зазнобин самостоятельно, не имеет постраничных сносок вообще. Все сноски сделаны обычными текстовыми примечаниями в конце текста книги, и их очень немного. Сноски это признак плохой организации текста. Идеальный текст это строка. Получится ли у нас заменить номера в квадратных скобках содержанием соответствующих примечаний? |
Постраничные ссылки точно не нужны. Они и в текущей версии книг создаются процессором вёрстки — по-видимому вордом, который экспортировал все форматы. Те же электронные книги типа FB2 и EPUB не имеют страниц, ибо отображение текста целиков возложено на процессор устройства или алгоритм программы. То есть эта иерархия уже не работает в наше время. По сути решение нашего вопроса сводится к ответу на другой — как поделить книгу на строки логичной длины, которые станут записями в БД? Можно пойти дальше и поразмышлять, что такое содержание книги и заголовки.
Все книги кроме одной взяты с сайта медиамеры, где хранится архив публикаций ВП СССР. Единственное исключение — текст цензурированной Мёртвой Воды 2015 года, который взят с сайта zaznobin, только там нашлась doc версия, везде pdf.
В настоящий момент все «файлы» кроме непосредственного текста убраны, включая изображения.
В каждой книге своя конфигурация иерархии, поэтому я предлагаю не наследовать ничего из этого. Всё это просто калейдоскоп бесконечный. Нужно приводить к нормальному виду. В идеале это будет
При этом заголовок это сущность чисто макетирования, представления. Исходить нужно сразу из сценариев работы с текстами, которые подразумеваются при поиске.
И тому подобные схемы. То есть нужно исходить из реальных случаев применения поиска, это не должен быть абстрактный «просто поиск».
Именно так и нужно сделать. Это должно быть плоское типизированное представление. В духе |
Думаю, да. Из того, что я посмотрел сейчас, первый код это параграф и внутри него тестовая сноска [CCCLVI], т.е. распарсить это можно. Сам текст и номер ссылки в одном параграфе их соединяем. Далее параграф со ссылкой. Т.е. технически структура понятная, можно распарсить и соединить. Так что думаю да. Т.е. у нас эти 2 параграфа должны в поиске находиться вместе? Ищем: «Рабы, повинуйтесь господам своим» и находим в поиске один параграф, которые сделал парсер из 2ух? Или это раздельные записи и храним раздельно, и показываем раздельно? я так понял, что нет. Хорошо. Еще не понятно. Мы книгу будем показывать полностью, или только части(параграфы) в поиске? Только поиск или и книги сами на сайте. Надо над этим подумать.
|
Как выше предложил, давайте представим книгу как «тему на ФКТ» в которой один автор «ВП СССР», где глав как таковых нет, а есть строки (т.е. абзацы / параграфы), и «метки» заголовков, которые по сути являются якорями типа хайлайт-ссылки. Таким образом мы получаем набор сущностей — «тема = книга», «автор = автор», «комментарий ~ страница», «абзац = строка» и «заголовок = метка-ссылка». В результате, что мы можем выдать в поиске — например набор «страниц = комментариев», содержащих запрос «ааа». В оформлении выдачи можно дать название книги (а-ля название темы-вопроса), и так далее. Можно ли сделать запрос «покажи всю книгу»? Наверное это не сложно, если у «комментариев» есть какой-то порядковый ID (например сейчас это может быть «дата комментария») и мы знаем что «книга = тема». И тому подобное. |
Возможно и не надо делить книгу на логические куски, надо это проверить, так как ее можно закинуть полностью как текст в таблицу и искать по всей книге, А higlight подсветка найденного работает как массив найденных вхождений, т.е. подсвеченных фрагментов будет много. Надо будет это проверить, я сейчас пока не уверен, что смог это описать, но когда с комментариями работал я включил режим подсветки всего содержимого найденного, а можно оставить например 200 символов слева справа, и таких кусков найденных будет по идее много. А так деление по параграфам word сделать легче всего, будет ли этакая схема находить нужное надо тоже проверять. По другому, надо думать. UPD Надо проверить хайлайты как работают. |
Возможно имеет смысл установить это прямо в ближайшее время, заодно пройтись по другим техническим ограничениям мантикоры.
А что будет результатом такой выдачи? Допустим, ищем «триединство» и желаем, условно, получить список абзацев с этим словом из любой книги. Получится выдать одни только абзацы с этим словом? Представим, что у нас поиск ищет «триединство» сразу в книгах, и в комментариях. Как будет выглядеть выдача? Можно привести к единообразному результату? |
Не знаю, надо будет загрузить пару книг и посмотреть. Только в постмане, без реализации в коде. И посмотреть, что будет в хайлайтах.
Хорошо бы загрузить все по мантикоре в голову как в матрице, но увы. Вектор понятен, буду дальше изучать, освоим. |
Можно исходить из освоенного — как сделать рабочий поиск «прямо сейчас» самым прямолинейным способом? Иногда готовый на 50% вариант, но сейчас, лучше, чем идеальный, но через полгода. |
Добавил тестовые наработки по поиску книг в https://github.com/audetv/book-parser |
Отлично. |
Надо потестировать, поискать в книгах что-то, возможно, что раньше искали, и посмотреть выдачу, Это конечно в постмане не так наглядно, но пока, что есть. Думаю надо обратить внимание, на параграфы на выдачу, т.е. понять насколько данная модель разбиения на параграфы и хранения по одному параграфу соответствует ожидаемым результатам. Иногда попадаются мелкие параграфы, или заголовки, и они ищутся отдельной единицей, хотя на мой взгляд этом вроде нет ничего такого, чтобы сбивало с толку. Вроде вполне понятно. Но если сравнивать с поиском по комментарием, который как запись в бд, то все таки многие комментарии являются законченными смысловыми единицами. т.е. получил в выдаче, прочитал и порой нет даже необходимости смотреть, а что там в оригинале, в контексте темы вопроса. А с книгой мне попадались варианты, когда хочется прочитать продолжение, а оно в следующем абзаце, который не попал в выдачу. И был пример с цитатой «Не удастся запустить и двух имитаторов-провокаторов» , ищется «двух имитаторов» вполне нормально выглядит. В общем попробовать поискать и далее подумаем, что с этим делать. Технически можно показывать / скрывать, например по кнопке какой-нибудь типа подробнее, предыдущие пару абзацев и следующие пару абзацев. Да сценарии поизобретать, поломать поиск запросами. В выдаче точно еще есть некоторые параграфы мусорные их надо будет выявлять и отсеивать. Всякие (* * *) , ________, ------------ и прочее) Еще есть оглавления, хотя вроде не особо мешает оно, если попадется в выдаче. Номер сноски думаю можно будет заменить, я пока не приступал к реализации этого, с ходу не совсем просто, так как файл сейчас читается по параграфу в буфер памяти, т.е. некий reader идет в цикле по параграфам до конца файла, разбирает его и возвращает строку, которую сразу пишет в бд, далее следующий параграф. Или пишет как и раньше в бд, но потом когда находит сноску, возвращает ее, ищет по сноске эту запись в мантикоре, и её обновляет. Этот второй сценарий проще сломать, получить неожидаемый результат, хотя не знаю, возможно не прав, надо пробовать В общем, алгоритм надо будет поменять. |
Это можно сделать в тексте. |
Зависит от того, что подразумевается под словом параграф. Если это текст между двумя жёсткими переносами строки, то бишь «предложение», то поиск скорее всего не будет обладать достаточной полнотой. Например, если ищется условная «страница», на которой упомянуты три-четыре слова не по соседству, то есть ищется некая «тема» по набору ключевых слов. Можно ли каким-то образом оперировать размерами окна поиска? Например «искать в пяти ближайших строках» или что-то подобное? Есть вариант разбить книги на отрывки вручную. |
Я имел ввиду «технический параграф» в xml файле в ворд. Вот пример параграфа:
Грубо строка законченная Enter, перенос троки \r\n, видимо да - жесткий перенос. Может быть несколько предложений, заканчивающихся точкой. Можно искать и по всей книге, т.е. занести всю книгу в бд, как единицу, это надо тоже проверять. Я так не делал еще. Можно разбить по главам. Я так понимаю, движок будет выдавать первыми те записи, слова в которых стоят к другу другу ближе, а те которые будут иметь между собой большое расстояние получат более низкий вес. Если занести в базу книгу как единицу, тот поиск выдаст всю книгу, и отдельный массив подсветок highlights, подсветка найденных фраз, +- сколько то символов (мало символов. надо пробовать и считать, но вроде не более 120 символов, выглядит как яндекс-гугл поиск, подсветка небольшого текста и далее обычный сценарий это ссылка на документ оригинал, с которым работаешь, но это не совсем наш вариант. так? Или поиск может выдать все символы в найденном без ограничений, так сейчас сделана подсветка в поиске по комментариям, по сути выдается highlight 'limit' 0, 'no_match_size' 0, . По идее, если сработает, то будет вся книга, которую надо скролить в поисках подсвеченных фраз. Все это надо проверять.
Не видел такой настройки, ищет по таблице в полях с типом text, и может выдать запись из таблицы как единицу найденную целиком, но иметь еще массив подсвеченных найденных фраз. Это я про структуру ответа json
Я не знаю, как сделать такой запрос в Манткоре, это не обычная база, она сильно отличается от привычных мне реляционных типа mysql postgres. Хотя даже так, я ранее не программировал сценарии полнотекстового поиска. Для меня это не обычно, но задумался, как сделать запрос в обычную для меня бд с сортировкой по длине строки... не делал никогда такого.
Возможно это будет самый лучший вариант. Я поэтому и разместил вариант тестовый, что если будет возможность запустить и в постмане поискать, то вам видимо сразу будет видно, что так или что совсем не так. Если не получиться в постмане запустсить, то учитывая все вышеизложенное, буду обдумывать варианты с фрагментами, и организацию простого сайта (фронтенд) для поиска. И пробывать на нём эти варианты: с главами, с параграфами, с целой книгой или еще как то. |
Т.е. думаю , что как раз по всей книге искать мантикора будет нормально, а вот как результат поиска показать, я пока не понимаю. Так как результат поиска по книге (как единица, запись в таблице) это вся книга. |
Понял. Можно считать параграф = абзацу = фразе. Жёсткий перенос это когда введён энтер или подобный ключ, например тег
Это где-то описано, или это имеет смысл проверить вручную на опыте? Взять например книгу средней длины и провести эксперимент.
У нас глобально два подхода. Либо изобретается прямо буквально то, что хочется изобразить с книгой, либо делаем наиболее близко к единообразию с поиском по сайту, по Кремлю и тд. Если взять официальные сайты и даже взять ФКТ, то длина записи (комментария или новости) одного и того же источника может различаться в тысячу раз, но это никогда не «книга». Нет ни одной отдельной записи, которая бы весила мегабайт в бинарном виде. Есть предположение, что запись, размером с книгу, не будет удобной формой хранения, а выдача результатов в окне 120 символов скорее всего не будет отражать то, что ожидается от поиска по книге. Рудиментарно — да, возможно, типа «найди мне триединство» и в выдаче будет двадцать твитов. Но скорее всего это не оптимальный сценарий. Скажем так, это движение в сторону калейдоскопа, а мы скорее всего пытаемся сделать мозаику. А мозаику требуется проектировать. Парсер, помещающий docx в базу, различает уровни заголовков? А что если зайти в docx и вручную проставить специально изобретённый маркер для деления книги на части?
Значит готового функционала нет. Подразумевается, что если есть найденная строка, то у неё есть ID который связан с предыдущей и следующей строкой. Тогда в результатых выдачи можно было бы отдавать найденную строку N и контекст — строку N–1 и строку N+1. Если ID можно сделать упорядоченными, конечно. Можно представить, что текст писался автором в хронологической последовательности и тогда можно использовать функционал типа «номер комментария» в поиске по ФКТ. Если это короткий путь, или тем более самый короткий, то такая схема может иметь смысл.
Возможно я нафантазировал лишнего, представляя БД как что-то подобное таблицам гугла или экселя. Там это решается достаточно легко, есть стандартная функция, вычислающая количество знаков в ячейке, и по результатам можно сортировать в любом направлении или фильтровать зависимым фильтом. Можно все найденные ошибочные строки просто найти в текстовом редакторе и поубивать их там. Нужно просто знать какой-то ключ для их обнаружения.
Да я думаю всё будет в постмане работать, просто пока не могу проверить, завтра. А фронтенд не будет лишним вообще в любом случае. Более того, фрондент хотя бы в черновой форме или даже на уровне наброска решит некоторые проблемы проектирования выдачи результатов на уровне дизайна их отображения. Ведь сразу потребуется подумать — а как собственно эти результаты должны выглядеть на странице, чтобы быть полезными. Когда я пробовал сделать такой поиск на локальном компе, я пытался использовать официальный wiki движок, в котором есть модуль поиска. Он нормально отдаёт результаты, но судя по всему это довольно похоже на мантикору, текст результата составляет примерно 170 символов, то есть чуть больше, но мне кажется этого мало для контекста: Будет здорово, если в результат отдавать не менее тысячи символов.
Если книга имеет собственную страницу, и при поиске организуется хайлайт в тексте, нужной нам длины (тысяча или две тысячи символов и тд), то выдавать результаты можно в виде списке таких хайлайтов, которые будут являться ссылками на страницу книги с привязкой к подсвеченному тексту. Насколько это сложно, реализуемо ли это? |
Не знаю, откуда то у меня такая мысль есть, вспоминаю. При чтении документации и разных статей мне попадалась информация про ранжирование и функции рейтинга, но так как это не было целью моего поиска, пропускалось, но в памяти осталось. Теперь надо будет специально поискать эту информацию, сделаю это.
Да, надо так сделать.
Интересная статистика: спарсенные текущей версией парсера по параграфам толстые книги это "total": 81917,
Да, я вносил условия для различения уровней, по факту прасер читает структуру xml, в которой заголовки технически размечены, но структура оpenXml достаточно мудрёная https://learn.microsoft.com/ru-ru/office/open-xml/open-xml-sdk. Это целый новый мир. В общем это не просто H1, но различать можно. Более того он сейчас уже это делает. Те параграфы и html тэги, которые появляются в выдаче - это результат работы (преобразования парсера). Вот фрагмент кода условий из парсера :
Парсер проставил тэги, как я задал. Таким образом, можно по заголовкам разбить, или самим расставить нужные заголовки и по ним разбить текст на нужные фрагменты для сохранения в БД. Даже так подытожить, заголовки будет проще определять, чем парсить специальный изобретенный маркер. Для заголовков все есть, надо добавить только условия, для маркера придется написать специальный код.
То что вы описали, я частично уже сделал. А именно каждой записи при сохранении присваивается порядковый номер, хронологически как шёл reader по тексту сверху вниз и пронумерован каждый параграф.
Таким образом в поисковой выдаче нет проблем показать записи с position 999, 1000, 1001 (или чтобы было в общем 1000 символов) у системы есть для этого информация. Нужно только ей воспользоваться и правильно составить поисковую выдачу. Я примерно эту мысль пытался выразить ранее, но видимо много было в умолчаниях:
Проблема будет подсвечивать слова в этих параграфах, которые -1 и +1 ( или в общем 1000 символов), но надо подумать то, что проблема сейчас, подумал и нет проблем)) Возможно есть способы как это сделать, а возможно это и не надо подсвечивать. И в результатах поиска будет всё понятно.
Таблицы гугл эксель таблицы превосходят по функционалу и способам использования различные БД. То что в таблицах делается просто, в других приложениях, не в таблицах, сложнее, надо использовать БД и бизнес логику - еще какой-то код. Таблицы мощный инструмент для работы с небольшим кол-вом данных, десятками тысяч, а вот когда счет идет на сотни тысяч, то уже таблицы не подходят, так как их преимущества для небольших объемов данных становятся их недостатком. В реляционных БД, есть индексы, связи, join и прочее, что позволяет извлекать данные достаточно быстро, в том случае если они правильно записаны, по теории реляционной алгебры, а далее работает написанный сверху код - бизнес логика, который обрабатывает результаты запросов, комбинирует информацию и выдает итог.
Все верно, если мы сможем этот ключ выразить лексически, то потом сможем и в коде в виде условий в парсере.
Да в итоге надо будет это сделать - фронтенд. Я думаю, как только обсудим основные вопросы по книгам, придет время.
Если предположим ,что разобрались с хайлайтами и добились в них 1000 символов, то остальное можно сделать, сейчас нечто подобное сделано с комментариями, когда есть ссылка в выдаче «посмотреть вопрос». Я как раз несколько раз ранее в обсуждениях по книгам задавался вопросом, а нужно ли дублировать книгу для чтения, чтобы перейти в нее из выдачи и продолжить чтение фрагмента, сейчас понимаю, что мой вопрос происходил вот из того, что мы сейчас обсуждаем, как связать результаты выдачи мантикоры с тем, что хотим в итоге показать пользователю. Т.е. если подытожить, книгу похоже все таки надо разбить на фрагменты более мелкие, те же параграфы. Надо провести тесты с целой книгой, и потом надо решить, индексируем ли целую книгу, или индексируем по главам, или же параграфы будут удовлетворять нашим условиям, и поиск будет давать нужный результат, а выдачу мы проектируем так как надо нам, а ни как выдает мантикора - вики. |
Не нужно подсвечивать в контекстовых строках. Пусть хайлайт будет в центре, окружён контекстом без подсветки и всё будет понятно и очевидно, даже если в контексте будут ключевые слова.
Значит нужно сделать, где-то на поддомене или в специальном разделе сайта для теста. И даже 1000 символов в текущей ситуации это условность — можно начать просто со строк, как они у вас сейчас вбиты в базу. Абзац любой длины и два его соседа. |
Этого ответа мне в целом достаточно, я это и имел в виду. Проверку можно не делать прямо сейчас, не горит, есть есть зашитые методы ранжирования, мы просто воспользуемся ими на текущий момент, а уже потом решим что с ними не так.
Пока не будем тратить на это время, лучше запустить минимальный набор как описано в конце вашего и в моём предыдущем комментариях.
Познавательно, спасибо. Юрий как-то спрашивал о том, нельзя ли какую-то статистику по сайту, подобную этой, по комментариям и посещениям самого сайта показать где-то на специальной страничке, просто чтобы у посетителей складывалось представление об объёмах и размерах.
Отчасти мы это на самом деле протестировали — для выноса сносок в примечания мне приходилось оформлять новый раздел в каждом файле с заголовком ПРИМЕЧАНИЯ. Во всех книгах (возможно за исключением 1-2) я делал это по одной схеме — это был heading 1. То есть если раздел примечаний в конце каждой книги парсер распознал, значит можно работать с H1. Но пока что мы этого не будем делать, а сделаем первичный прототип как выше обсудили.
Понял, тогда отбой. С другой стороны если базу экспортировать в csv, то можно сделать всю зачистку в таблицах, а затем отдать правленный csv обратно. Костыл а-ля как у меня в геоматрице, лучше так не делать, потом сложно вернуться в мир людей (((
Я имел в виду что этот набор ключей нужен для ручного редактирования — чтобы понятно было, что искать и удалять. Файлы подготовлены достаточно сильно, я обработчиком удалил много лишнего, например горизонтальные разделители, разделители шапки страниц, картинки. Это не проблема найти и зачистить, если известно что искать. |
Потестировал парсер как он сейчас выложен, согласно README, внёс в описание небольшие уточнения на тех моментах, где не удалось выполнить написанное с первого раза, по сути по невнимательности, но скорее всего этих ошибок можно избежать, если уточнить на более «табуретном» уровне. Всё описанное работает. Парсер спарсил книги, постман ищет как предсказано. Не умею составлять более сложные запросы, поэтому пока просто искал по одному слову. Ищет, результаты мне нравятся. Показываемые строки (абзацы) понятны и думаю прямо в таком виде можно смело отдавать их во фронтенд, то есть не искать (во всяком случае сейчас) количество символов и тд. Сами результаты в целом отличны. Возможно после подключения фронтенда можно будет поиграться с параматром score и ранкингом. В документации мантикоры:
И так далее. Предлагаю сейчас вообще не дёргаться по поводу более углубленной конкретизации поиска, а загрузить базу, сделать простейший фронтенд и поиграться, многое будет найдено опытным путём. Самый эффективный способ проверить движок на адекватность — это написать с его помощью штук 20 внятных комментариев на ФКТ длиной 10-20 тысяч символов, используя в качестве аргументов 3-4 цитаты на какую-то очень чёткую тему. |
Создан новый issue в репозитории парсера книг, перейдём сразу к фронтенду: |
Обработаны 50 толстых книг ВП СССР без запрета.
Все книги в двух форматах docx и txt.
В книгах удалены заголовки страниц, их графическое оформление и нумерация.
Форматирование текста сохранено в docx и удалено в txt.
Все сноски преобразованы в динамические примечания после окончания книги, а затем в текст.
Куда загружать?
The text was updated successfully, but these errors were encountered: