|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.06.2019, 13:58 | #1 |
Новичок
Джуниор
Регистрация: 19.06.2019
Сообщений: 10
|
Поиск в базе книг запрещенной литературы
Добрый день, уважаемые мастера-кодеры и начинающие эксперты.
Прошу помочь в одной, как я думаю, несложной для Вас, но очень критичной для меня проблеме. В данный момент я нахожусь в лечебном учреждении "полузакрытого типа" в качестве обслуживающего персонала и заодно ещё получил в обязанность мониторинг за библиотекой и местным клубом. В нашей библиотеке порядка 3500 книг, есть база всех книг в формате Excel. Как государственному учреждению нам в прошлом году поступило распоряжение проверить весь список книг по списку экстремистской литературы. Список выкладывается в свободном доступе на сайте МинЮста, легко экспортируется в csv, pdf. minjust. ru /ru/extremist-materials Мой предшественник в прошлом году собрал программу поиска, которую, как оказывается успели раздать по всей области в подобные учреждения. Выглядит это как установщик Denwer'a, с сайтом и движками php и библиотекой phpExcel. Но сказали, что типа "недавно скрипт начал глючить" и находить лишнюю литературу. Проверили - находит в списке литературу, не указанную в списке. Как всегда и бывает в нашей стране мне просто поставили задачу к пятнице сделать рабочую версию. Программирование я вообще учил уже 20 лет назад, вроде суть понимаю, но разобраться в такие сроки никакой возможности нет. Да и php как такового у нас не было. В общем, в денвере простой сайтик с 5 функциями: 1. загрузка файла библиотеки книг (в формате xls) 2. загрузка файла запрещенной литературы (там указано, что нужно сохранить файл в формате txt) 3. проверка библиотеки онлайн с сайта минюста 4. проверка библиотеки оффлайн по подгруженной базе запрещенных книг (из п.2) 5. создание книжных карточек (вообще не важна) каждая функция на отдельном .php файле. Как я понял весь скрипт поиска умещается в следующий фрагмент: ///////////////// function _found_book($book_name){ global $books_txt; if (strstr($books_txt, $book_name)){ return true; } return false; } ///////////////// Все остальное - работа с выдачей и подгрузкой переменных во внутренние массивы данных. Проблема в том, что на сайте минюста куча мусора в базе: лозунги, интернет ресурсы, страницы ВК, посты ЖЖ и т.п. И то, что попало туда выдается потом в выдаче поиска по списку запрещенной литературы. Не знаю, как правильно сделать "умную" выборку: возможно, отфильтровать список с минюста, чтобы там остались только печатные издания, а при совпадении названия ещё смотрелся и автор. Уважаемые пользователи! Знаю, что для вас это сверхтривиальная задача, хотя может кому и интересно будет потратить несколько минут на поиск решения. Очень прошу помочь сделать рабочий алгоритм. В этом же формате (php с денвером), любом другом: исполняемый файл, макрос экселя, что угодно, лишь бы я мог дать готовое рабочее решение, которое будет работать со следуюющими исходными данными: 1. Excel база книг библиотеки: № п/п № в реестре Название Ф.И.О. автора 2. Список экстремисткой литературы с сайта МинЮста. На выходе должны найтись совпадения со списком книг и их данными из п.1 Очень прошу помочь. Сами понимаете, что подобная работа не позволяет мне жить на широкую ногу, но работа эта очень нужна, а положение будет расшатано, если я не справлюсь с этой проблемой. В предыдущем предложении описывается и причина, по которой я не могу нанять кодера для написания скрипта =( Но при первой же возможности отблагодарю автора рабочего решения. Искренне надеюсь на Ваше понимание и содействие. Прикладываю сразу весь пак: 1. папку с сайтом из денвера с библиотекой phpExcel 2. список книг библиотеки 3. список запрещенной литературы dropmefiles . com/G6XjC Дабы не перегружать пост не стал сюда выкладывать весь код, если кому-то совсем неудобно скачивать: выложу под спойлером. |
19.06.2019, 15:16 | #2 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Добрый день.
Посмотрел я Ваш архив. да, там не поиск, а фигня. ищется по наличию названия произведения (без автора) в тексте blocklist.txt разумеется, что, например, книжка 12 с названием "Стихотворения" (Гнедич, 1956 год), легко находится в строчке Цитата:
но это мелочь. Просто характерная черта. а проблема в том, что файл ""список экстремистских материалов" (он же blocklist.txt) — это смесь носорога и бульдога. Он натыкан из решений судов и не имеет никакого отношения к процессу автоматизации. и проблема в том, что если сделать поиск нормальный (более строгий, добавить, например, совпадение по автору), то высокая вероятность пропустить книгу, которая есть в списке запрещённой литературы. пример. в списке запрещённой есть запись "Книга автора Миронова Б.С. «Русский национализм»...." если у нас в списке книг есть автор Б.С.Миронов, то, очевидно, что "Миронова Б.С." не будет найдена. и книга будет пропущена. но, по крайней мере, ложные срабатывания уменьшатся. Вам такое нужно? p.s. правильно писать Книжная картотека p.p.s у Вас ещё беда с кодировками. Нужно все PHP файлы перевести в кодировку UTF-8 |
|
19.06.2019, 15:21 | #3 |
Новичок
Джуниор
Регистрация: 19.06.2019
Сообщений: 10
|
Если уберутся ложные срабатывание - не беда. Это уже 90% успеха.
Я сам вижу, что куча мусора этих решениях судов и прочем, но администрация области поставила задачу проверять по этому списку =( И тут уже бюрократическая волокита .. Меня бы устроило в любом виде, лучше чем этот. Думаю, мой предшественник сделал что-то чтобы отстали, показал, что работает и уволился благополучно .. В общем, буду очень благодарен за любой алгоритм, который даст результаты лучше представленного |
19.06.2019, 15:28 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ладно, я попробую немного изменить сравнение.
|
19.06.2019, 17:51 | #5 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
так и вы бегите )
В смысле не беда? Они ж как раз и не нужны. Вообще в любых системах классифицирующих что-то обычно надо решить в какую сторону перекос нужен: минимизировать ложные срабатывания (false positive) или минимизировать ложные пропуски (false negative).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
19.06.2019, 18:09 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
не проверял.
|
19.06.2019, 19:53 | #7 |
Новичок
Джуниор
Регистрация: 19.06.2019
Сообщений: 10
|
upload_minfin.php выдает Parse error: syntax error, unexpected '[' in K:\home\books\www\upload_minfin.php on line 26.
Покопаюсь попробую исправить, конечно, но пока безуспешно. В любом случае, спасибо огромное за Ваше время. |
19.06.2019, 19:54 | #8 | |
Новичок
Джуниор
Регистрация: 19.06.2019
Сообщений: 10
|
Цитата:
На это я ответил, что это уже 90% успеха в данной ситуации, потому что на какой-либо интеллектуальный парсинг я и не надеялся особо. |
|
19.06.2019, 20:01 | #9 |
Новичок
Джуниор
Регистрация: 19.06.2019
Сообщений: 10
|
Я в таком месте, где особо вариативность не блещет. Но ныть не привык. Это место мне нужно, в данный момент оно меня полностью устраивает и даёт шанс учиться и саморазвиваться. Плюс социально полезная работа, приятно мне людям помогать. Оффтоп и лирика.
|
19.06.2019, 20:03 | #10 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Фраза "если уберутся ложные срабатывание - не беда" очень странная.
Из нее складывается впечатление, что вы не поняли что такое ложное срабатывание. Ложное срабатывание (false positive) это когда система посчитала какое-то безобидное произведение запрещенным.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск литературы | terex12 | Помощь студентам | 1 | 09.10.2013 11:56 |
поиск литературы по 3d max | terex12 | Свободное общение | 3 | 09.10.2013 11:04 |
Генетические алгоритмы [Поиск Литературы] | MooNDeaR | Свободное общение | 1 | 17.01.2012 23:41 |
Поиск литературы по клиент-серверным приложениям | Aleksandr_Yanov | C/C++ Базы данных | 0 | 25.02.2011 22:48 |